Magento как получить статус заказа в обозревателе

Вот что я делаю,

в рамках этого события: sales_order_save_after

У меня есть код в обозревателе, чтобы получить статус заказа.

public function saveBookingInfoFromOrder(Varien_Event_Observer $observer){                
        $order = $observer->getEvent()->getOrder();

        //$last_orderid = $order->getIncrementId();

        $last_orderid = $order->getId();
        $order_status = $order->getStatus();
}

Но статус заказа не приходит, какие-либо предложения? заранее спасибо

1 ответ

Решение

Событие sales_order_save_after это немного сложно. В первый раз, когда он запускается, Order еще не передан в DB, ​​и, более того, он еще не установил State и Status.

Если вы хотите получить статус, есть другие события, более подходящие для вас:

  1. sales_order_payment_place_end - это срабатывает в Mage_Sales_Model_Order_Payment::place метод сразу после $order->setState готово. place Сама функция является обратным вызовом afterCommit для процесса сохранения заказа.

  2. sales_order_save_commit_after - это срабатывает, когда обрабатываются все посткоммиты

  3. sales_model_service_quote_submit_success - это последнее событие в Mage_Sales_Model_Service_Quote::submitOrder метод - на момент отправки ордера обязательно будут все данные, и вы можете быть уверены, что при создании ордера ошибок не было.

Другие вопросы по тегам