Magento 1 e Magento 2 têm os dois eventos:
sales_order_place_after
sales_order_save_after
.
Eu tenho alguma confusão sobre eles, quais são as diferenças detalhadas entre eles?
Qual situação usar qual?
fonte
Magento 1 e Magento 2 têm os dois eventos:
sales_order_place_after
sales_order_save_after
.Eu tenho alguma confusão sobre eles, quais são as diferenças detalhadas entre eles?
Qual situação usar qual?
sales_order_place_after
Mage_Sales_Model_Order::place()
no Magento 1 e \Magento\Sales\Model\Order::place()
no Magento 2sales_order_save_after
Este evento estendendo o modelo abstrato Mage_Core_Model_Abstract
Por exemplo. o Mage_Sales_Model_Order
prefixo do evento de classe é sales_order
, portanto, o nome real do evento após o carregamento será sales_order_load_after
.
1. sales_order_place_after:
Este evento é despachado do
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;
}
Este evento é despachado somente após clicar em fazer pedido no frontend.
2. sales_order_save_after:
Este evento é acionado no pedido de salvamento, no back-end ou no front-end. Sempre que alguma edição é feita em ordem e salva, esse evento é despachado. Este evento é despachado ao colocar ordem do front-end também.