2013-04-03 50 views
0

我正在使用事件sales_order_save_after來嘗試訪問發票子總數並對其執行任何操作。Magento在訂單放置後訪問發票屬性

在我observer.php我:

public function peterParker($observer) 
    { 
    $order = $observer->getEvent()->getOrder(); 

    $orders = Mage::getModel('sales/order_invoice')->getCollection() 
        ->addAttributeToFilter('order_id', array('eq'=>$order->getId())); 
    $orders->getSelect()->limit(1); 

    $subTotal = $orders->getSubotal(); 

    Mage::log($subTotal); 

} 

但是當我訂購我在我的PHP日誌中出現此錯誤:

調用未定義的方法Mage_Sales_Model_Resource_Order_Invoice_Collection :: getSubotal()

回答

1

那裏很直接的錯誤消息

調用undefined met HOD Mage_Sales_Model_Resource_Order_Invoice_Collection :: getSubotal()

你調用集合對象上getSubotal。集合對象沒有太多方法,集合也沒有神奇的getter或setter。

你要彈出的第一個項目關閉該集合

$order = $orders->getFirstItem(); 

,然後從第一個項目獲取數據

Mage::Log($order->getData()); 
Mage::Log($order->getSubTotal()); 
+0

十分感謝,這是越來越從收集發票是讓我難倒了。奇怪的是,事件似乎是兩次射擊,因爲我在日誌中有兩個條目。 –

+0

@MthetheDolman集合也是'foreach'able。只需做'<?php foreach($ order as $ order){var_dump($ order-> getData()};'將來。 –

相關問題