2016-08-09 61 views
0

Ich muss zusätzliche Daten zu PHP $_SESSION speichern, aber ich muss dies tun, während Magento Bestellung in der Datenbank gespeichert wird. Ich spare zusätzliche Zahlungsmethodeninformationen, die nicht in der Datenbank gespeichert werden müssen, und ist nicht explizit verbunden zu bestellen. Könnten Sie mir bitte ein wenig Hintergrundwissen für diesen Prozess geben?Magento - wann werden Bestelldaten in DB gespeichert

  • When wird gespeichert?
  • In what class ist es fertig?

Antwort

1

Haben Sie versucht, Magento-Ereignisse zu verwenden? Es wird sogar empfohlen, Ereignisse anstelle von (was ich denke) Kern-Magento-Dateien zu bearbeiten. In diesem Fall können Sie je nach Bedarf zwei Ereignisse verwenden.

sales_order_save_after 

oder

sales_order_save_before 

Sie sind im Grunde, was sie sagen, mit ersten können Sie ändern, bevor es auf die Datenbank und zweiten Speichern werden Sie den Auftrag lassen ändern, die bereits sein Gerettet. Über Magento Beobachter (wenn Sie nicht mit ihnen vertraut sind), antworten Sie hier: https://magento.stackexchange.com/questions/41277/how-to-create-an-new-observer-on-the-event-catalog-product-save-before sollte genug für Sie sein. Denken Sie natürlich daran, das gewünschte Ereignis zu beobachten. Dann in Ihrem Beobachter Methode werden Sie nur so etwas verwenden:.

$order = $observer->getEvent()->getOrder(); 

und tun, was Sie wollen mit dieser Bestellung (mit Ereignis _after erinnern -> save(), um, wenn Sie es ändern

+0

Ich war wahrscheinlich nicht genau. Die Sache ist, dass ich wissen muss ** von welcher Datei ** (Klasse) war Funktion order-> create() aufgerufen. –

+0

Check Klasse: Mage_Checkout_Model_Type_Onepage und ihre Methode saveOrder() oder überprüfen Mage_Sales_Model_Order mit Methode place(). – Lacray