Почему magento переиндексирует цены при каждой проверке?


8

Если вы посмотрите в Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory (), он вызовет следующую строку: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds);

reindexQuoteInventory()Вызывается следующими событиями:

  1. sales_model_service_quote_submit_success
  2. checkout_submit_all_after (через Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter())

Это известно как одна из проблем, способствующих блокировке проблем на загруженных сайтах с большим объемом покупок.

Мои вопросы:

  1. Почему цены на продукты реиндексируются при каждой проверке?
  2. Как это влияет на его удаление?
  3. Если он используется для правил каталога, наверняка, это будут только очень конкретные правила?

Очевидным может быть промо-правила (3.), но я бы (без проверки ядра) подозревал, что другие элементы, связанные с динамическим отображением цены (многоуровневая структура ценообразования, основанная на количестве имеющихся акций), будут отрицательно сказываться при снижении запасов.
Бен Лессани - Сонасси

Ответы:


4

Решение о том, показывать или скрывать продукт на основе этого параметра, принимается индексом цены продукта.

Вы можете проверить это, изменив настройку на «Да», а затем просмотрев категорию с отсутствующим продуктом; Вы видите, что продукт присутствует. Если вы затем измените настройку на «Нет» и снова просмотрите категорию, вы увидите, что товара нет в наличии. Вы также заметите, что эти два индекса теперь нуждаются в обновлении:

Атрибуты продукта (catalog_product_attribute) Цены продуктов (catalog_product_price)

Если вы затем обновите только индекс «Атрибуты продукта», продукт все еще будет виден, если вы затем обновите индекс «Цены на товары», он исчезнет, ​​поэтому за реализацию этого параметра отвечает индекс «Цены на товары».

catalog_product_index_price - это главная таблица , так как она единственная, которая включается в любые запросы при загрузке категории или страницы продукта.


Спасибо за хороший ответ, только небольшая ошибка imho catalog_product_index_priceиспользуется только на странице категории / поиска, но не на страницах продукта
Fra
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.