【发布时间】:2022-07-01 04:41:35
【问题描述】:
我想根据客户的选择更改产品的价格。例如,我正在尝试构建一个小型 PDP 小部件,以使客户能够选择蛋糕上的蜡烛数量或在蛋糕上写文字并相应地更新价格。文档仅涵盖如何通过overwriting the cart's collector/processor 更改价格,但我不想使用此方法,因为其他插件可能会覆盖相同的服务。那么,还有其他方法可以通过订阅活动来改变产品的价格吗?
【问题讨论】:
-
我相信您链接的文档中描述的收集器覆盖可以由多个模块完成。你试过了吗?
-
但是如果两个插件覆盖了价格收集器,只有后面的会被应用,我正在尝试实现一个对其他插件没有副作用的被动解决方案
-
好吧,所以我的假设是错误的 :-( - 它背后的设计决策可能是,这里需要一个最终价格。链接逻辑和修改最终价格可以与 Symfony 装饰器一起使用。我认为您的逻辑可能已经适用于开箱即用的专业版的自定义产品?
-
我对专业版了解不多,但我最初实现此功能的想法是添加一个包含我想要的任何自定义数据的新输入,然后监听
onLineItemAdded事件,然后拥有访问行项目然后我会从输入中获取数据,使用$lineItem->setPrice设置价格,但这仅在第一次添加项目表单并编辑购物车或报价中的数量时才有效,会将价格重置为任何值在管理面板中定义。