2013-11-21 30 views
0

設置magento中的訂單跟蹤鏈接我擁有包含跟蹤編號,跟蹤鏈接,承運人代碼,訂單編號的csv。我可以將跟蹤編號,運營商代碼設置爲特定順序,但無法爲同一訂單設置跟蹤網址。請給我建議一些代碼片段或任何方式來解決這個查詢。如何從csv

if (($handle = fopen("".$webshopimport_path."\\CSV\\trackandtrace.csv", "r")) !== FALSE) 
{ 
    while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) 
    { 
     Mage::init(); 
     $comment = null; 
     $email = false; 
     $includeComment = false; 
     $orderId = '100000065';              //get ordernumber from csv 
     $order = Mage::getModel('sales/order')->loadByIncrementId($orderId); 
     $convertor = Mage::getModel('sales/convert_order'); 
     $shipment = $convertor->toShipment($order); 

     foreach ($order->getAllItems() as $orderItem) 
     { 
      if (!$orderItem->getQtyToShip()) { 
       continue; 
      } 
      if ($orderItem->getIsVirtual()) { 
       continue; 
      } 
      $item = $convertor->itemToShipmentItem($orderItem); 
      $qty = $orderItem->getQtyToShip(); 
      $item->setQty($qty); 
      $shipment->addItem($item); 
     } 

     $trackdata = array(); 
     $trackdata['carrier_code'] = $data[2]; //get carrier_code from csv 
     $trackdata['title'] = $data[2];   //get title from csv 
     $trackdata['number'] = $data[3];   //get track number from csv 


     $track = Mage::getModel('sales/order_shipment_track')->addData($trackdata); 

     $shipment->addTrack($track); 

     Mage::register('current_shipment', $shipment); 

     $shipment->register(); 
     $shipment->addComment($comment, $email && $includeComment); 
     $shipment->setEmailSent(true); 
     $shipment->getOrder()->setIsInProcess(true); 

     $transactionSave = Mage::getModel('core/resource_transaction') 
      ->addObject($shipment) 
      ->addObject($shipment->getOrder()) 
      ->save(); 

     $shipment->sendEmail($email, ($includeComment ? $comment : '')); 
    } 
    fclose($handle); 
    $retVar = true; 
} 

回答