微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-从Mage_Sales_Model_Order_Invoice对象获取发票ID

我正在为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');

谢谢!

解决方法:

我知道这是前一阵子,但是如果有人仍然需要帮助,希望以下内容会有用.

一旦进入您的观察者方法,请使用以下代码获取发票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 举报,一经查实,本站将立刻删除。

相关推荐