Asi*_*hhh 3 events observers magento orders
这是我在做什么,
在这个事件下: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();
}
Run Code Online (Sandbox Code Playgroud)
但是订单状态还没有到来,有什么建议吗?提前致谢
事件sales_order_save_after有点棘手.它第一次触发Order还没有提交给DB,更多的是它 - 它实际上还没有设置状态和状态.
如果您想获得状态,还有其他更适合您的活动:
sales_order_payment_place_end- 这在Mage_Sales_Model_Order_Payment::place方法$order->setState完成后立即触发.该place功能本身就是一个afterCommit回调为了节约交易过程.
sales_order_save_commit_after - 处理完所有AfterCommits后触发此操作
sales_model_service_quote_submit_success- 这是Mage_Sales_Model_Service_Quote::submitOrder方法中的最后一个事件- 在发送它的那一刻,Order肯定会拥有所有数据,并且您可以确保在创建订单时没有错误.