订单提交后希望为购买礼品卡开票

问题描述

| 我有一个基本的观察者功能,可以抓取订单中的所有礼品并返回:
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英镑。