Se você atualizar as opções de estoque de produtos, poderá reindexar as tabelas "Status das ações" programaticamente:
try {
$indexer = Mage::getModel('index/indexer')->getProcessByCode('cataloginventory_stock');
$indexer->reindexEverything();
} catch (Exception $e) {
//Some error handling
}
Para obter o modelo do indexador, use Mage::getModel('index/indexer')->getProcessByCode('some_indexer_code_given_below')
. Magento fornece vários indexadores. Se você atualizar o produto de forma programática, poderá usar os seguintes indexadores, apenas forneco o indexer_code e você deverá alterar o snippet fornecido (consulte a tabela index_process):
- catalog_product_attribute - Atributos do produto (se você atualizou os atributos que são usados na navegação em camadas)
- catalog_product_price - Preços do produto (se você atualizou os preços)
- catalog_url - regravações de URL do catálogo (se você atualizou o URL do produto ou do catálogo)
- catalog_product_flat - dados simples do produto (se sua loja usa tabelas Flate e se você atualizou atributos do produto que são usados na lógica de front-end sempre)
- catalog_category_flat - dados simples da categoria (se você atualizou os atributos da categoria)
- catalog_category_product - produtos da categoria (se você adicionou ou removeu produtos do catálogo)
- catalogsearch_fulltext - Índice de pesquisa de catálogo (se você atualizou os atributos pesquisáveis do produto)
- cataloginventory_stock - Status do estoque (se você atualizou as opções de estoque do produto)
- tag_summary - Dados de agregação de tags (se você atualizou a tag do produto)
E você pode (você deve atualizar os prêmios após qualquer atualização de produtos / categorias) limpar o cache do magento programaticamente em sua lógica:
Mage::app()->getCacheInstance()->flush();
Mage::app()->cleanCache();