Magento2缓存洞穿Pricing

3
我有一个Magento 2网站,已设置为允许客户拥有自己的定价。然而,由于这个原因,每个用户现在都会生成唯一的FPC(用于分类和产品页面)。
为了解决这个问题,我想通过Knockout JS加载价格,以便FPC可以在所有已登录的用户之间共享,但价格将根据分配给用户的定价系统动态加载。
我最初遵循了这篇文章:https://magently.com/blog/full-page-cache-hole-punching-in-magento-2/ 我已成功地配置了Knockout JS,在分类页面上呈现“时间戳”(来自上述教程),并测试了FPC在所有已登录用户之间共享。
然而,我现在遇到的问题是,我需要向块传递产品ID,以便我可以使用类返回该产品的正确价格。我已经查阅了各种文章、这里的问题等,但似乎找不到答案。
2个回答

0
为了增强Magento 2中绕过完整页面缓存功能的动态功能,我编写了一个孔洞补丁功能,可能会帮助您看到一个工作示例。 (有关更多详细信息,请参见https://bitbucket.org/magstaging/punchhole
步骤1:创建实现模型 步骤2:在前端di.xml中定义一个部分节点用于该模型 步骤3:启用该节点以通过操作(例如checkout/cart/add)激活 步骤4:创建将使用您的节点的phtml模板 步骤5:在view/frontend/web/js/jspart.js中创建一个js文件
define(['uiComponent','Magento_Customer/js/customer-data'],function(Component,customerData){'use strict';}
祝你好运

0

看起来为了实现您的目标,您应该在产品列表模板中初始化javascript组件,这样您就可以从集合对象生成一个包含用户查看的产品ID的数组。然后,要将数据传递给javascript,您只需要在x-magento-init的组件部分下添加另一个键值对,如我其他文章中所示https://magently.com/blog/introduction-knockout-js-magento-2/

请注意,您还可以使用knockout绑定来显示UI组件获取的值,而无需编写其他脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接