我正在Magento平台上的一家网上商店工作,并遇到了一个主要障碍:由于某种原因,我无法弄清楚如何导出当前订单(包含运输信息/货运类型/等).有没有人有什么建议?这似乎应该是像这样的系统最基本的东西之一,但我还没有找到如何.
预先感谢您的帮助,
安迪
看到你想要这个用于发货,你可能想问问谁处理你的运输是否有某种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的回答更改了代码