I want to use an observer which will triggered when an order will placed on front end by the user. I am little bit confused which observer I should use for this requirement.

sales_order_place_after observer

or checkout_onepage_controller_success_action.

2 Answers 2


sales_order_place_after is fire when place() of order object is called and in magento every payment does not call place() when order placed.



Is only called when customer has been redirect to checout/onepage/success. Also this event only called whenever order place from frontend and customer visit checout/onepage/success.

MY suggestion, this two event not proper,We should be use checkout_submit_all_after this event is fire when order place from frontend and backend.

it is fire immediate order place

  • then how to show the message on phtml when event is immediately fired ? Apr 4, 2017 at 7:41

I want to suggest 2 events which detailed scope and information:

  • checkout_submit_all_after: I will be going with this if I just need to get order information.

  • sales_order_place_after: I will be going with this event if I want to update order information before save something to the order.

  • checkout_onepage_controller_success_action: This event for success controller, This event won't fire if order was placed from admin or via API.

I hope you got right think.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.