Если вы посмотрите в Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory (), он вызовет следующую строку: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds);
reindexQuoteInventory()
Вызывается следующими событиями:
- sales_model_service_quote_submit_success
- checkout_submit_all_after (через
Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter()
)
Это известно как одна из проблем, способствующих блокировке проблем на загруженных сайтах с большим объемом покупок.
Мои вопросы:
- Почему цены на продукты реиндексируются при каждой проверке?
- Как это влияет на его удаление?
- Если он используется для правил каталога, наверняка, это будут только очень конкретные правила?
Ответы:
Решение о том, показывать или скрывать продукт на основе этого параметра, принимается индексом цены продукта.
Вы можете проверить это, изменив настройку на «Да», а затем просмотрев категорию с отсутствующим продуктом; Вы видите, что продукт присутствует. Если вы затем измените настройку на «Нет» и снова просмотрите категорию, вы увидите, что товара нет в наличии. Вы также заметите, что эти два индекса теперь нуждаются в обновлении:
Атрибуты продукта (catalog_product_attribute) Цены продуктов (catalog_product_price)
Если вы затем обновите только индекс «Атрибуты продукта», продукт все еще будет виден, если вы затем обновите индекс «Цены на товары», он исчезнет, поэтому за реализацию этого параметра отвечает индекс «Цены на товары».
catalog_product_index_price - это главная таблица , так как она единственная, которая включается в любые запросы при загрузке категории или страницы продукта.
источник
catalog_product_index_price
используется только на странице категории / поиска, но не на страницах продукта