Wenn Sie in Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory () suchen, wird die folgende Zeile aufgerufen: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds);
Das reindexQuoteInventory()
wird bei folgenden Ereignissen aufgerufen:
- sales_model_service_quote_submit_success
- checkout_submit_all_after (via
Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter()
)
Dies ist als eines der Probleme bekannt, die zum Sperren von Problemen auf geschäftigen Websites mit einem hohen Einkaufsvolumen beitragen.
Meine Fragen sind:
- Warum werden die Preise für Produkte an jeder Kasse neu indiziert?
- Welche Auswirkungen hat das Entfernen?
- Wenn es für Katalogregeln verwendet wird, wären es sicherlich nur sehr spezifische Regeln?
Antworten:
Die Entscheidung, ob ein Produkt basierend auf dieser Einstellung angezeigt oder ausgeblendet werden soll, wird vom Produktpreisindex implementiert.
Sie können dies überprüfen, indem Sie die Einstellung auf "Ja" ändern und dann eine Kategorie mit einem nicht vorrätigen Produkt anzeigen. Sie sehen, dass das Produkt vorhanden ist. Wenn Sie dann die Einstellung auf "Nein" ändern und die Kategorie erneut anzeigen, sehen Sie, dass das nicht vorrätige Produkt noch vorhanden ist. Sie werden auch feststellen, dass diese beiden Indizes jetzt aktualisiert werden müssen:
Produktattribute (catalog_product_attribute) Produktpreise (catalog_product_price)
Wenn Sie dann nur den Index "Produktattribute" aktualisieren, ist das Produkt weiterhin sichtbar. Wenn Sie dann den Index "Produktpreise" aktualisieren, verschwindet dieser. Daher ist der Index "Produktpreise" für die Implementierung dieser Einstellung verantwortlich.
catalog_product_index_price ist die Haupttabelle , da sie die einzige ist, die beim Laden einer Kategorie oder Produktseite in Abfragen enthalten ist
quelle
catalog_product_index_price
wird nur in Kategorie / Suchseite verwendet, aber nicht in Produktseiten