2011-11-22 64 views
2

我試圖編寫一個Magento(CE 1.4)擴展程序來導出訂單數據,一旦支付了訂單。我建立了一個觀察器,它掛接到sales_order_invoice_save_after事件,並且這個工作正常 - 當生成發票時,我的函數被執行。但我遇到了麻煩訂單的相關信息,如送貨地址,賬單地址,項目有序,訂單總額等Magento - 從訂單或發票獲取數據

這是我的嘗試:

class Lightbulb_Blastramp_Model_Observer { 
    public function sendOrderToBlastramp(Varien_Event_Observer $observer) { 
     $invoice = $observer->getEvent()->getInvoice(); 
     $order = $invoice->getOrder(); 

     $shipping_address = $order->getShippingAddress(); 
     $billing_address = $order->getBillingAddress(); 
     $items = $invoice->getAllItems(); 
     $total = $invoice->getGrandTotal(); 

     return $this; 
    } 
} 

我試圖做一個的print_r所有這些變量,並最終獲得大量的數據。有人能指出我獲得訂單送貨地址的正確方向嗎?

謝謝!

回答

8

許多Magento的對象基於Varien_Object,其中有一個叫getData()得到公正的對象通常是有趣的數據(不含噸等,但大多是無用的數據)的方法。

與您的代碼,你可以要麼去爲所有的數據在一次:

$shipping_address = $order->getShippingAddress(); 
var_dump($shipping_address->getData()); 

,或者直接用於特定的單一性質是這樣的:

$shipping_address = $order->getShippingAddress(); 
var_dump(
    $shipping_address->getFirstname(), 
    $shipping_address->getLastname(), 
    $shipping_address->getCity() 
); 

要理解它是如何工作的,我會建議讓自己更熟悉Varien_Object並閱讀一下PHP magic methods,比如__call(),__get()__set()

+0

非常感謝,這正是我所需要的。 – gregdev

1

嘗試print_r($shipping_address->toArray());

相關問題