我正在使用事件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()
答案 0 :(得分:1)
非常直接的错误消息
调用未定义的方法Mage_Sales_Model_Resource_Order_Invoice_Collection :: getSubotal()
您在集合对象上调用getSubotal
。集合对象没有太多方法,集合没有魔术getter或setter。
您需要弹出该集合中的第一个项目
$order = $orders->getFirstItem();
然后从第一个项目中获取数据
Mage::Log($order->getData());
Mage::Log($order->getSubTotal());