更新在Shopware中添加属性的顺序

时间:2018-01-24 09:52:49

标签: shopware

您好,

我尝试更新订单以根据用户的选择向属性添加内容。它到目前为止工作但属性值保存在'预订单'我不知道如何与数据库中的实际订单行相关的行:

Database rows screenshot

一旦用户点击立即订购按钮,它就会使用订单ID保存我的值,但这个ID不是最后一个,所以当确认订单时会插入一个新行,但它们没有任何共同之处。也许我订阅了错误的活动?目前我正在使用 Enlight_Controller_Action_Frontend_Checkout_Finish ,但订单似乎没有在此阶段创建,关于如何向订单添加信息的任何其他想法?

谢谢

更新:

这是来自商店论坛的答案,有助于找到解决方法:

您还可以使用其他一些活动。如果您查看引擎/ Shopware / Core / sOrder.php文件,则会有一个名为sSaveOrder()的方法,在保存订单时会调用该方法。

执行该方法时,会调度一些可能对您的用例有用的事件。例如:

Shopware_Modules_Order_SaveOrder_FilterParams
Shopware_Modules_Order_SaveOrder_FilterAttributes
Shopware_Modules_Order_SaveOrder_FilterDetailAttributes
Shopware_Modules_Order_SaveOrder_ProcessDetails

他们将按照我列出的顺序发送。

1 个答案:

答案 0 :(得分:0)

订阅 Enlight_Controller_Action_PostDispatch_Frontend_Checkout 事件。在此活动中,检查您想要的操作(ajaxCart / cart / confirm)并将值更新为 s_order_basket_attributes 。 这些值将在s_order_attributes的最终订单行中提供。