注文ステータスが完了になったときに実行されるコードをMagento(1.6.2)に追加する必要があります。私たちのシステムでは、これは注文が「発送済み」の場合に発生します。つまり、「発送」ボタンがクリックされ、発送情報が保存されます。
私は(明らかに間違った場所で)そのイベントが何と呼ばれるかを探して、それが発生するのを監視するオブザーバーを追加して、コードを実行できるようにしました。
このイベントの名前を教えてもらえますか(観測可能なイベントとして存在する場合)。
乾杯!
注文ステータスが完了になったときに実行されるコードをMagento(1.6.2)に追加する必要があります。私たちのシステムでは、これは注文が「発送済み」の場合に発生します。つまり、「発送」ボタンがクリックされ、発送情報が保存されます。
私は(明らかに間違った場所で)そのイベントが何と呼ばれるかを探して、それが発生するのを監視するオブザーバーを追加して、コードを実行できるようにしました。
このイベントの名前を教えてもらえますか(観測可能なイベントとして存在する場合)。
乾杯!
私もイベントハンティングは少し暗い芸術だと思います。この場合sales_order_save_before
、次のようなハンドラーをチェックインしてみます。
function onSalesOrderSaveBefore(Varien_Event_Observer $observer)
{
$order = $observer->getOrder();
if (($order->getData('status') == 'complete')
&& ($order->getOrigData('status') != 'complete')) {
// then order has just been completed
}
}
考えられる解決策の1つは、このコントローラーをオーバーライドするカスタムモジュールを作成することです。
/app/code/core/Mage/Adminhtml/controllers/Sales/Order/ShipmentController.php
次に、カスタムコードを追加するか、独自のカスタムイベントを作成しますpublic function saveAction()