保存销售订单后获取增量ID给观察者?

Get the Increment Id in to observer after saving the sales order?

我正在 magento 管理面板中创建销售订单,我刚刚在 config.xml

中编写了以下代码
<global>
        <events>
            <sales_order_save_after>
                <observers>
                    <mymodule>
                        <type>singleton</type>
                        <class>mymodule/observer</class>
                        <method>handleOrder</method>
                    </mymodule>
                </observers>
            </sales_order_save_after>           
        </events>
    </global>

我的观察者档案如下..

class Mycompany_Mymodule_Model_Observer
{   
    public function handleOrder($observer)
    {

    }
}

在上面的函数中,我想获取调用此函数的销售订单的增量 ID。

谢谢,

我自己找到的...

 $orders = Mage::getModel('sales/order')->getCollection()
                    ->setOrder('increment_id','DESC')
                    ->setPageSize(1)
                    ->setCurPage(1);

                $orderId = $orders->getFirstItem()->getEntityId();
                $order = Mage::getModel('sales/order')->load($orderId);
                $Incrementid = $order->getIncrementId();

问题已解决.....

此时已经分配到订单中,可以这样获取:

$incrementId = $observer->getOrder()->getIncrementId();

解释:

  • 增量 ID 在 Mage_Sales_Model_Order::_beforeSave()
  • 中分配
  • "order"是事件的参数,所以可以使用$observer->getOrder(),其实是$observer->getEvent()->getData('order')的快捷方式。 "before_save" 和 "after_save" 事件的参数名称在模型 class:

    $_eventObject 属性 中定义
    protected $_eventObject = 'order';