CheckoutAllSubmitAfterObserver.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\CatalogInventory\Observer;
  7. use Magento\Framework\Event\ObserverInterface;
  8. use Magento\Framework\Event\Observer as EventObserver;
  9. class CheckoutAllSubmitAfterObserver implements ObserverInterface
  10. {
  11. /**
  12. * @var SubtractQuoteInventoryObserver
  13. */
  14. protected $subtractQuoteInventoryObserver;
  15. /**
  16. * @var ReindexQuoteInventoryObserver
  17. */
  18. protected $reindexQuoteInventoryObserver;
  19. /**
  20. * @param SubtractQuoteInventoryObserver $subtractQuoteInventoryObserver
  21. * @param ReindexQuoteInventoryObserver $reindexQuoteInventoryObserver
  22. */
  23. public function __construct(
  24. SubtractQuoteInventoryObserver $subtractQuoteInventoryObserver,
  25. ReindexQuoteInventoryObserver $reindexQuoteInventoryObserver
  26. ) {
  27. $this->subtractQuoteInventoryObserver = $subtractQuoteInventoryObserver;
  28. $this->reindexQuoteInventoryObserver = $reindexQuoteInventoryObserver;
  29. }
  30. /**
  31. * Subtract qtys of quote item products after multishipping checkout
  32. *
  33. * @param EventObserver $observer
  34. * @return $this
  35. */
  36. public function execute(EventObserver $observer)
  37. {
  38. $quote = $observer->getEvent()->getQuote();
  39. if (!$quote->getInventoryProcessed()) {
  40. $this->subtractQuoteInventoryObserver->execute($observer);
  41. $this->reindexQuoteInventoryObserver->execute($observer);
  42. }
  43. return $this;
  44. }
  45. }