Magento在下订单后访问发票属性

时间:2013-04-03 03:30:41

标签: magento

我正在使用事件sales_order_save_after尝试访问发票子总数并对其执行操作。

在我的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 个答案:

答案 0 :(得分:1)

非常直接的错误消息

  

调用未定义的方法Mage_Sales_Model_Resource_Order_Invoice_Collection :: getSubotal()

您在集合对象上调用getSubotal。集合对象没有太多方法,集合没有魔术getter或setter。

您需要弹出该集合中的第一个项目

$order = $orders->getFirstItem();

然后从第一个项目中获取数据

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