Come funzionano i prezzi dinamici in Magento?


8

Mi chiedo come funziona il prezzo dinamico in Magento?

Ad esempio, ho creato un prodotto nel back-end e vi ho aggiunto alcune opzioni personalizzate. Pertanto, se l'utente sceglie l'opzione, il prezzo cambia automaticamente nella pagina di visualizzazione del prodotto senza ricaricare la pagina.

Qualcuno può spiegare come Magento esegue questa azione?

E possiamo aggiungere prezzi dinamici personalizzati? Voglio che l'utente faccia clic sul collegamento (ho aggiunto alla pagina di visualizzazione del prodotto), quindi la modifica del prezzo.

Risposte:


10

Il calcolo dei prezzi è un argomento molto complesso in Magento. Ecco una visione a volo d'uccello su come questo viene fatto per un prodotto semplice:

  1. Magento ottiene il prezzo "base". Questo è il prezzo che hai definito nella colonna dei prezzi
  2. Viene applicato il prezzo "gruppo". Questa è la parte in cui viene preso in considerazione il prezzo del livello in base alla quantità ordinata, al sito Web e al gruppo di clienti.
  3. Il prezzo speciale viene applicato se viene definito un prezzo speciale per la data corrente.
  4. L' evento " catalog_product_get_final_price " viene generato. Qui è dove dovrebbe entrare il tuo modulo personalizzato che armeggia con il prezzo. Come esempio funzionante, il modulo CatalogRule rileva questo evento e modifica il prezzo in base alle regole del catalogo definite
  5. I prezzi delle opzioni selezionate sono presi in considerazione

Dal momento che questo processo richiede molto tempo, Magento crea un indice dei prezzi e passerà attraverso quanto sopra solo durante la reindicizzazione. L'indice dei prezzi fa uso di un gruppo di tabelle che contiene informazioni sul prezzo "finale" (calcolato utilizzando i passaggi precedenti) insieme ad elementi come i prezzi minimo / massimo per configurabili e pacchetti. Questa tabella contiene una voce per ogni combinazione di sito Web / prodotto / gruppo di clienti, quindi il sistema dovrà solo selezionare la riga corretta in base ai dati del cliente, facendo funzionare l'intero processo in tempo decente.

Per quanto riguarda la parte del frontend, il modo in cui il prezzo viene aumentato e diminuito in modo dinamico, tutto ciò avviene in javascript che inizia con un array json con tutti i "livelli di prezzo" e diminuirà / aumenterà il prezzo in base alle selezioni.


Grazie Paul per la tua risposta. I prezzi dinamici di Magento sono un argomento complicato :)
Wakanina

utilizzando l'evento "catalog_product_get_final_price" e setFinalPrice()modificare il prezzo nella pagina di visualizzazione del prodotto e ulteriori passaggi. Ma come posso impostare il prezzo dinamico direttamente dalla pagina dell'elenco prodotti?
Shathish il

1

Questo viene fatto con Javascript e Ajax, se ho ragione si trova nel file js / varien / configurable.js. Se si desidera modificare il comportamento di questo, è possibile utilizzare la prototipazione per estendere la funzione specifica. Non sono bravo con javascript ma penso che questo articolo StackOverflow spieghi le basi dell'estensione /programming/2686258/javascript-inheritance-extend-function


Grazie Sander, questo rende poco chiaro :). Qualcuno può spiegare maggiori dettagli? Questo sarà prezioso per tutti.
Wakanina,
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.