2013-05-06 79 views
0

我试图建立一个获取发票号码的Magento模块。主要的问题是我得到一个致命错误:在第19行($ invoice creation line)的非对象...上调用成员函数getIncrementId()。我的功能是:Magento获得发票号码

$invoice = $observer->getEvent()->getInvoice()->getIncrementId(); 
    $last4 = substr($invoice, -4); 

    $shipment = $observer->getEvent()->getShipment(); 
    $track = Mage::getModel('sales/order_shipment_track') 
      ->setNumber($last4) //tracking number/awb number 
      ->setCarrierCode('custom') //carrier code 
      ->setTitle('Custom'); //carrier title 
    $shipment->addTrack($track); 
+0

您需要说明您正在观察的事件。 – butterbrot 2013-05-06 08:47:53

+0

sales_order_shipment_save_before – HWR 2013-05-06 08:51:15

+0

它只有发货,你可以尝试使用'$ shipment-> getOrder() - > getInvoiceCollection() - > getLastItem();'或者首先发票你喜欢什么。 – butterbrot 2013-05-06 09:01:57

回答

0

尝试用这种

$invoice = $observer->getEvent()->getOrder()->getIncrementId(); 

更换的第一行代码使用getInvoice()方法来获取订单,可以返回null,这将给你你有错误第19行。