¿Por qué magento vuelve a indexar los precios en cada pago?

8

Si mira dentro de Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory () llama a la siguiente línea: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds);

El reindexQuoteInventory()se llama en los siguientes eventos:

  1. sales_model_service_quote_submit_success
  2. checkout_submit_all_after (vía Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter())

Esto se conoce como uno de los problemas para contribuir a bloquear problemas en sitios ocupados con un alto volumen de compras.

Mis preguntas son:

  1. ¿Por qué los precios de los productos se vuelven a indexar en cada pago?
  2. ¿Qué efecto tiene al eliminarlo?
  3. Si se usa para las reglas del catálogo, seguramente solo serían reglas muy específicas.
john-jh
fuente
La obvia serían las reglas de promoción (3.), pero sospecharía (sin verificar el núcleo) que otros elementos en torno a la visualización dinámica de precios (estructuras de precios escalonadas, basadas en la cantidad de existencias disponibles) se verían afectados negativamente cuando disminuyan las existencias.
Ben Lessani - Sonassi

Respuestas:

4

La decisión de mostrar u ocultar un producto en función de esta configuración se implementa mediante el Índice de precios del producto.

Puede verificar esto cambiando la configuración a "Sí" y luego viendo una categoría con un producto agotado; ves que el producto está presente. Si luego cambia la configuración a "No" y vuelve a ver la categoría, verá que el producto agotado todavía está presente. También notará que estos dos índices ahora necesitan actualizarse:

Atributos del producto (catalog_product_attribute) Precios del producto (catalog_product_price)

Si luego actualiza solo el índice "Atributos del producto", el producto aún estará visible; si actualiza el índice "Precios del producto", desaparecerá, por lo que el índice "Precios del producto" es responsable de la implementación de esta configuración.

catalog_product_index_price es la tabla principal , ya que es la única que se incluye en las consultas al cargar una página de categoría o producto

Jignesh
fuente
Gracias por una buena respuesta, solo un pequeño error en mi humilde opinión catalog_product_index_pricesolo se usa en la página de categoría / búsqueda, pero no en las páginas de productos
Fra