Magento 1 i Magento 2 mają dwa zdarzenia:
sales_order_place_after
sales_order_save_after
.
Mam trochę zamieszania na ich temat, jakie są szczegółowe różnice między nimi?
Której sytuacji użyć której?
źródło
Magento 1 i Magento 2 mają dwa zdarzenia:
sales_order_place_after
sales_order_save_after
.Mam trochę zamieszania na ich temat, jakie są szczegółowe różnice między nimi?
Której sytuacji użyć której?
Sales_order_place_after
Mage_Sales_Model_Order::place()
Magento 1 i \Magento\Sales\Model\Order::place()
Magento 2sales_order_save_after
To wydarzenie rozszerzające model abstrakcyjny Mage_Core_Model_Abstract
Na przykład Mage_Sales_Model_Order
prefiks wydarzenie klasa sales_order
, więc rzeczywista nazwa po załadowaniu imprezy będzie sales_order_load_after
.
1. Sales_order_place_after:
To wydarzenie jest wysyłane z
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;
}
To wydarzenie jest wysyłane dopiero po kliknięciu opcji Złóż zamówienie z interfejsu użytkownika.
2. sales_order_save_after:
To zdarzenie jest uruchamiane przy zapisywaniu zamówienia, albo z backendu, albo z frontendu. Za każdym razem, gdy jakaś edycja jest wprowadzana w kolejności i zapisywana, to wydarzenie jest wysyłane. To wydarzenie jest również wysyłane podczas składania zamówienia z interfejsu użytkownika.