问题描述
|
我有一个基本的观察者功能,可以抓取订单中的所有礼品并返回:
public function invoiceGiftCards($observer){
$order = $observer->getEvent()->getorder();
// get all items
$gift_cards = $order->getItemsCollection(array(\'giftcard\'));
Mage::log(\'getSize(): \' . $gift_cards->getSize());
// code to auto-create invoice
...
}
与此事件相关:
<sales_model_service_quote_submit_after>
<observers>
<company_invoice_gift_cards>
<type>singleton</type>
<class>Company_Module_Model_Observer</class>
<method>invoiceGiftCards</method>
</company_invoice_gift_cards>
</observers>
</sales_model_service_quote_submit_after>
但是我发现的是,该函数的集合每次都返回空。即使订单中明确包含礼品卡:
2011-06-25T01:33:38+00:00 DEBUG (7): getSize(): 0
甚至更奇怪的是,如果我在系统中(作为控制器的一部分)以任意顺序运行相同的ѭ3it,它会正常工作。
好像事情还没有完成保存。还有其他我应该尝试的观察者吗? (我也试着checkout_submit_all_after
,没有骰子)。
诸如订单之类的交易发生时,操作的顺序似乎有些问题。之前,我遇到过类似的问题:在发货中创建发票和捕获您可以在我的注释中看到,我的解决方案不理想,但是我不知道该怎么办。
如果有人能为我阐明这一点,我将不胜感激。谢谢。
解决方法
报价是订单之前的内容,我想是在报价相关事件发生时,该订单尚不存在或不完整。可能更相关的行动时间是5英镑或6英镑。