从Magento出口订单以便装运

the*_*dym 9 php export shipping magento

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

预先感谢您的帮助,

安迪

Man*_*kis 24

看到你想要这个用于发货,你可能想问问谁处理你的运输是否有某种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";
}
Run Code Online (Sandbox Code Playgroud)

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

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

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