0

このイベント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() の呼び出し

4

1 に答える 1

1

かなり簡単なエラーメッセージがあります

未定義のメソッド Mage_Sales_Model_Resource_Order_Invoice_Collection::getSubotal() の呼び出し

getSubotalコレクション オブジェクトを呼び出しています。コレクション オブジェクトにはあまりメソッドがなく、コレクションには魔法のゲッターやセッターがありません。

そのコレクションから最初のアイテムをポップしたいでしょう

$order = $orders->getFirstItem();

次に、その最初のアイテムからデータを取得します

Mage::Log($order->getData());
Mage::Log($order->getSubTotal());
于 2013-04-03T03:40:18.267 に答える