Magento 1.9 – Get Order Details After Order Success

event-observerextensionsmagento-1.9sales-order

Fatal error: Call to a member function getData() on a non-object

config.xml

    <events>
        <checkout_onepage_controller_success_action>
            <observers>
                <abandonedcart_observer>
                    <type>singleton</type>
                    <class>abandonedcart/observer</class>
                    <method>saveRedemptionInfo</method>
                </abandonedcart_observer>
            </observers>
        </checkout_onepage_controller_success_action>
    </events

Observer.php

public function saveRedemptionInfo(){

    $order_id = $observer->getData('order_ids');
    $order = Mage::getModel('sales/order')->load($order_id);

Same issue happens when I use sales_order_place_after and $order_id = $observer->getEvent()->getOrder()->getId(); . I get error-

Call to a member function getEvent() on a non-object

Best Answer

you did a mistake in defining the function in the observer. You did not pass $observer as an argument to the observer function. You can call the function on the event sales_order_place_after like below :

public function saveRedemptionInfo($observer){

    $order = $observer->getEvent()->getOrder();
    echo "<pre>"; print_r($order->getData()); 
}
Related Topic