/** * Add product data to stock item * * @param Product $product * @return $this */ public function setProduct(Product $product) { $this->setProductId($product->getId())->setStoreId($product->getStoreId())->setProductTypeId($product->getTypeId())->setProductName($product->getName())->setProductStatusChanged($product->dataHasChangedFor('status'))->setProductChangedWebsites($product->getIsChangedWebsites()); return $this; }
/** * Retrieve data for product category indexer update * * @param \Magento\Catalog\Model\Product $data * @return boolean */ public function isDataForProductCategoryIndexerWasChanged(\Magento\Catalog\Model\Product $data) { foreach ($this->_reindexProductCategoryIndexerData['byDataChange'] as $param) { if ($data->dataHasChangedFor($param)) { return true; } } return false; }
/** * {@inheritdoc} */ public function dataHasChangedFor($field) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'dataHasChangedFor'); if (!$pluginInfo) { return parent::dataHasChangedFor($field); } else { return $this->___callPlugins('dataHasChangedFor', func_get_args(), $pluginInfo); } }
/** * Save type related data * * @param \Magento\Catalog\Model\Product $product * @return $this */ public function save($product) { if ($product->dataHasChangedFor('type_id') && $product->getOrigData('type_id')) { $oldTypeProduct = clone $product; $oldTypeInstance = $this->_catalogProductType->factory($oldTypeProduct->setTypeId($product->getOrigData('type_id'))); $oldTypeProduct->setTypeInstance($oldTypeInstance); $oldTypeInstance->deleteTypeSpecificData($oldTypeProduct); } return $this; }
/** * Retrieve data for price indexer update * * @param \Magento\Catalog\Model\Product|array $data * @return boolean */ public function isDataForPriceIndexerWasChanged($data) { if ($data instanceof ModelProduct) { foreach ($this->_reindexPriceIndexerData['byDataResult'] as $param) { if ($data->getData($param)) { return true; } } foreach ($this->_reindexPriceIndexerData['byDataChange'] as $param) { if ($data->dataHasChangedFor($param)) { return true; } } } elseif (is_array($data)) { foreach ($this->_reindexPriceIndexerData['byDataChange'] as $param) { if (isset($data[$param])) { return true; } } } return false; }