/** * 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; }