【问题标题】:Magento Tracking Number from Order Object来自订单对象的 Magento 跟踪号
【发布时间】:2011-04-20 22:14:53
【问题描述】:

给定一个 magento 订单对象,我如何找到与该订单关联的跟踪号?

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

【问题讨论】:

标签: magento magento-1.4


【解决方案1】:

我也为此苦苦挣扎,返回空值。不过终于想通了。首先,如前所述,检索与给定订单关联的货件集合:

$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 现在将包含与此订单/货件相关联的每个跟踪号。

【讨论】:

  • 当我在 sales_order_shipment_save_after 观察者事件中使用此代码时,我得到了空白数组。
【解决方案2】:

试试下面的代码:虽然它没有经过测试。

$shipment->getAllTracks();

【讨论】:

  • 当我在 sales_order_shipment_save_after 观察者事件中使用此代码时,我得到了空白数组。
【解决方案3】:

你可以这样做:

$order = Mage::getModel('sales/order')->loadByIncrementId(100000064);
$trackNumber = array();
foreach ($order->getTracksCollection() as $track){
    $trackNumber[] = $track->getNumber();
}

【讨论】:

    【解决方案4】:

    使用

    $order->getTrackingNumbers()
    

    【讨论】:

      【解决方案5】:

      应该是

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        • 2011-10-02
        • 2013-12-05
        • 1970-01-01
        • 1970-01-01
        • 2013-06-07
        相关资源
        最近更新 更多