在Magento 1.5.1.0中设置订单状态并添加自定义运营商

时间:2011-07-12 12:56:46

标签: magento

我正在尝试创建订单并在下订单时为该订单分配运费。但我发现,当我创建发票并添加货件时,magento会自动将订单状态设置为“完成”。我试图手动更改状态但它不起作用。

$order = Mage::getModel('sales/order');
            $order->loadByIncrementId($orderId);
            $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true);
            $order->save();

有人可以建议我怎么过来这个? 另外,我如何添加自定义载体?默认的是DHL,FedEx,UPS ..我想添加一个类似的。这就是我的做法:

$carrier = "dhl";
            $title = "DHL";
            $trackNumber = '538099';
            if (1) {
                $itemsQty = $order->getItemsCollection()->count();

    $shipment =Mage::getModel('sales/service_order',$order)->prepareShipment($itemsQty);
                $shipment = new Mage_Sales_Model_Order_Shipment_Api();
                $shipmentId = $shipment->create($orderId);


$shipment->addTrack($shipmentId,$carrier,$title,$trackNumber);
        }

对于运营商和标题,如果我提供自定义名称,我会在报告中收到错误无效的运营商。我该怎么做?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用 addStatusToHistory 功能。这也用于添加注释。

$order->addStatusToHistory('processing', 'Order is being processed', false);
  • param 1(字符串):新状态
  • param 2(string):您的评论
  • param 3(布尔值):如果您想向客户发送电子邮件通知。