1

I'm having a hard time figuring out what fires off the flat table update (partial re-indexing) when a attribute mass update is done from the Manage Catalog page in the admin.

When you mass-update attributes from the admin, the following methods are called in order.

  1. Mage_Adminhtml_Catalog_Product_Action_AttributeController::saveAction
  2. Mage_Catalog_Model_Product_Action::updateAttributes
  3. Mage_Catalog_Model_Resource_Product_Action::updateAttributes

You can go straight to 3 to use the mass-update functionality, but the update doesn't propagate to the flat table. So, one would think it's something before 3 that triggers the re-indexing, but it's not clear what.

At first glance, 2 has

// register mass action indexer event
Mage::getSingleton('index/indexer')->processEntityAction(
    $this, Mage_Catalog_Model_Product::ENTITY, Mage_Index_Model_Event::TYPE_MASS_ACTION
);

which looks like the answer, but the flat table is updated even with this commented out. I've even tried reducing Mage_Catalog_Model_Product_Action::updateAttributes down to the following, but it still re-indexes.

public function updateAttributes($productIds, $attrData, $storeId)
{
    $this->_getResource()->updateAttributes($productIds, $attrData, $storeId);

    return $this;
}

Any idea what actually updates the flat table when attribute mass update is done in the admin?

1 Answer 1

1

The event controller_action_postdispatch_adminhtml_catalog_product_action_attribute_save triggers the observer to initiate reindexing of the products updated in the mass-update.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.