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:
เหตุการณ์นี้จะถูกเรียกใช้ในการบันทึกคำสั่งจากแบ็กเอนด์หรือส่วนหน้า ทุกครั้งที่มีการแก้ไขตามลำดับและบันทึกเหตุการณ์นี้จะถูกส่ง เหตุการณ์นี้ถูกส่งในขณะที่วางคำสั่งซื้อจากส่วนหน้าเช่นกัน