Se você procurar em Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory (), ele chamará a seguinte linha: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds);
O reindexQuoteInventory()
é chamado nos seguintes eventos:
- sales_model_service_quote_submit_success
- checkout_submit_all_after (via
Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter()
)
Isso é conhecido como um dos problemas por contribuir para o bloqueio de problemas em sites ocupados com um alto volume de compras.
Minhas perguntas são:
- Por que os preços dos produtos são indexados novamente em cada caixa?
- Que efeito tem ao removê-lo?
- Se for usado para regras de catálogo, certamente serão apenas regras muito específicas?
Respostas:
A decisão de mostrar ou ocultar um produto com base nessa configuração é implementada pelo Índice de Preços do Produto.
Você pode verificar isso alterando a configuração para "Sim" e visualizando uma categoria com um produto fora de estoque; você vê que o produto está presente. Se você alterar a configuração para "Não" e exibir a categoria novamente, verá que o produto esgotado ainda está presente. Você também notará que esses dois índices agora precisam ser atualizados:
Atributos do produto (catalog_product_attribute) Preços do produto (catalog_product_price)
Se você atualizar apenas o índice "Atributos do produto", o produto ainda estará visível. Se você atualizar o índice "Preços do produto", ele desaparecerá; portanto, o índice "Preços do produto" será responsável pela implementação dessa configuração.
catalog_product_index_price é a tabela principal , pois é a única incluída em todas as consultas ao carregar uma categoria ou página de produto
fonte
catalog_product_index_price
só é utilizado na categoria de página / pesquisa, mas não em páginas de produtos