Warum indiziert Magento die Preise an jeder Kasse neu?

8

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:

  1. sales_model_service_quote_submit_success
  2. 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:

  1. Warum werden die Preise für Produkte an jeder Kasse neu indiziert?
  2. Welche Auswirkungen hat das Entfernen?
  3. Wenn es für Katalogregeln verwendet wird, wären es sicherlich nur sehr spezifische Regeln?
John-jh
quelle
Die naheliegende wäre die Promo-Regel (3.), aber ich würde (ohne den Kern zu überprüfen) vermuten, dass andere Elemente der dynamischen Preisanzeige (gestaffelte Preisstrukturen, basierend auf der verfügbaren Lagermenge) nachteilig beeinflusst würden, wenn der Lagerbestand sinkt.
Ben Lessani - Sonassi

Antworten:

4

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

Jignesh
quelle
Vielen Dank für die gute Antwort, nur ein kleiner Fehler imho catalog_product_index_pricewird nur in Kategorie / Suchseite verwendet, aber nicht in Produktseiten
Fra