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つとして知られています。

私の質問は:

  1. 製品の価格が各チェックアウト時に再インデックス化されるのはなぜですか?
  2. 削除するとどのような影響がありますか?
  3. それがカタログルールに確実に使用される場合、それは非常に特定のルールだけになるでしょうか?

明らかなのはプロモーションルール(3.)ですが、(コアをチェックせずに)動的価格表示(階層化された価格設定構造、利用可能な在庫数量に基づく)の他の要素が在庫の減少時に悪影響を受けるのではないかと思います。
ベンレッサーニ-ソナッシ2014年

回答:


4

この設定に基づいて製品を表示するか非表示にするかは、製品価格指数によって決定されます。

これを確認するには、設定を[はい]に変更し、在庫切れの商品のカテゴリを表示します。製品が存在することがわかります。その後、設定を「いいえ」に変更してカテゴリを再度表示すると、在庫切れの商品がまだ残っていることがわかります。また、これらの2つのインデックスを更新する必要があることにも注意してください。

製品属性(catalog_product_attribute)製品価格(catalog_product_price)

その後、「商品属性」インデックスのみを更新すると、商品は引き続き表示されます。「商品価格」インデックスを更新すると、商品は非表示になるため、「商品価格」インデックスがこの設定の実装を担当します。

category_product_index_priceは、カテゴリーまたは製品ページをロードするときにクエリに含まれる唯一のテーブルであるため、メインテーブルです


良い答えをありがとう、ほんの少しの間違いimho catalog_product_index_priceはカテゴリ/検索ページでのみ使用され、製品ページでは使用されません
Fra
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.