在以编程方式更改订单状态后,Magento在“注释历史记录”部分中缺少状态

时间:2016-05-14 05:33:33

标签: magento magento-1.9

我通过以下代码更改了订单状态。

/** Change the order status **/
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
// Set user admin session
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
Mage::getSingleton('admin/session')->setUser($userModel);
const STATE_PROCESSING = 'closed';

echo $order_status = 'cancelled';
echo "<br/>";

echo $orderId=10000007;
echo "<br/>";

$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
//$order->setState($order_status, true);
//$order->setState(constant($order_status), true);
$order->setData('state', $order_status);
$order->setStatus($order_status);

$order->save();

订单统计信息已成功更改,但当我访问查看订单页面时,评论历史记录部分的状态下拉列表为空白。 之前它显示的状态如pending,compelete,processing等。

请提出一些建议。 先感谢您。 image showing the dropdown of comments history section

2 个答案:

答案 0 :(得分:1)

//Status Updated start here
require_once 'app/Mage.php';

$orderId=10000007;

umask(0);
Mage::app('default');
/*
##Magento Status List
const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';
*/

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

答案 1 :(得分:0)

感谢您的建议。在我的情况下,我发现有一个名为自定义订单状态的插件已安装,因此当我设置状态时,我突出显示的下拉列表显示没有选项。

最后,我使用SOAP API获得了解决方案。