我有一个Magento 2网站,它已经建立起来,允许客户有自己的定价。然而,由于这一点的FPC(类别和产品页面)现在正在为每个用户生成唯一的。
为了解决这个问题,我想通过Knockout JS加载价格,这样FPC就可以在所有登录的用户之间共享,而定价将根据分配给该用户的定价系统动态加载。
我开始关注这篇文章:https://magently.com/blog/full-page-cache-hole-punching-in-magento-2/
我已经能够成功地配置Knockout JS在分类页面上呈现“时间戳”(来自上面的教程),并且我已经测试了FPC在所有登录用户之间共享。
然而,我现在遇到的问题是,我需要将产品ID传递到块,以便我可以使用类返回该产品的正确价格。我已经查看了这里的各种文章、问题等,但似乎无法找到答案。
2条答案
按热度按时间u5i3ibmn1#
为了增强Magento 2中绕过整页缓存功能的动态功能,我编写了一个打孔功能,可以帮助您看到一个工作示例。(更多细节请参见https://bitbucket.org/magstaging/punchhole
步骤1:创建实现步骤2模型:在前端di.xml中定义用于模型的section节点步骤3:使节点能够通过操作激活(例如结帐/购物车/添加步骤4:创建一个将使用您节点的phtml模板步骤5:在view/frontend/web/js/jspart.js中创建js文件
如果是,请使用下面的函数来定义这个函数:
祝你好运
bvuwiixz2#
为了实现您的目标,您应该初始化product list模板中的javascript组件,这样您就能够生成一个包含用户从collection对象中看到的产品ID的数组。然后,为了将数据传递给javascript,您只需要在x-magento-init的component部分下添加另一个键-值对,如我的其他文章https://magently.com/blog/introduction-knockout-js-magento-2/中所示
请注意,您也可以使用敲除绑定来显示UI组件获取的值,而不是编写额外的脚本。