Quais índices precisam ser reindexados para que os produtos sejam exibidos corretamente depois que o estoque for alterado por script?


8

Eu escrevi um cron que atualiza o inventário dos meus produtos todas as noites. Quais índices precisam ser reindexados para que os produtos sejam exibidos corretamente depois que o estoque for alterado por script? O cache precisa ser atualizado? Tentando identificar a questão exata do porquê "adicionar ao carrinho" estava faltando nos produtos na semana passada. A reindexação resolveu esse problema na semana passada, mas preciso saber se meu script de ações causou a necessidade de reindexar.

Respostas:


14

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();
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.