`sales_order_place_after`と` sales_order_save_after`の違いは?


12

Magento 1とMagento 2には両方とも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.