Magento – Event to use to fetch Order Id and not Increment Id

event-observerincrement-idmagento-1orders

I am using the event <sales_order_place_after> in my observer to perform some action. I am inserting the Order ID in my custom table. But what I observe is that it does not give me Order ID but instead Increment ID, which I am fetching using getReservedOrderId().

Now to fetch Order ID from Increment ID I can use,

$order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');

but I need to insert the data at the time of order placed, instead of fetching it again.

Observer Code;

$order = $observer->getEvent()->getOrder(); //returns null

So I am using

$order = $observer->getEvent()->getOrder()->getQuote();

Which event should be used in order to get all order details after an order is placed or on order success ?

Best Answer

There are lot of event in magento order place.

I have preferred checkout_submit_all_after event which is give Order and Quote in there Observer.

This event is occur for both frontend and backend.

Example:

<global>
        <events>

                <checkout_submit_all_after>
                    <observers>
                        <awesome_example>
                            <class>yourmodel/observer</class>
                            <method>SyncWithInfusion</method>
                        </awesome_example>
                    </observers>
                </checkout_submit_all_after>
            </events>
</global>

and Observer code is

public function SyncWithInfusion(Varien_Event_Observer $observer)
    {
        $order = $observer->getEvent()->getOrder();
    //get order
    $order->getId();
        $Quote = $observer->getEvent()->getQuote();


    }

See at:custom checkout_submit_all_after observer not working

Related Topic