Предположим, у нас есть атрибут продукта 'disqus_comment_count' и мы как-то (например, с помощью API) получаем от Disqus новые значения комментариев.
/** @var $productFlatIndexer Mage_Catalog_Model_Product_Flat_Indexer */ $productFlatIndexer = Mage::getModel('catalog/product_flat_indexer'); // модель для обновления значения атрибута во flat-таблице $storeId = 1; // необходимый store id /** @var $productCollection Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection */ $productCollection = Mage::getResourceModel('appstore_extension/product_collection'); /** @var $product AppStore_Extension_Model_Product */ foreach ($productCollection as $product) { $product->setDiscusCommentCount($newCommentValue); $product->getResource() ->saveAttribute($product, 'disqus_comment_count'); // Обновляем значение атрибута во flat-таблице стора $productFlatIndexer->updateAttribute('disqus_comment_count', $storeId, $product->getId()); }Вот и все. Стоит сказать, что Mage_Catalog_Model_Product_Flat_Indexer::updateAttribute() в цикле это не лучшее решение. Если логика приложения позволяет вынести вызов этого метода из цикла и обновить значение атрибута для пачки продуктов - смело делайте это.
Читать далее