Perché magento reindicizza i prezzi su ogni checkout?


8

Se guardi all'interno di Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory () chiama la seguente riga: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds);

La reindexQuoteInventory()si chiama sui seguenti eventi:

  1. sales_model_service_quote_submit_success
  2. checkout_submit_all_after (via Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter())

Questo è noto come uno dei problemi che contribuiscono a bloccare i problemi sui siti occupati con un volume elevato di acquisti.

Le mie domande sono:

  1. Perché i prezzi dei prodotti vengono reindicizzati su ogni checkout?
  2. Che effetto ha la sua rimozione?
  3. Se è usato per le regole del catalogo sicuramente sarebbe solo regole molto specifiche?

Quello ovvio sarebbe quello delle regole promozionali (3.), ma sospetterei (senza controllare il nucleo) che altri elementi intorno alla visualizzazione dinamica dei prezzi (strutture di prezzi a più livelli, basate sulla quantità disponibile di stock) sarebbero influenzati negativamente quando i titoli diminuiscono.
Ben Lessani - Sonassi,

Risposte:


4

La decisione se mostrare o nascondere un prodotto in base a questa impostazione è implementata dall'indice dei prezzi dei prodotti.

È possibile verificarlo modificando l'impostazione su "Sì" e quindi visualizzando una categoria con un prodotto esaurito; vedi che il prodotto è presente. Se poi modifichi l'impostazione su "No" e visualizzi nuovamente la categoria, vedrai che il prodotto esaurito è ancora presente. Noterai anche che questi due indici devono ora essere aggiornati:

Attributi del prodotto (catalog_product_attribute) Prezzi del prodotto (catalog_product_price)

Se quindi aggiorni solo l'indice "Attributi del prodotto", il prodotto è ancora visibile, se poi aggiorni l'indice "Prezzi del prodotto", scompare, quindi l'indice "Prezzi del prodotto" è responsabile dell'implementazione di questa impostazione.

catalog_product_index_price è la tabella principale , in quanto è l'unica inclusa in tutte le query quando si carica una categoria o una pagina di prodotto


Grazie per la buona risposta, solo un piccolo errore imho catalog_product_index_priceviene utilizzato solo nella categoria / pagina di ricerca ma non nelle pagine dei prodotti
Fra
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.