¿Diferencia entre `sales_order_place_after` y` sales_order_save_after`?


12

Magento 1 y Magento 2 tienen los dos eventos:

  1. sales_order_place_after
  2. sales_order_save_after.

Tengo cierta confusión sobre ellos, ¿cuáles son las diferencias detalladas entre ellos?

¿Qué situación usar?

Respuestas:


21

sales_order_place_after

  1. Este evento se envía después de realizar el pago del pedido.
  2. Este evento funciona desde Mage_Sales_Model_Order::place()Magento 1 y \Magento\Sales\Model\Order::place()Magento 2

sales_order_save_after

  1. Este evento se llama cada vez que se guarda el pedido. Por ej. Estado del pedido modificado, facturado, enviado y nota de crédito.
  2. Este evento extiende el modelo abstracto. Mage_Core_Model_Abstract

    Por ej. el Mage_Sales_Model_Orderprefijo evento de clase es sales_order, por lo que el nombre del evento real de carga después será sales_order_load_after.


5

1. sales_order_place_after:

Este evento se envía desde el

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 se envía solo después de hacer clic en realizar pedido desde la interfaz.

2. sales_order_save_after:

Este evento se activa al guardar el orden, ya sea desde el backend o la interfaz. Cada vez que se realiza alguna edición en orden y se guarda, se envía este evento. Este evento se envía al realizar el pedido desde la interfaz también.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.