在我的Magento 1.9安装中,我有一个观察者观察事件sales_order_invoice_pay
。当此事件触发时,我试图将发票的ID存储在我创建的自定义模型中。
以下是我从活动中获取发票的方式:$invoice = $observer->getEvent()->getInvoice();
但是,当我尝试使用:getId()
,getData('entity_id')
,getIncrementId()
或getOrigData('entity_id')
时,我会收到null
值。
我甚至无法从发票中获取增量ID,我已经使用了getIncrementId()
,getData('increment_id')
。
我在这里完全失去了。
对于我来说,保存此特定发票ID非常重要,因为我稍后会使用它来加载该发票并为发票项目创建货件。
我有没有得到身份证明?
答案 0 :(得分:1)
由于调度\Mage_Sales_Model_Order_Invoice::pay
事件的sales_order_invoice_pay
方法也会在\Mage_Sales_Model_Order_Invoice::capture
中调用,因此在您观察时可能不会保留发票。尝试使用在保存发票后发送的事件sales_order_invoice_save_after
。应保存增量并设置id。