当前位置:  开发笔记 > 编程语言 > 正文

从Magento出口订单以便装运

如何解决《从Magento出口订单以便装运》经验,为你挑选了1个好方法。

我正在Magento平台上的一家网上商店工作,并遇到了一个主要障碍:由于某种原因,我无法弄清楚如何导出当前订单(包含运输信息/货运类型/等).有没有人有什么建议?这似乎应该是像这样的系统最基本的东西之一,但我还没有找到如何.

预先感谢您的帮助,

安迪



1> Manos Dilave..:

看到你想要这个用于发货,你可能想问问谁处理你的运输是否有某种API,这样你就可以建立/购买/下载一个合适的运输模块,并省去了与CSV文件混淆的麻烦.

如果你真的想要一个CSV文件,我可以告诉你如何创建它.你没有提到这个脚本将在哪里运行,所以我假设它是一个外部脚本(这将使它更容易与cron作业一起使用).您想要执行以下操作:

//External script - Load magento framework
require_once("C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\magento\app\Mage.php");
Mage::app('default');

$myOrder=Mage::getModel('sales/order'); 
$orders=Mage::getModel('sales/mysql4_order_collection');

//Optional filters you might want to use - more available operations in method _getConditionSql in Varien_Data_Collection_Db. 
$orders->addFieldToFilter('total_paid',Array('gt'=>0)); //Amount paid larger than 0
$orders->addFieldToFilter('status',Array('eq'=>"processing"));  //Status is "processing"

$allIds=$orders->getAllIds();
foreach($allIds as $thisId) {
    $myOrder->reset()->load($thisId);
    //echo "
";
    //print_r($myOrder);
    //echo "
"; //Some random fields echo "'" . $myOrder->getBillingAddress()->getLastname() . "',"; echo "'" . $myOrder->getTotal_paid() . "',"; echo "'" . $myOrder->getShippingAddress()->getTelephone() . "',"; echo "'" . $myOrder->getPayment()->getCc_type() . "',"; echo "'" . $myOrder->getStatus() . "',"; echo "\r\n"; }

为了简洁(和理智),我没有列出所有可用的订单信息.您可以通过转储相关对象并查看其字段来查找可用的字段.

例如,如果你要做print_r($ myOrder-> getBillingAddress()); 你会看到像"address_type"和"lastname"这样的字段.您可以分别使用$ myOrder-> getBillingAddress() - > getAddress_type()和$ myOrder-> getBillingAddress() - > getLastname().

编辑:根据craig.michael.morris的回答更改了代码

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有