magento - 我如何在 Magento 中找到承运商名称?

标签 magento e-commerce tracking shipping

我正在尝试追踪我商店中发货的标题/交付方式,以便在追踪弹出窗口中使用。在弹出模板中,我有一个 Mage_Shipping_Model_Tracking_Result_Status 对象,如下所示:

object(Mage_Shipping_Model_Tracking_Result_Status)#182 (7) 
{ 
    ["_data":protected]=> array(5) 
    { 
        ["carrier"]=> string(3) "ups" 
        ["carrier_title"]=> string(21) "United Parcel Service" 
        ["tracking"]=> string(22) "9102969006713002493469" 
        ["popup"]=> int(1) 
        ["url"]=> string(211) "http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&error_carried=true&tracknums_displayed=5&TypeOfInquiryNumber=T&loc=en_US&InquiryNumber1=9102969006713002493469&AgreeToTermsAndConditions=yes" 
    } 
    ["_hasDataChanges":protected]=> bool(true) 
    ["_origData":protected]=> NULL 
    ["_idFieldName":protected]=> NULL 
    ["_isDeleted":protected]=> bool(false) 
    ["_oldFieldsMap":protected]=> array(0) { } 
    ["_syncFieldsMap":protected]=> array(0) { } 
}

我遇到的问题是我需要知道在管理面板中看到的货件的“标题”是什么。在管理面板中,我看到了这个:

+-----------------------+------------------------+------------------------+--------+
|        Carrier        |         Title          |         Number         | Action |
+-----------------------+------------------------+------------------------+--------+
| United Parcel Service | MI Expedited Irregular | 9102969006713002493469 | Delete |
+-----------------------+------------------------+------------------------+--------+

现在我要查找的是表格中的标题,即“MI Expedited Irregular”。我想要它,所以我可以在代码中检查它,以便它使用不同的跟踪 URL,然后使用对象的 url 变量中列出的跟踪 URL。但我无法弄清楚如何使用上面列出的对象来获取 Mage_Sales_Model_Order_Shipment_Track,我相信我正在寻找的特定数据存在于其中。在我最近的尝试中,我尝试了这个

$forder = Mage::getModel('sales/order')->loadByIncrementId($shipid);
foreach($forder->getShipmentsCollection() as $shipment){
    var_dump($shipment);
}

$ship_col = Mage::getResourceModel('sales/order_shipment_collection')->setOrderFilter($forder)->load();
var_dump($ship_col);
foreach($ship_col as $sc){
    var_dump($sc);
}
$ship_col = Mage::getResourceModel('sales/order_shipment_collection');
$ship_col->addAttributeToFilter('order_id', $forder->getId());
foreach($ship_col as $sc){
    $ship = Mage::getModel('sales/order_shipment');
    $ship->load($sc->getId());
    $ftrack = Mage::getModel('sales/order_shipment_track')->loadById($ship->getId());
    foreach($ftrack as $tr){
        var_dump($tr);
    }
}

在所有这些尝试中,我得到的只是 var_dumps 中的 NULL/空结果。我尝试向其中添加功能的文件是 popup.phtml,它位于 app/design/frontend/default//template/shipping/tracking 中。

所以我想我想找到的两件事是 1) 在 Magento 的对象和表格的组合中,“标题”字段在哪里,如管理面板中发货详细信息页面上显示的表格所示? 2)如何获得该值以便我可以对其进行检查?

最佳答案

所以我终于弄明白了。我的最终目标是我想为不同的运输承运商添加一个转换声明,这样我就可以始终为每批 cargo 提供一个跟踪链接。我知道我正在寻找的数据存在于 sales_flat_order_shipment 表中,通常位于 Mage_Sales_Order_Model_Shipment_Track 对象中,但无法弄清楚如何从 app/design/frontend/default//template/shipping/tracking/popup 中获取数据.phtml。在继续使用 var_dumps 并阅读 error_logs 以及纯粹的试错之后。这是我想出的有效代码。

<?php
    $ship_col = Mage::getResourceModel('sales/order_shipment_track_collection')->addAttributeToFilter('track_number', $track->getTracking())->load();
    foreach($ship_col as $sc){
        $trackMethod = $sc->getTitle();
    }
?>

我还有更多的测试要做,以验证在处理分批发货等时一切正常,但这是我对单件货件的测试,它非常有效。

关于magento - 我如何在 Magento 中找到承运商名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968427/

相关文章:

seo - Google Analytics & Event Trackers - 如何按事件获取流量来源?

php - Magento - 根据自定义标准实现订单限制

php - 优化使用 Magento 的网站

html - 为什么我的商店在 FireFox 中这么长?

paypal - 有什么方法可以自定义 Paypal 订单摘要以将 'item' 替换为 'service'?

tracking - 不可见像素转换跟踪如何工作?

magento - Magento 订单系统中的交易

magento - 在 Magento 的各个产品页面上制作一致的面包屑?

Ruby on Rails 还是 Node.js?哪个更适合电子商务网站?

facebook - 我们如何使用新的 Facebook 主题标签实现来跟踪主题标签