Magento: Change order status programmatically


Magento: Change order status programmatically


This post shows how to change order status programmatically in Magento by using your order_id or order_increment_id.

First, you need to load your order. You can load order by either order_id or order_increment_id.

Load order by “order id”
$orderId = YOUR_ORDER_ID;
$order = Mage::getModel('sales/order')->load($orderId);
Load order by “order increment id”
$orderIncrementId = YOUR_ORDER_INCREMENT_ID;
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);

Change order status to Complete
/** change order status to 'Completed' */
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true)->save();

/*** change order status to 'Pending'*/
$order->setState(Mage_Sales_Model_Order::STATE_NEW, true)->save();

/*** change order status to 'Pending Paypal'*/
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true)->save();

/*** change order status to 'Processing'*/
$order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true)->save();

/*** change order status to 'Completed'*/
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true)->save();

/*** change order status to 'Closed'*/
$order->setState(Mage_Sales_Model_Order::STATE_CLOSED, true)->save();

/*** change order status to 'Canceled'*/
$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, true)->save();

/*** change order status to 'Holded'*/
$order->setState(Mage_Sales_Model_Order::STATE_HOLDED, true)->save();

Cancel an order

if($order->canCancel()) {
$order->cancel()->save();
}

Hold an order

if($order->canHold()) {
$order->hold()->save();
}

Unhold an order

if($order->canUnhold()) {
$order->unhold()->save();

}


Comments