2013-03-25 70 views
1

當magento的管理面板中單擊重新排序按鈕時,我需要從訂單中刪除產品。在magento上捕捉重新排序事件

ATM我在global節點中使用sales_order_save_after。它會觸發完成,取消和相似的事件 - 但不會重新排序。

<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>真的是完全隨機的嗎?

回答

2

重新排序後,只會先創建一個報價。這解釋了爲什麼到目前爲止沒有訂單被保存。

如果你看Mage_Adminhtml_Sales_Order_CreateController的重新排序動作,它從Mage_Adminhtml_Model_Sales_Order_Create調用initFromOrder。在這種方法中,有一個名爲sales_convert_order_to_quote的事件被調度並且您可以收聽。您可以從中獲得報價和訂購(並從中刪除產品)。

此時只有一個報價被創建,當點擊Submit Order按鈕時將被轉換爲訂單(在這一點上,我可以對sales_order_save_after做出反應)。

+0

是的,你說的都對。謝謝。 – shredding 2013-03-25 17:22:29

+0

順便說一句:如果你有一秒...是真的,我對'標籤說? – shredding 2013-03-26 09:55:42

+1

我無法解釋它的深層原因,但是佈局句柄'isThisTagTotallyRandom'可以是任何你想要的,它不會有任何區別。 – baoutch 2013-03-26 10:41:32