Если вы обновляете параметры запасов товаров, вы можете программно переиндексировать таблицы «Состояние запасов»:
try {
$indexer = Mage::getModel('index/indexer')->getProcessByCode('cataloginventory_stock');
$indexer->reindexEverything();
} catch (Exception $e) {
//Some error handling
}
Для получения модели индексатора используйте Mage::getModel('index/indexer')->getProcessByCode('some_indexer_code_given_below')
. Magento предоставляет несколько индексаторов. Если вы обновляете продукт программным путем, вы можете использовать следующие индексаторы, просто я даю indexer_code, и вы должны изменить данный фрагмент (см. Таблицу index_process):
- catalog_product_attribute - Атрибуты продукта (если вы обновили атрибуты, которые используют многоуровневую навигацию)
- catalog_product_price - Цены на товары (если вы обновили цены)
- catalog_url - перезаписывает URL каталога (если вы обновили Product или Catalag url)
- catalog_product_flat - Product Flat Data (если ваш магазин использует таблицы Flate и если вы обновили атрибуты продукта, которые везде используют логику внешнего интерфейса)
- catalog_category_flat - Плоские данные категории (если вы обновили атрибуты категории)
- catalog_category_product - Категория товаров (если вы добавили или удалили товары из каталога)
- catalogsearch_fulltext - индекс поиска по каталогу (если вы обновили искомые атрибуты товара)
- cataloginventory_stock - Состояние склада (если вы обновили опционы на товар)
- tag_summary - данные агрегации тегов (если вы обновили тег продукта)
И вы можете (вы должны обновить денежные средства после любого обновления продуктов / категорий) программно очистить кэш magento в своей логике:
Mage::app()->getCacheInstance()->flush();
Mage::app()->cleanCache();