How do i get quantity in a product_save_after event observer magento2?












1















I have an observer that is observing catalog_product_save_after. In this observer I want to get the product quantity. but the cataloginventory_stock_item table is not updated until after the observer returns. Is there some way to find the quantity entered in the "quantity" Field for a brand new product?










share|improve this question



























    1















    I have an observer that is observing catalog_product_save_after. In this observer I want to get the product quantity. but the cataloginventory_stock_item table is not updated until after the observer returns. Is there some way to find the quantity entered in the "quantity" Field for a brand new product?










    share|improve this question

























      1












      1








      1








      I have an observer that is observing catalog_product_save_after. In this observer I want to get the product quantity. but the cataloginventory_stock_item table is not updated until after the observer returns. Is there some way to find the quantity entered in the "quantity" Field for a brand new product?










      share|improve this question














      I have an observer that is observing catalog_product_save_after. In this observer I want to get the product quantity. but the cataloginventory_stock_item table is not updated until after the observer returns. Is there some way to find the quantity entered in the "quantity" Field for a brand new product?







      magento2 product event-observer






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 15 '18 at 18:40









      BrandenB171BrandenB171

      1063




      1063






















          1 Answer
          1






          active

          oldest

          votes


















          0














          If you want to $productobj after saving product from backend side so you can easily use catalog_product_save_after event.



          I am assuming that you already know how to create a module in M2.



          Right now you have to need develop new module for M2



          Then Create this events.xml file in below path



          appcodeYOUR_NAMESPACEYOURMODULEetcadminhtml



          <?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="catalog_product_save_after">
          <observer name="test_name" instance="YOUR_NAMESPACEYOUR_MODULENAMEObserverProductsaveafter" />
          </event>
          </config>


          And Create your observer file Productsaveafter.php in below path



          appcodeYOUR_NAMESPACEYOURMODULEObserver



          <?php

          namespace YOURNAMESPACEYOURMODULENAMEObserver;

          use MagentoFrameworkEventObserverInterface;

          class Productsaveafter implements ObserverInterface
          {
          public function execute(MagentoFrameworkEventObserver $observer)
          {
          $product = $observer->getEvent()->getProduct();
          $id = $product->getId(); //Get Product Id

          //Get Quantity
          $stockItem = $product->getExtensionAttributes()->getStockItem();
          $stockData = $stockItem->getQty();
          // Get new Qty
          $_vendor_qty = $product->getVendorQty();
          $_on_hand_qty = $product->getOnHandQty();
          $totalQty = $_vendor_qty+$_on_hand_qty; //Add New Qty


          $stockItem->setQty($totalQty); //Set New Qty to Main Qty
          $stockItem->save();

          }
          }





          share|improve this answer























            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',
            autoActivateHeartbeat: false,
            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%2f209547%2fhow-do-i-get-quantity-in-a-product-save-after-event-observer-magento2%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            If you want to $productobj after saving product from backend side so you can easily use catalog_product_save_after event.



            I am assuming that you already know how to create a module in M2.



            Right now you have to need develop new module for M2



            Then Create this events.xml file in below path



            appcodeYOUR_NAMESPACEYOURMODULEetcadminhtml



            <?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="catalog_product_save_after">
            <observer name="test_name" instance="YOUR_NAMESPACEYOUR_MODULENAMEObserverProductsaveafter" />
            </event>
            </config>


            And Create your observer file Productsaveafter.php in below path



            appcodeYOUR_NAMESPACEYOURMODULEObserver



            <?php

            namespace YOURNAMESPACEYOURMODULENAMEObserver;

            use MagentoFrameworkEventObserverInterface;

            class Productsaveafter implements ObserverInterface
            {
            public function execute(MagentoFrameworkEventObserver $observer)
            {
            $product = $observer->getEvent()->getProduct();
            $id = $product->getId(); //Get Product Id

            //Get Quantity
            $stockItem = $product->getExtensionAttributes()->getStockItem();
            $stockData = $stockItem->getQty();
            // Get new Qty
            $_vendor_qty = $product->getVendorQty();
            $_on_hand_qty = $product->getOnHandQty();
            $totalQty = $_vendor_qty+$_on_hand_qty; //Add New Qty


            $stockItem->setQty($totalQty); //Set New Qty to Main Qty
            $stockItem->save();

            }
            }





            share|improve this answer




























              0














              If you want to $productobj after saving product from backend side so you can easily use catalog_product_save_after event.



              I am assuming that you already know how to create a module in M2.



              Right now you have to need develop new module for M2



              Then Create this events.xml file in below path



              appcodeYOUR_NAMESPACEYOURMODULEetcadminhtml



              <?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="catalog_product_save_after">
              <observer name="test_name" instance="YOUR_NAMESPACEYOUR_MODULENAMEObserverProductsaveafter" />
              </event>
              </config>


              And Create your observer file Productsaveafter.php in below path



              appcodeYOUR_NAMESPACEYOURMODULEObserver



              <?php

              namespace YOURNAMESPACEYOURMODULENAMEObserver;

              use MagentoFrameworkEventObserverInterface;

              class Productsaveafter implements ObserverInterface
              {
              public function execute(MagentoFrameworkEventObserver $observer)
              {
              $product = $observer->getEvent()->getProduct();
              $id = $product->getId(); //Get Product Id

              //Get Quantity
              $stockItem = $product->getExtensionAttributes()->getStockItem();
              $stockData = $stockItem->getQty();
              // Get new Qty
              $_vendor_qty = $product->getVendorQty();
              $_on_hand_qty = $product->getOnHandQty();
              $totalQty = $_vendor_qty+$_on_hand_qty; //Add New Qty


              $stockItem->setQty($totalQty); //Set New Qty to Main Qty
              $stockItem->save();

              }
              }





              share|improve this answer


























                0












                0








                0







                If you want to $productobj after saving product from backend side so you can easily use catalog_product_save_after event.



                I am assuming that you already know how to create a module in M2.



                Right now you have to need develop new module for M2



                Then Create this events.xml file in below path



                appcodeYOUR_NAMESPACEYOURMODULEetcadminhtml



                <?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="catalog_product_save_after">
                <observer name="test_name" instance="YOUR_NAMESPACEYOUR_MODULENAMEObserverProductsaveafter" />
                </event>
                </config>


                And Create your observer file Productsaveafter.php in below path



                appcodeYOUR_NAMESPACEYOURMODULEObserver



                <?php

                namespace YOURNAMESPACEYOURMODULENAMEObserver;

                use MagentoFrameworkEventObserverInterface;

                class Productsaveafter implements ObserverInterface
                {
                public function execute(MagentoFrameworkEventObserver $observer)
                {
                $product = $observer->getEvent()->getProduct();
                $id = $product->getId(); //Get Product Id

                //Get Quantity
                $stockItem = $product->getExtensionAttributes()->getStockItem();
                $stockData = $stockItem->getQty();
                // Get new Qty
                $_vendor_qty = $product->getVendorQty();
                $_on_hand_qty = $product->getOnHandQty();
                $totalQty = $_vendor_qty+$_on_hand_qty; //Add New Qty


                $stockItem->setQty($totalQty); //Set New Qty to Main Qty
                $stockItem->save();

                }
                }





                share|improve this answer













                If you want to $productobj after saving product from backend side so you can easily use catalog_product_save_after event.



                I am assuming that you already know how to create a module in M2.



                Right now you have to need develop new module for M2



                Then Create this events.xml file in below path



                appcodeYOUR_NAMESPACEYOURMODULEetcadminhtml



                <?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="catalog_product_save_after">
                <observer name="test_name" instance="YOUR_NAMESPACEYOUR_MODULENAMEObserverProductsaveafter" />
                </event>
                </config>


                And Create your observer file Productsaveafter.php in below path



                appcodeYOUR_NAMESPACEYOURMODULEObserver



                <?php

                namespace YOURNAMESPACEYOURMODULENAMEObserver;

                use MagentoFrameworkEventObserverInterface;

                class Productsaveafter implements ObserverInterface
                {
                public function execute(MagentoFrameworkEventObserver $observer)
                {
                $product = $observer->getEvent()->getProduct();
                $id = $product->getId(); //Get Product Id

                //Get Quantity
                $stockItem = $product->getExtensionAttributes()->getStockItem();
                $stockData = $stockItem->getQty();
                // Get new Qty
                $_vendor_qty = $product->getVendorQty();
                $_on_hand_qty = $product->getOnHandQty();
                $totalQty = $_vendor_qty+$_on_hand_qty; //Add New Qty


                $stockItem->setQty($totalQty); //Set New Qty to Main Qty
                $stockItem->save();

                }
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 12 at 6:50









                AB SaiyadAB Saiyad

                594




                594






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Magento Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f209547%2fhow-do-i-get-quantity-in-a-product-save-after-event-observer-magento2%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    1300-talet

                    1300-talet

                    Display a custom attribute below product name in the front-end Magento 1.9.3.8