`sales_order_place_after`와`sales_order_save_after`의 차이점은 무엇입니까?


12

마 젠토 1과 마 젠토 2 모두 두 가지 이벤트가 있습니다.

  1. sales_order_place_after
  2. sales_order_save_after.

그들에 대해 약간의 혼란이 있습니다. 그들 사이 의 자세한 차이점 은 무엇입니까?

어떤 상황을 사용해야합니까?

답변:


21

sales_order_place_after

  1. 이 이벤트는 주문 지불 후 발송됩니다.
  2. 이 이벤트 Mage_Sales_Model_Order::place()는 Magento 1 및 \Magento\Sales\Model\Order::place()Magento 2에서

sales_order_save_after

  1. 이 이벤트는 주문이 저장 될 때마다 호출됩니다. 예를 들어. 주문 상태가 변경, 송장, 배송 및 대변 메모로 변경되었습니다.
  2. 이 이벤트는 추상 모델을 확장 Mage_Core_Model_Abstract

    예를 들어. Mage_Sales_Model_Order클래스 이벤트 접두어는 sales_order실제 후에로드 이벤트의 이름이 될 것입니다, 그래서 sales_order_load_after.


5

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 :

이 이벤트는 백엔드 또는 프론트 엔드에서 주문 저장시 트리거됩니다 . 순서대로 편집하고 저장할 때마다이 이벤트가 전달됩니다. 이 이벤트는 프런트 엔드에서 주문을하면서 전달됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.