How to get Magento order data from Observer

Ok, I searched all over the internet and didn't work anything. The results were very inconsistent. Let me first show you what I have here. In the end, he will create an export file, but will not be able to get the data and the order object.

class Packagename_Modulename_Model_Observer
{
    public function exportFeed (Varien_Event_Observer $observer)
    {
        $order = $observer->getEvent()->getOrder();

        $ordered_items = $order->getAllItems();   

and in config.xml

<global>
  <events>
        <sales_order_place_after>
            <observers>
                <packagename_modulename_order_observer>
                    <class>Packagename_Modulename_Model_Observer</class>
                    <method>exportFeed</method>
                </packagename_modulename_order_observer>
            </observers>
        </sales_order_place_after>
    </events>
</global>

Now I saw how people used without Varien_Event_Observer,

public function exportFeed ($observer)

Ive also tried without getEvent ()

$order = $observer->getOrder();

and something else in config.xml, with and without a singleton

<type>singleton</type>
<class>packagename_modulename/observer</class>

All I want to do is export the inventory feed of this particular item ordered when placing an order through Magento.

+3
source share
1 answer

Try

In config.xml

<config>
  <modules>
    <Packagename_Modulename>
        <version>1.3</version>
    </Packagename_Modulename>
  </modules>
  ....
  <global>
   <models>
        <packagename_modulename>
            <class>Packagename_Modulename_Model</class>
        </packagename_modulename>
   </models>
   <events>
      <sales_order_place_after>
         <observers>
            <packagename_modulename_order_observer>
                <type>singleton</type>
                <class>modulename/observer</class>
                <method>exportFeed</method>
            </packagename_modulename_order_observer>
         </observers>
      </sales_order_place_after>

In Observer.php

class Packagename_Modulename_Model_Observer 
{
   public function exportFeed($event)
    {
        $order = $event->getOrder();
        foreach ($order->getAllVisibleItems() as $item){
           $item->getQtyOrdered() // Number of item ordered
           //$item->getQtyShipped()  
           //$item->getQtyInvoiced()

           $optionArray = $item->getProductOptions()
           // Todo : check to see if set and is array $optionArray['options']
           foreach($optionArray['options'] as $option){
               // Mage::log($option)
               //echo $option['label']
               //$option['value']
           }
        }
+4
source

All Articles