3

当在 magento 的管理面板中单击重新订购按钮时,我需要从订单中删除产品。

sales_order_save_afterglobal节点中使用的 ATM。它会在完成、取消和类似事件时触发 - 但不会在重新排序时触发。

    <events>
        <sales_order_save_after>
            <observers>
                <isThisTagTotallyRandom>
                    <type>model</type>
                    <class>mymodule/observer</class>
                    <method>onOrderSaved</method>
                </isThisTagTotallyRandom>
            </observers>
        </sales_order_save_after>
    </events>

所以我的问题是:

  • 捕获重新订购的正确事件是什么?
  • 毕竟,在重新排序时,有时应该有一个保存动作,为什么不调用这个事件?
  • 作为奖励问题:标签<isThisTagTotallyRandom>真的是完全随机的吗?
4

1 回答 1

2

重新订购时,只会首先创建报价。这解释了为什么到目前为止没有保存订单。

如果您查看它的重新排序操作,它Mage_Adminhtml_Sales_Order_CreateController会调用initFromOrder. Mage_Adminhtml_Model_Sales_Order_Create在这个方法中,有一个被调度的事件被调用sales_convert_order_to_quote并且你可以收听。您可以从中获取报价和订单(并从中删除产品)。

此时仅创建一个报价,当单击提交订单按钮时​​将转换为订单(此时您可以做出反应,sales_order_save_after我猜)。

于 2013-03-25T16:34:14.253 回答