Номер отслеживания Magento из объекта заказа - PullRequest
4 голосов
/ 21 апреля 2011

С учетом объекта заказа пурпурного цвета, как найти номер для отслеживания, связанный с этим заказом?

$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(); 
}

Ответы [ 5 ]

9 голосов
/ 02 февраля 2012

Я тоже боролся за это, возвращая нулевые значения.Наконец-то все понял.Сначала, как отмечалось ранее, извлекаем коллекцию отправлений, связанную с данным заказом:

$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 теперь будет содержать каждый из номеров отслеживания, связанных с этим заказом / отправкой.

5 голосов
/ 21 апреля 2011

Попробуйте код ниже: это не проверено, хотя.

$shipment->getAllTracks();
3 голосов
/ 18 марта 2016

Вы можете просто сделать это:

$order = Mage::getModel('sales/order')->loadByIncrementId(100000064);
$trackNumber = array();
foreach ($order->getTracksCollection() as $track){
    $trackNumber[] = $track->getNumber();
}
2 голосов
/ 27 июля 2011

использование

$order->getTrackingNumbers()
0 голосов
/ 23 мая 2011

должно быть

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