Differenza tra `sales_order_place_after` e` sales_order_save_after`?


12

Magento 1 e Magento 2 hanno entrambi i due eventi:

  1. sales_order_place_after
  2. sales_order_save_after.

Ho un po 'di confusione su di loro, quali sono le differenze dettagliate tra loro?

Quale situazione usare quale?

Risposte:


21

sales_order_place_after

  1. Questo evento viene inviato dopo aver effettuato il pagamento dell'ordine.
  2. Questo evento funziona da Mage_Sales_Model_Order::place()Magento 1 e \Magento\Sales\Model\Order::place()Magento 2

sales_order_save_after

  1. Questo evento viene chiamato ogni volta che l'ordine viene salvato. Per es. Stato dell'ordine modificato, fatturato, spedito e nota di credito.
  2. Questo evento estende il modello astratto Mage_Core_Model_Abstract

    Per es. il Mage_Sales_Model_Orderprefisso dell'evento di classe è sales_order, quindi sarà l'effettivo dopo il caricamento del nome dell'evento sales_order_load_after.


5

1. sales_order_place_after:

Questo evento viene inviato dal

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;
}

Questo evento viene inviato solo dopo aver fatto clic sull'ordine di posizionamento dal frontend.

2. sales_order_save_after:

Questo evento viene attivato al momento del salvataggio dell'ordine, sia dal backend che dal frontend. Ogni volta che alcune modifiche vengono eseguite in ordine e salvate, questo evento viene inviato. Questo evento viene inviato anche quando si effettua l'ordine dal frontend.

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.