Magento 1 и Magento 2 имеют два события:
sales_order_place_after
sales_order_save_after
,
У меня есть некоторая путаница по поводу них, в чем детальные различия между ними?
Какую ситуацию использовать?
источник
Magento 1 и Magento 2 имеют два события:
sales_order_place_after
sales_order_save_after
,У меня есть некоторая путаница по поводу них, в чем детальные различия между ними?
Какую ситуацию использовать?
sales_order_place_after
Mage_Sales_Model_Order::place()
Magento 1 и \Magento\Sales\Model\Order::place()
Magento 2sales_order_save_after
Это событие расширяет абстрактную модель Mage_Core_Model_Abstract
Например, Mage_Sales_Model_Order
Приставка события класса sales_order
, поэтому имя фактического после загрузки мероприятия будет sales_order_load_after
.
1. sales_order_place_after:
Это событие отправляется из
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;
}
Это событие отправляется только после нажатия на кнопку «разместить заказ» из внешнего интерфейса.
2. sales_order_save_after:
Это событие вызывается при сохранении заказа, либо из внутреннего, либо из внешнего интерфейса. Каждый раз, когда редактирование производится в порядке и сохраняется, это событие отправляется. Это событие отправляется также при оформлении заказа из внешнего интерфейса.