【问题标题】:How to get Shipment Increment ID by Order ID in Magento如何在 Magento 中通过 Order ID 获取 Shipment Increment ID
【发布时间】:2013-12-22 21:15:10
【问题描述】:

大家好。有人可以告诉我如何通过 Magento 中的订单 ID 获取发货增量 ID 吗?

我需要这个,因为我使用外部 php 文件向货件添加跟踪信息,并且它需要货件 ID。

感谢您的所有帮助。

我正在使用下面的代码添加跟踪信息

$shipmentIncrementId='300000002';
$trackNumber='123456';
$carrier='custom';
$title='server10';


$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentIncrementId);

         /* @var $shipment Mage_Sales_Model_Order_Shipment */



         $track = Mage::getModel('sales/order_shipment_track')
                     ->setNumber($trackNumber)
                     ->setCarrierCode($carrier)
                     ->setTitle($title);

         $shipment->addTrack($track);

         try {
             $shipment->save();
         } catch (Mage_Core_Exception $e) {
             $thiss->_fault('data_invalid', $e->getMessage());
         }

         return $track->getId();

print_r($shipment);

【问题讨论】:

    标签: php magento


    【解决方案1】:

    理论上,一个订单可以有多个货件。但是,如果您约定每个订单始终只有一个货件,您可以像这样获得其增量 ID:

    $orderIncrementId = 120000012;
    $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
    $shipment = $order->getShipmentsCollection()->getFirstItem();
    $shipmentIncrementId = $shipment->getIncrementId();
    

    【讨论】:

    • 感谢 Marius,这完全符合我的需要。关于只有一个装运/订单的惯例,我该怎么做?非常感谢您的帮助。
    • 就像我说的。这是一个约定。您“口头”决定每个订单只添加一个货件。
    • 但是先生,我收到错误:致命错误:在非对象上调用成员函数 getFirstItem()
    • 那么尚未为此订单创建货件。
    猜你喜欢
    • 1970-01-01
    • 2014-07-30
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    相关资源
    最近更新 更多