Как я могу получить все номера для отслеживания заказов в Magento? - PullRequest
1 голос
/ 29 декабря 2011

У меня есть объект заказа, и мне нужно получить все номера отслеживания отправленных посылок.Я попробовал следующий код, но он не возвращает ничего, даже те заказы, которые я пробовал, отправляли пакеты с номерами отслеживания.

$order = Mage::getModel('sales/order')->loadByIncrementId($orderid);
$trackingNumbers = $order->getTrackingNumbers();

Объект заказа не равен нулю, поскольку он возвращает данные для других методов, таких как getShippingMethod и т. Д.

Если я нажму на ссылку «Доставка и обработка» «Порядок отслеживания информации», во всплывающем окне отобразятся все номера отслеживания.

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011

Попробуйте это ..

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

foreach ($ shipmentCollection как $ shipment) { $ Shipment-> getAllTracks (); }

Edit: -

foreach ($shipmentCollection as $shipment){


foreach($shipment->getAllTracks() as $tracknum)
            {
                $tracknums[]=$tracknum->getNumber();
            }
}

Теперь $ tracknums будет иметь массив номеров отслеживания.

1 голос
/ 18 марта 2016

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

$orderIncrementId = 100000016; // YOUR ORDER INCREMENT ID;
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
$trackNumber = array();
foreach ($order->getTracksCollection() as $track){
    $trackNumber[] = $track->getNumber();
}
...