Skip to main content

How to Change Order Status by Code in Magneto


First Way:
$order = Mage::getModel(‘sales/order’)
->load(0928444);
If you have order increment id, you can load order in the following way:-
$orderIncrementId = YOUR_ORDER_INCREMENT_ID;
$order = Mage::getModel(‘sales/order’)
->loadByIncrementId($orderIncrementId);
Now, here is the code to change order status:-
/**
* change order status to ‘Completed’
*/
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true)->save();
Similarly, you can change the order status to pending, processing, canceled, closed, holded, etc.
/**
* 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();
You can also cancel an order in the following way:-
if($order->canCancel()) {
$order->cancel()->save();
}
Hold an order:-
if($order->canHold()) {
$order->hold()->save();
}
Unhold an order:-
if($order->canUnhold()) {
$order->unhold()->save();
}

2:way
$OrderID =121029103;
$order = Mage::getModel('sales/order')->loadByIncrementId($OrderID);
$order->setState('pending_payment', true)->save(); 
//for pending
$OrderID=12012903;
$order = Mage::getModel('sales/order')->loadByIncrementId($OrderID);
$order->setState('new', true)->save();
just change first param for you status
ACTION_FLAG_CANCEL = 'cancel'
ACTION_FLAG_COMMENT = 'comment'
ACTION_FLAG_CREDITMEMO = 'creditmemo'
ACTION_FLAG_EDIT = 'edit'
ACTION_FLAG_HOLD = 'hold'
ACTION_FLAG_INVOICE = 'invoice'
ACTION_FLAG_REORDER = 'reorder'
ACTION_FLAG_SHIP = 'ship'
ACTION_FLAG_UNHOLD = 'unhold'
STATE_CANCELED = 'canceled'
STATE_CLOSED = 'closed'
STATE_COMPLETE = 'complete'
STATE_HOLDED = 'holded'
STATE_NEW = 'new'
STATE_PAYMENT_REVIEW = 'payment_review'
STATE_PENDING_PAYMENT = 'pending_payment'
STATE_PROCESSING = 'processing'
STATUS_FRAUD = 'fraud'
XML_PATH_EMAIL_COPY_METHOD = 'sales_email/order/copy_method'
XML_PATH_EMAIL_COPY_TO = 'sales_email/order/copy_to'
XML_PATH_EMAIL_ENABLED = 'sales_email/order/enabled'
XML_PATH_EMAIL_GUEST_TEMPLATE = 'sales_email/order/guest_template'
XML_PATH_EMAIL_IDENTITY = 'sales_email/order/identity'
XML_PATH_EMAIL_TEMPLATE = 'sales_email/order/template'
XML_PATH_UPDATE_EMAIL_COPY_METHOD = 'sales_email/order_comment/copy_method'
XML_PATH_UPDATE_EMAIL_COPY_TO = 'sales_email/order_comment/copy_to'
XML_PATH_UPDATE_EMAIL_ENABLED = 'sales_email/order_comment/enabled'
XML_PATH_UPDATE_EMAIL_GUEST_TEMPLATE = 'sales_email/order_comment/guest_template'
XML_PATH_UPDATE_EMAIL_IDENTITY = 'sales_email/order_comment/identity'
XML_PATH_UPDATE_EMAIL_TEMPLATE = 'sales_email/order_comment/template'



Comments

  1. Im facing problems in changing order status by code. This article helped me a lot by providing the magneto code.














     Invoice Template 

    ReplyDelete

Post a Comment

Popular posts from this blog

HTML Emailing in ZF2

<?php namespace Application\Model; use Zend\Mail\Message; use Zend\Mime\Message as MimeMessage; use Zend\Mime\Part as MimePart; use Zend\Mail\Transport\Sendmail as SendmailTransport; use Zend\Mail\Transport\Smtp as SmtpTransport; use Zend\Mail\Transport\SmtpOptions; use Zend\View\Renderer\PhpRenderer; use Zend\View\Resolver\TemplatePathStack; use Zend\View\Model\ViewModel; use Zend\View\Model\ModelInterface; class ApiEmail extends ApiInterface {    protected $From = "XXXXX@gmail.com";    protected $FromName = "XXXX";    protected $To = "" ;    protected $Subject = "" ;    protected $Body = "" ;    protected $Cc = "XXXXXX@gmail.com";    protected $Bcc = "XXXXX@gmail.com" ;    protected $ReplyTo = "XXXX@gmail.com" ;    protected $Sender = "" ;    protected $Encoding = "UTF-8" ;    protected $MESSAGE ; // getter setter    public fun

How to setup django | django installation ubuntu

Introduction to Django 1.     High level web framework 1.     Basic modules, classes, and tools to quickly develop and deploy web apps 2.     Contains an ORM (Object-Relational Mapper) that allows for the use of standard Python language syntax when interfacing with a back-end database. 1.     Developer need not learn SQL, DDL, etc! 3.     Provides a template framework that allows HTML, XML, and other “documents” to be converted into “templates”, which can then be converted to “output” via a wide range of substitution techniques. 4.     Elegant URL support (fancy, beautiful URL's, no “?blah=blah”, etc.) 5.     Multi-lingual 2.     Fast and easy to use, robust, flexible, and lots of contributed components available! 1.     Built in administrative interface to manage data models. 2.     Built-in authentication/access control components 3.     Contributed Installing & Configuring Django Components 1.     Django can be downloaded from http://w

How to start working with Django web framework

 Django is a powerful web framework for Python that makes it easy to build web applications quickly. Here are some steps you can follow to start learning Django programming: Install Python: Django requires Python to be installed on your machine. If you don ' t already have Python installed, you can download it from the official Python website (https://www.python.org/downloads/). Install Django: Once you have Python installed, you can use the pip package manager to install Django. Open a terminal or command prompt and type the following command: pip install django Create a new Django project: To create a new Django project, open a terminal or command prompt and navigate to the directory where you want to store your project. Then run the following command: django - admin startproject myproject Replace myproject with the name you want to give to your project. This will create a new Django project with the specified name in the current directory. Run the development