这就是我在做什么,
在此事件下: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();
}
但是订单状态还没有到来,有什么建议吗?提前谢谢
答案 0 :(得分:5)
事件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
方法中的最终事件 - 在发送时,订单肯定会包含所有数据,并且您可以确定在此过程中没有错误订单创建。