Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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);
     }
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 /**
  * 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;
 }