如何从csv为订单在magento中设置跟踪链接


How to set tracking link for order in magento from csv

我有csv,其中包含跟踪编号、跟踪链接、承运商代码和订单号。我可以为特定订单设置跟踪号码、运营商代码,但不能为同一订单设置跟踪URL。请建议我一些代码片段或任何解决此查询的方法。

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;
}

您不应该为订单设置任何跟踪URL,因为跟踪URL是根据订单跟踪编号和运输服务跟踪URL结构自动生成的。

例如,UPS跟踪URL为:http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums={tracking_number}