在Magento 2中有很多可用的事件,一些付款,发票或订单取消操作的事件如下,
1. order_cancel_after
取消订单后将使用此事件。如果您想在取消订单后做某事,可以使用此事件。
代码在 vendor/magento/module-sales/Model/Order.php at cancel() function.
$this->_eventManager->dispatch('order_cancel_after', ['order' => $this]);
2. sales_order_invoice_cancel
允许您在取消订单时取消订单发票
代码在vendor/magento/module-sales/Model/Order/Invoice.php at cancel() function.
$this->_eventManager->dispatch('sales_order_invoice_cancel', [$this->_eventObject => $this]);
3. sales_order_payment_cancel_invoice
允许您在取消订单时取消订单发票
代码在vendor/magento/module-sales/Model/Order/Invoice.php at cancel() function.
$this->_eventManager->dispatch('sales_order_invoice_cancel', [$this->_eventObject => $this]);
4. sales_order_payment_cancel_creditmemo
代码在vendor/magento/module-sales/Model/Order/Payment.php using cancelCreditmemo() function
$this->_eventManager->dispatch(
'sales_order_payment_cancel_creditmemo',
['payment' => $this, 'creditmemo' => $creditmemo]
);
5.sales_order_payment_cancel_invoice
从订单中取消指定的发票,并从订单发票中更新总计
代码在vendor/magento/module-sales/Model/Order/Payment.php
$this->_eventManager->dispatch(
'sales_order_payment_cancel_invoice',
['payment' => $this, 'invoice' => $invoice]
);
此事件包含付款和发票对象。
6. sales_order_creditmemo_cancel
当你想从一个特定的顺序或特定的物品退还订单,
你最适合的事件是,sales_order_creditmemo_cancel
$this->eventManager->dispatch('sales_order_creditmemo_cancel', ['creditmemo' => $creditmemo]);