How to get order event after placing order using observer in admin side?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
1
down vote

favorite












i want to get the order event and want to use the order object data , tried this but something is missing, here is what i tried
and how can i use this data in my helper/block class or controller action?




etc/adminhtml/events.xml




<?xml version="1.0"?>


<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

<event name="test_order">
<observer name="afterOrderObserver" instance="VendorModuleObserverOrder"/>
</event>
</config>



Observer/TestOrder.php




<?php

namespace VendorModuleModelObserver;

use MagentoFrameworkEventObserverInterface;

class TestOrder implements ObserverInterface

/**
* Order Model
*
* @var MagentoSalesModelOrder $order
*/
protected $order;

public function __construct(
MagentoSalesModelOrder $order
)

$this->order = $order;


public function execute(MagentoFrameworkEventObserver $observer)

$orderId = $observer->getEvent()->getOrderIds();
$order = $this->order->load($orderId);

//get Order All Item
$itemCollection = $order->getItemsCollection();
$customer = $order->getCustomerId(); // using this id you can get customer name












share|improve this question





























    up vote
    1
    down vote

    favorite












    i want to get the order event and want to use the order object data , tried this but something is missing, here is what i tried
    and how can i use this data in my helper/block class or controller action?




    etc/adminhtml/events.xml




    <?xml version="1.0"?>


    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

    <event name="test_order">
    <observer name="afterOrderObserver" instance="VendorModuleObserverOrder"/>
    </event>
    </config>



    Observer/TestOrder.php




    <?php

    namespace VendorModuleModelObserver;

    use MagentoFrameworkEventObserverInterface;

    class TestOrder implements ObserverInterface

    /**
    * Order Model
    *
    * @var MagentoSalesModelOrder $order
    */
    protected $order;

    public function __construct(
    MagentoSalesModelOrder $order
    )

    $this->order = $order;


    public function execute(MagentoFrameworkEventObserver $observer)

    $orderId = $observer->getEvent()->getOrderIds();
    $order = $this->order->load($orderId);

    //get Order All Item
    $itemCollection = $order->getItemsCollection();
    $customer = $order->getCustomerId(); // using this id you can get customer name












    share|improve this question

























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      i want to get the order event and want to use the order object data , tried this but something is missing, here is what i tried
      and how can i use this data in my helper/block class or controller action?




      etc/adminhtml/events.xml




      <?xml version="1.0"?>


      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

      <event name="test_order">
      <observer name="afterOrderObserver" instance="VendorModuleObserverOrder"/>
      </event>
      </config>



      Observer/TestOrder.php




      <?php

      namespace VendorModuleModelObserver;

      use MagentoFrameworkEventObserverInterface;

      class TestOrder implements ObserverInterface

      /**
      * Order Model
      *
      * @var MagentoSalesModelOrder $order
      */
      protected $order;

      public function __construct(
      MagentoSalesModelOrder $order
      )

      $this->order = $order;


      public function execute(MagentoFrameworkEventObserver $observer)

      $orderId = $observer->getEvent()->getOrderIds();
      $order = $this->order->load($orderId);

      //get Order All Item
      $itemCollection = $order->getItemsCollection();
      $customer = $order->getCustomerId(); // using this id you can get customer name












      share|improve this question















      i want to get the order event and want to use the order object data , tried this but something is missing, here is what i tried
      and how can i use this data in my helper/block class or controller action?




      etc/adminhtml/events.xml




      <?xml version="1.0"?>


      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

      <event name="test_order">
      <observer name="afterOrderObserver" instance="VendorModuleObserverOrder"/>
      </event>
      </config>



      Observer/TestOrder.php




      <?php

      namespace VendorModuleModelObserver;

      use MagentoFrameworkEventObserverInterface;

      class TestOrder implements ObserverInterface

      /**
      * Order Model
      *
      * @var MagentoSalesModelOrder $order
      */
      protected $order;

      public function __construct(
      MagentoSalesModelOrder $order
      )

      $this->order = $order;


      public function execute(MagentoFrameworkEventObserver $observer)

      $orderId = $observer->getEvent()->getOrderIds();
      $order = $this->order->load($orderId);

      //get Order All Item
      $itemCollection = $order->getItemsCollection();
      $customer = $order->getCustomerId(); // using this id you can get customer name









      magento2 orders event-observer






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 12 hours ago









      PY Yick

      1,594720




      1,594720










      asked 13 hours ago









      sheraz khan

      10811




      10811




















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          3
          down vote



          accepted










          Please modify your code like below



           <?xml version="1.0"?>
          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

          <event name="sales_order_place_after">
          <observer name="order_data" instance="VendorModuleObserverOrderData" />
          </event>
          </config>


          OrderData.php



          class OrderData implements MagentoFrameworkEventObserverInterface

          public function execute(MagentoFrameworkEventObserver $observer)

          $order = $observer->getEvent()->getOrder();
          echo $order->getId();
          exit;




          make sure you place events.xml under etc/adminhtml let me know if any help needed.






          share|improve this answer




















          • thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
            – sheraz khan
            12 hours ago


















          up vote
          1
          down vote













          Event name tag indicates the name of the event you want to observe



          In your case you'd take a look at vendor/magento/module-sales/Model/Order.php class, in concrete place() method. You'll see 2 events fired there



          public function place()

          $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]);
          $this->_placePayment();
          $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]);
          return $this;



          If you want to run your code after order has been placed, then you should change



          <event name="test_order">


          And use



          <event name="sales_order_place_after">


          Note that the object attached to this event is $order, you should be able to access it in your observer using



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





          share|improve this answer




















          • thanks for the help !
            – sheraz khan
            12 hours ago










          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "479"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f249687%2fhow-to-get-order-event-after-placing-order-using-observer-in-admin-side%23new-answer', 'question_page');

          );

          Post as a guest






























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          3
          down vote



          accepted










          Please modify your code like below



           <?xml version="1.0"?>
          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

          <event name="sales_order_place_after">
          <observer name="order_data" instance="VendorModuleObserverOrderData" />
          </event>
          </config>


          OrderData.php



          class OrderData implements MagentoFrameworkEventObserverInterface

          public function execute(MagentoFrameworkEventObserver $observer)

          $order = $observer->getEvent()->getOrder();
          echo $order->getId();
          exit;




          make sure you place events.xml under etc/adminhtml let me know if any help needed.






          share|improve this answer




















          • thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
            – sheraz khan
            12 hours ago















          up vote
          3
          down vote



          accepted










          Please modify your code like below



           <?xml version="1.0"?>
          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

          <event name="sales_order_place_after">
          <observer name="order_data" instance="VendorModuleObserverOrderData" />
          </event>
          </config>


          OrderData.php



          class OrderData implements MagentoFrameworkEventObserverInterface

          public function execute(MagentoFrameworkEventObserver $observer)

          $order = $observer->getEvent()->getOrder();
          echo $order->getId();
          exit;




          make sure you place events.xml under etc/adminhtml let me know if any help needed.






          share|improve this answer




















          • thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
            – sheraz khan
            12 hours ago













          up vote
          3
          down vote



          accepted







          up vote
          3
          down vote



          accepted






          Please modify your code like below



           <?xml version="1.0"?>
          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

          <event name="sales_order_place_after">
          <observer name="order_data" instance="VendorModuleObserverOrderData" />
          </event>
          </config>


          OrderData.php



          class OrderData implements MagentoFrameworkEventObserverInterface

          public function execute(MagentoFrameworkEventObserver $observer)

          $order = $observer->getEvent()->getOrder();
          echo $order->getId();
          exit;




          make sure you place events.xml under etc/adminhtml let me know if any help needed.






          share|improve this answer












          Please modify your code like below



           <?xml version="1.0"?>
          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

          <event name="sales_order_place_after">
          <observer name="order_data" instance="VendorModuleObserverOrderData" />
          </event>
          </config>


          OrderData.php



          class OrderData implements MagentoFrameworkEventObserverInterface

          public function execute(MagentoFrameworkEventObserver $observer)

          $order = $observer->getEvent()->getOrder();
          echo $order->getId();
          exit;




          make sure you place events.xml under etc/adminhtml let me know if any help needed.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 12 hours ago









          Ramkishan

          1,3091829




          1,3091829











          • thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
            – sheraz khan
            12 hours ago

















          • thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
            – sheraz khan
            12 hours ago
















          thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
          – sheraz khan
          12 hours ago





          thanks for pointing out the mistake,one another mistake of namespace, namespace should be namespace VendorModuleObserver; instead of VendorModuleModelObserver;
          – sheraz khan
          12 hours ago













          up vote
          1
          down vote













          Event name tag indicates the name of the event you want to observe



          In your case you'd take a look at vendor/magento/module-sales/Model/Order.php class, in concrete place() method. You'll see 2 events fired there



          public function place()

          $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]);
          $this->_placePayment();
          $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]);
          return $this;



          If you want to run your code after order has been placed, then you should change



          <event name="test_order">


          And use



          <event name="sales_order_place_after">


          Note that the object attached to this event is $order, you should be able to access it in your observer using



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





          share|improve this answer




















          • thanks for the help !
            – sheraz khan
            12 hours ago














          up vote
          1
          down vote













          Event name tag indicates the name of the event you want to observe



          In your case you'd take a look at vendor/magento/module-sales/Model/Order.php class, in concrete place() method. You'll see 2 events fired there



          public function place()

          $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]);
          $this->_placePayment();
          $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]);
          return $this;



          If you want to run your code after order has been placed, then you should change



          <event name="test_order">


          And use



          <event name="sales_order_place_after">


          Note that the object attached to this event is $order, you should be able to access it in your observer using



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





          share|improve this answer




















          • thanks for the help !
            – sheraz khan
            12 hours ago












          up vote
          1
          down vote










          up vote
          1
          down vote









          Event name tag indicates the name of the event you want to observe



          In your case you'd take a look at vendor/magento/module-sales/Model/Order.php class, in concrete place() method. You'll see 2 events fired there



          public function place()

          $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]);
          $this->_placePayment();
          $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]);
          return $this;



          If you want to run your code after order has been placed, then you should change



          <event name="test_order">


          And use



          <event name="sales_order_place_after">


          Note that the object attached to this event is $order, you should be able to access it in your observer using



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





          share|improve this answer












          Event name tag indicates the name of the event you want to observe



          In your case you'd take a look at vendor/magento/module-sales/Model/Order.php class, in concrete place() method. You'll see 2 events fired there



          public function place()

          $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]);
          $this->_placePayment();
          $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]);
          return $this;



          If you want to run your code after order has been placed, then you should change



          <event name="test_order">


          And use



          <event name="sales_order_place_after">


          Note that the object attached to this event is $order, you should be able to access it in your observer using



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






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 12 hours ago









          Raul Sanchez

          1,88931134




          1,88931134











          • thanks for the help !
            – sheraz khan
            12 hours ago
















          • thanks for the help !
            – sheraz khan
            12 hours ago















          thanks for the help !
          – sheraz khan
          12 hours ago




          thanks for the help !
          – sheraz khan
          12 hours ago

















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f249687%2fhow-to-get-order-event-after-placing-order-using-observer-in-admin-side%23new-answer', 'question_page');

          );

          Post as a guest













































































          Popular posts from this blog

          Peggy Mitchell

          Palaiologos

          The Forum (Inglewood, California)