Come impostare gran personalizzato totale prima di processo di checkout in Magento?
Domanda
Ho aggiunto un osservatore Evento "sales_order_place_before" e vogliono personalizzare totale prima di elaborare il pagamento. ma ho provato un sacco di cambiare il prezzo di quotazione, ma non funziona.
Qualcuno ha qualche idea ??
Soluzione
È necessario aggiungere nuovo collettore dopo un totale generale (Mage_Sales_Model_Quote_Address_Total_Grand). Ha modificare somma che è stato impostato dal collettore del totale generale.
I ha parlato di un caso del genere alla conferenza MageConf in Ucraina settimana fa. Video e diapositive non sono ancora disponibili, ma è possibile scaricare demo-modulo che è stato descritto alla conferenza. V'è un esempio di collettore totale che calcola prezzo incarto.
È possibile modificare la mia demo totale collettore così sarà inserito nel processo di raccolta DOPO collettore Totale generale (vedi config.xml nel modulo etc directory - Rimuovere nodo <before>subtotal</before>
quindi utilizzare <after>grand_total</after>
invece) e modificare Collect () metodo giusto per impostare i totali complessivi per i valori predefiniti:
$address->setGrandTotal($someValue);
$address->setBaseGrandTotal($someBaseValue);
Oppure si può lasciare questo modulo così com'è, ma i totali set negativi in ??esso. Così collettore Totale generale li sottrarrà e abbassare gran valore totale come si desidera. Anche in tal caso cliente sarà in grado di vedere i tuoi valori negativi (darli in fetch () metodo) e capire il motivo per cui i totali sono stati abbassati.
Buon divertimento:)
Altri suggerimenti
non si può si deve fare un nuovo oggetto totale o aggiungere le somme come prodotti virtuali
si prega di osservare
Mage_Sales_Model_Quote_Address_Total_Abstract
Mage_Sales_Model_Order_Invoice_Total_Abstract
Mage_Sales_Model_Order_Creditmemo_Total_Abstract
per vedere ciò che è necessario per implementare un oggetto totale. Potrebbe anche essere necessario per estendere gli oggetti tasso