InvalidateAfterStockSourceLinksDeletePlugin.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventoryIndexer\Plugin\InventoryApi;
  8. use Magento\Framework\Indexer\IndexerRegistry;
  9. use Magento\InventoryApi\Api\StockSourceLinksDeleteInterface;
  10. use Magento\InventoryIndexer\Indexer\InventoryIndexer;
  11. /**
  12. * Invalidate index after source links have been deleted.
  13. */
  14. class InvalidateAfterStockSourceLinksDeletePlugin
  15. {
  16. /**
  17. * @var IndexerRegistry
  18. */
  19. private $indexerRegistry;
  20. /**
  21. * @param IndexerRegistry $indexerRegistry
  22. */
  23. public function __construct(
  24. IndexerRegistry $indexerRegistry
  25. ) {
  26. $this->indexerRegistry = $indexerRegistry;
  27. }
  28. /**
  29. * @param StockSourceLinksDeleteInterface $subject
  30. * @param void $result
  31. * @return void
  32. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  33. */
  34. public function afterExecute(
  35. StockSourceLinksDeleteInterface $subject,
  36. $result
  37. ) {
  38. $indexer = $this->indexerRegistry->get(InventoryIndexer::INDEXER_ID);
  39. if ($indexer->isValid()) {
  40. $indexer->invalidate();
  41. }
  42. }
  43. }