priceIndexProcessor = $priceIndexProcessor; } /** * @param Item $subject * @param Item $result * @param AbstractModel $model * @return Item * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterSave(Item $subject, Item $result, AbstractModel $model): Item { $fields = [ 'is_in_stock', 'use_config_manage_stock', 'manage_stock', ]; foreach ($fields as $field) { if ($model->dataHasChangedFor($field)) { $this->priceIndexProcessor->reindexRow($model->getProductId()); break; } } return $result; } /** * @param Item $subject * @param mixed $result * @param int $websiteId * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterUpdateSetOutOfStock(Item $subject, $result, int $websiteId) { $this->priceIndexProcessor->markIndexerAsInvalid(); } /** * @param Item $subject * @param mixed $result * @param int $websiteId * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterUpdateSetInStock(Item $subject, $result, int $websiteId) { $this->priceIndexProcessor->markIndexerAsInvalid(); } }