2011-04-20 71 views
3

給定一個magento訂單對象,如何找到與該訂單相關的跟蹤號碼?來自訂單對象的Magento跟蹤號碼

$order = Mage::getModel('sales/order')->loadByIncrementId(100000064); 

$shipmentCollection = Mage::getResourceModel('sales/order_shipment_collection') 
    ->setOrderFilter($order) 
    ->load(); 
foreach ($shipmentCollection as $shipment){ 
    // This will give me the shipment IncrementId, but not the actual tracking information. 
    $shipment->getData(); 
} 
+0

http://stackoverflow.com/questions/3155671/magento-cronjob-outside-magento-to-update-shipment-status一些相關的代碼在這裏。 – B00MER 2011-04-20 22:40:12

+0

一個答案,幫助我谷歌搜索這個:http://stackoverflow.com/questions/9433627/ – 2013-01-16 23:02:28

回答

4

請嘗試以下代碼:雖然未經過測試。

$shipment->getAllTracks(); 
0

應該

Mage::getResourceModel('sales/order_shipment_collection') 
    ->setOrderFilter($order) 
    ->load(); 
+1

這是一個很好的觀點。我已經糾正了匹配的問題。 – clockworkgeek 2011-05-23 11:13:16

2

使用

$order->getTrackingNumbers() 
9

我掙扎過這一個了,返回空值。終於搞清楚了。首先,如前所述,檢索與給定的順序有關的貨物收集:

$shipmentCollection = Mage::getResourceModel('sales/order_shipment_collection') 
      ->setOrderFilter($order) 
     ->load(); 
     foreach ($shipmentCollection as $shipment){ 
      // This will give me the shipment IncrementId, but not the actual tracking information. 
      foreach($shipment->getAllTracks() as $tracknum) 
      { 
       $tracknums[]=$tracknum->getNumber(); 
      } 

     } 

數組$ tracknums現在將包含每個鏈接到這個訂單/出貨跟蹤數字。

2

你可以簡單地這樣做:

$order = Mage::getModel('sales/order')->loadByIncrementId(100000064); 
$trackNumber = array(); 
foreach ($order->getTracksCollection() as $track){ 
    $trackNumber[] = $track->getNumber(); 
}