2015-02-12 3 views
0

Я создаю заказ клиента в 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) 
    { 

    } 
} 

В вышеприведенном Я хочу получить идентификатор Increment из заказа клиента, который вызвал эту функцию.

Спасибо,

ответ

0

Это уже назначено порядка в этой точке, так вы можете получить его, как это:

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

Объяснение:

  • Приращение идентификатор получает назначение в Mage_Sales_Model_Order::_beforeSave()
  • «порядок» является параметром события, так что вы можете использовать $observer->getOrder(), который на самом деле является аббревиатурой для $observer->getEvent()->getData('order'). Имя параметра для «before_save» и «after_save» события определяется в $_eventObject свойства класса модели:

    protected $_eventObject = 'order'; 
    
+0

Эй Если я хочу статус заказа, какая функция должна использоваться ..... '$ observer-> getOrder() -> getStatus()' не работает. Спасибо –

+0

Но это должно быть, это правильный путь –

+0

ya Если I echo $ status, он печатает "pending", но если я напишу этот '$ stmt = $ conn-> prepare (" INSERT INTO pp_sales_order VALUES ('', '',?) "); $ stmt-> bind_param ("s", $ status); $ status = $ observer-> getOrder() -> getStatus(); ', Вставляет' NULL' –

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

... в наиболее усложненной способом. –

Смежные вопросы