Por que o magento re-indexa os preços em cada caixa?


8

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:

  1. sales_model_service_quote_submit_success
  2. 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:

  1. Por que os preços dos produtos são indexados novamente em cada caixa?
  2. Que efeito tem ao removê-lo?
  3. Se for usado para regras de catálogo, certamente serão apenas regras muito específicas?

O óbvio seria regras de promoção (3.), mas eu (sem verificar o núcleo) suspeitaria que outros elementos em torno da exibição dinâmica de preços (estruturas de preços em camadas, com base na quantidade disponível de ações) seriam afetados adversamente quando as ações diminuírem.
— Ben Lessani - Sonassi

Respostas:


4

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


Obrigado por boa resposta, apenas um pouco imho erro catalog_product_index_pricesó é utilizado na categoria de página / pesquisa, mas não em páginas de produtos
— Desde
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.