2013-04-03 5 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

Довольно прямое сообщение об ошибке там

Звонок на неопределенный встречный корыто Mage_Sales_Model_Resource_Order_Invoice_Collection :: getSubotal()

Вы звоните getSubotal на объект коллекции. Объект коллекции не имеет большого метода, и в коллекциях нет магических геттеров или сеттеров.

Вы хотите поп первый пункт из этой коллекции

$order = $orders->getFirstItem(); 

, а затем захватить данные из этого первого пункта

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

Большое спасибо, это было получение счета-фактуры из коллекции, Я был в тупике. Как ни странно, событие, похоже, срабатывает дважды, так как я получил две записи в журнале. –

+0

@MatthewDolman Коллекции также 'foreach'able. Просто выполните ' getData()};' в будущем. –

Смежные вопросы