Magento 1 und Magento 2 haben beide zwei Ereignisse:
sales_order_place_after
sales_order_save_after
.
Ich habe einige Verwirrung darüber, was die detaillierten Unterschiede sind zwischen ihnen?
Welche Situation soll welche nutzen?
quelle
Magento 1 und Magento 2 haben beide zwei Ereignisse:
sales_order_place_after
sales_order_save_after
.Ich habe einige Verwirrung darüber, was die detaillierten Unterschiede sind zwischen ihnen?
Welche Situation soll welche nutzen?
sales_order_place_after
Mage_Sales_Model_Order::place()
in Magento 1 und \Magento\Sales\Model\Order::place()
in Magento 2sales_order_save_after
Dieses Ereignis erweitert das abstrakte Modell Mage_Core_Model_Abstract
Zum Beispiel. Das Mage_Sales_Model_Order
Klassenereignispräfix ist sales_order
, also der tatsächliche Name des Ereignisses nach dem Laden sales_order_load_after
.
1. sales_order_place_after:
Dieses Ereignis wird vom versandt
class Mage_Sales_Model_Order extends Mage_Sales_Model_Abstract
{
...
public function place()
{
Mage::dispatchEvent('sales_order_place_before', array('order'=>$this));
$this->_placePayment();
Mage::dispatchEvent('sales_order_place_after', array('order'=>$this));
return $this;
}
Dieses Event wird erst nach Klick auf Bestellung vom Frontend versendet.
2. sales_order_save_after:
Dieses Ereignis wird beim Speichern der Bestellung entweder vom Backend oder vom Frontend ausgelöst . Jedes Mal, wenn Änderungen in der Reihenfolge vorgenommen und gespeichert werden, wird dieses Ereignis ausgelöst. Dieses Ereignis wird auch bei der Bestellung vom Frontend aus ausgelöst.