我正在尝试跟踪商店中货件的标题/交付方式,以便在跟踪弹出窗口中使用。在弹出模板中,我有一个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 / empty结果。我正在尝试添加功能的文件是popup.phtml,它位于app / design / frontend / default // template / shipping / tracking。
所以我猜我试图找到的两件事是 1)“标题”字段在哪里,如在管理面板中的货件详细信息页面上显示的表格中所示,在Magento的对象和表格的混合中? 2)我如何获得该值以便我可以对其进行检查?
答案 0 :(得分:2)
所以我终于想出了这一个。我的最终目标是我想为不同的运输公司提交一份转换声明,以便我始终为每批货物提供跟踪链接。我知道我要查找的数据存在于sales_flat_order_shipment表中,并且通常位于Mage_Sales_Order_Model_Shipment_Track对象中,但无法弄清楚如何从app / design / frontend / default //模板/运输/跟踪/弹出窗口内到达一个.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();
}
?>
在处理部分货物等时,我仍然需要做更多的测试来验证一切都能正常运行,但这就是我为单件货物运输所做的,它就像一个魅力。
答案 1 :(得分:0)
在寻找自定义标题时,这对我有用:
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
$shippingTitle = $order->getTracksCollection()->getFirstItem()->getTitle();