我正在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 "<pre>"; //print_r($myOrder); //echo "</pre>"; //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的答案更改代码