Unterschied zwischen "sales_order_place_after" und "sales_order_save_after"?

12

Magento 1 und Magento 2 haben beide zwei Ereignisse:

  1. sales_order_place_after
  2. sales_order_save_after.

Ich habe einige Verwirrung darüber, was die detaillierten Unterschiede sind zwischen ihnen?

Welche Situation soll welche nutzen?

Key Shang
quelle

Antworten:

21

sales_order_place_after

  1. Diese Veranstaltung wird nach Zahlungseingang der Bestellung versandt.
  2. Dieses Ereignis funktioniert Mage_Sales_Model_Order::place()in Magento 1 und \Magento\Sales\Model\Order::place()in Magento 2

sales_order_save_after

  1. Dieses Ereignis wird jedes Mal aufgerufen, wenn die Bestellung gespeichert wird. Zum Beispiel. Auftragsstatus geändert, in Rechnung gestellt, versandt und Gutschrift.
  2. Dieses Ereignis erweitert das abstrakte Modell Mage_Core_Model_Abstract

    Zum Beispiel. Das Mage_Sales_Model_OrderKlassenereignispräfix ist sales_order, also der tatsächliche Name des Ereignisses nach dem Laden sales_order_load_after.

Abdul
quelle
5

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.

Purushotam Sangroula
quelle