2013-12-22 54 views
6

Hello Guys。有人可以告訴我如何通過Magento中的訂單ID獲得裝運增量ID嗎?如何通過Magento中的訂單ID獲取發貨量增量ID

我需要這個,因爲我使用外部的php文件來爲貨件添加跟蹤信息,並且它需要貨件ID。

謝謝你的一切幫助。

我使用下面的代碼中添加跟蹤信息

$shipmentIncrementId='300000002'; 
$trackNumber='123456'; 
$carrier='custom'; 
$title='server10'; 


$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentIncrementId); 

     /* @var $shipment Mage_Sales_Model_Order_Shipment */ 



     $track = Mage::getModel('sales/order_shipment_track') 
        ->setNumber($trackNumber) 
        ->setCarrierCode($carrier) 
        ->setTitle($title); 

     $shipment->addTrack($track); 

     try { 
      $shipment->save(); 
     } catch (Mage_Core_Exception $e) { 
      $thiss->_fault('data_invalid', $e->getMessage()); 
     } 

     return $track->getId(); 

print_r($shipment); 

回答

12

理論上的訂單可以有一個以上的貨物。但是,如果您按照慣例每次訂單總是有單一貨件,您可以得到如下增量ID:

$orderIncrementId = 120000012; 
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId); 
$shipment = $order->getShipmentsCollection()->getFirstItem(); 
$shipmentIncrementId = $shipment->getIncrementId(); 
+0

感謝Marius,這個工作原理與我需要的完全一樣。關於大會只有一個裝運/訂單,我怎麼能做到這一點?非常感謝您的幫助。 – user3127781

+0

就像我說的。這是一個慣例。您可以「口頭」決定每次訂單隻添加一批貨物。 – Marius

+0

但先生我得到錯誤: 致命錯誤:調用一個非對象的成員函數getFirstItem() –