我正在为sales_order_invoice_register事件编写观察者,我想获取刚刚保存的发票编号.我找不到用于检索该ID的函数,这些已注释的调用均无效.任何想法?
这里的代码
public function foobar($observer){
$order = $observer->getEvent()->getorder();
$id_order = $order->getRealOrderId();
$id_invoice = $observer->getEvent()->getInvoice(); // the Mage_Sales_Model_Order_Invoice object
//$id_invoice = $id_invoice->getId();
//$id_invoice = $id_invoice->getIncrementId();
//$id_invoice = $id_invoice->getInvoiceId();
//$id_invoice = $id_invoice->getRealIncrementId();
//$id_invoice = $id_invoice->getData('invoice_id');
谢谢!
解决方法:
我知道这是前一阵子,但是如果有人仍然需要帮助,希望以下内容会有用.
$invoice = $observer->getEvent()->getInvoice();
$invoice_id = $invoice->getData('entity_id'); // or you Could also use ->getEntityId();
您可以在Mage数据库中检出sales_flat_invoice表(ID是名称为’entity_id’的第一个字段).拥有$invoice对象(类似于从Varien_Object类继承的任何其他对象)之后,就可以使用Magento的getData()方法访问属性值.
另外,可能需要查看其他事件…根据Mage文档,sales_order_invoice_register事件返回“未知”.尝试使用sales_order_invoice_pay事件获取上述代码.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。