Example #1
0
 /**
  * Process stock item save action
  *
  * @param Mage_Index_Model_Event $event
  * @return Mage_CatalogInventory_Model_Resource_Indexer_Stock
  */
 public function cataloginventoryStockItemSave(Mage_Index_Model_Event $event)
 {
     $data = $event->getNewData();
     if (empty($data['product_id'])) {
         return $this;
     }
     $productId = $data['product_id'];
     $this->reindexProducts($productId);
     if (!empty($data['force_reindex_required'])) {
         $massObject = new Varien_Object();
         $massObject->setAttributesData(array('force_reindex_required' => 1));
         $massObject->setProductIds(array($productId));
         Mage::getSingleton('index/indexer')->logEvent($massObject, Mage_Catalog_Model_Product::ENTITY, Mage_Index_Model_Event::TYPE_MASS_ACTION);
     }
     return $this;
 }
 /**
  * Register data required by stock item save process in event object
  *
  * @param Mage_Index_Model_Event $event
  * @return Mage_CatalogInventory_Model_Indexer_Stock
  */
 protected function _registerStockItemSaveEvent(Mage_Index_Model_Event $event)
 {
     /* @var $object Mage_CatalogInventory_Model_Stock_Item */
     $object = $event->getDataObject();
     $event->addNewData('reindex_stock', 1);
     $event->addNewData('product_id', $object->getProductId());
     // Saving stock item without product object
     // Register re-index price process if products out of stock hidden on Front-end
     if (!Mage::helper('cataloginventory')->isShowOutOfStock() && !$object->getProduct()) {
         $massObject = new Varien_Object();
         $massObject->setAttributesData(array('force_reindex_required' => 1));
         $massObject->setProductIds(array($object->getProductId()));
         Mage::getSingleton('index/indexer')->logEvent($massObject, Mage_Catalog_Model_Product::ENTITY, Mage_Index_Model_Event::TYPE_MASS_ACTION);
     }
     return $this;
 }