indexerRegistry = $indexerRegistry; $this->isInvalidationRequiredForSource = $isInvalidationRequiredForSource; } /** * Invalidate Inventory Indexer after Source was enabled or disabled. * * @param SourceRepositoryInterface $subject * @param callable $proceed * @param SourceInterface $source * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundSave( SourceRepositoryInterface $subject, callable $proceed, SourceInterface $source ) { $invalidationRequired = false; if ($source->getSourceCode()) { $invalidationRequired = $this->isInvalidationRequiredForSource->execute( $source->getSourceCode(), (bool)$source->isEnabled() ); } $proceed($source); if ($invalidationRequired) { $indexer = $this->indexerRegistry->get(InventoryIndexer::INDEXER_ID); if ($indexer->isValid()) { $indexer->invalidate(); } } } }