Magento 2 – Add Custom Logic After Order Creation

apimagento2moduleorderssales-order

I've tried to push orders data to 3rdParty webservice. I created observer for event sales_order_place_after – order Id is missing there. I believe it's not a bug – order is not saved in database.

Next try.

I've tried sales_order_save_after – it gives empty array of items, no payment method information. Tried to reload it again with ordermodel->load(id_of_order) but it gives empty data again.
I'm pretty sure, order save event is raised before address, payment and other order stuff is saved in database or object in event is order prepared for save, so all additional informations are filtered out.

Any idea how to get correct order data on order place event.

Best Answer

Here is a list of events http://cyrillschumacher.com/magento2-list-of-all-dispatched-events/

I'm doing the same thing and ended up using 'checkout_onepage_controller_success_action'

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="checkout_onepage_controller_success_action">
    <observer name="mymodule_controller_success_action" instance="My\Module\Observer\MyObserver"  />
</event>

Related Topic