2015-02-12 71 views
0

我在Magento管理面板中創建銷售訂單,我只是寫了下面的代碼在我config.xml中保存銷售訂單後,獲取增量ID到觀察員?

<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。

謝謝

回答

0

它已經在該點分配到訂單,所以你可以這樣說:

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

說明:

  • 增量ID被分配在Mage_Sales_Model_Order::_beforeSave()
  • 「訂單」是事件的一個參數,這樣就可以使用$observer->getOrder()這實際上是$observer->getEvent()->getData('order')一個快捷方式。該參數爲「before_save」和「after_save的」事件的名稱在模型類的$_eventObject屬性定義:

    protected $_eventObject = 'order'; 
    
+0

嘿,如果我想要訂單的狀態,使用什麼函數.....'$ observer-> getOrder() - > getStatus()'不工作。謝謝 – 2015-02-16 06:00:30

+0

但是,它應該是正確的方式 – 2015-02-16 06:30:00

+0

如果我回顯$狀態它打印「掛起」,但如果我寫這個'$ stmt = $ conn-> prepare(「INSERT INTO pp_sales_order VALUES('','',?)」); $ stmt-> bind_param(「s」,$ status); $ status = $ observer-> getOrder() - > getStatus();',它插入NULL NULL – 2015-02-16 06:32:18

0

我發現我自己......

$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(); 

問題是解決了.....

+0

......以最過於複雜的方式。 – 2015-02-12 08:45:48