How To Change Order Status in Magento

I searched all around to find this solution. In Magento Commerce, there is no provision for manually changing order status from the admin panel. We use the “Ship” button in Magento to creating packing slips. We then process our order from that packing slip. This does not mean that the order is “Completed“, but according to the Magento Admin, the order is “Completed“. There is no way to change the status. When you try the drop down for “Status“, there is no choice other than “Completed“.

So here is the fix:

locate config.xml under Magento\app\code\core\Mage\Sales\etc\

Find this block of code:

<states>
<states> <new translate="label"> <label>New</label> <statuses> <pending/> </statuses> <visible_on_front/> </new> <pending_payment translate="label"> <label>Pending Payment</label> <statuses> <pending_paypal/> </statuses> </pending_payment> <processing translate="label"> <label>Processing</label> <statuses> <processing/> </statuses> <visible_on_front/> </processing> <complete translate="label"> <label>Complete</label> <statuses> <complete/> </statuses> <visible_on_front/> </complete> <closed translate="label"> <label>Closed</label> <statuses> <closed/> </statuses> <visible_on_front/> </closed> <canceled translate="label"> <label>Canceled</label> <statuses> <canceled/> </statuses> <visible_on_front/> </canceled> <holded translate="label"> <label>On Hold</label> <statuses> <holded/> </statuses> <visible_on_front/> </holded> </states>
Change it to this:
<states>
  <new translate="label">
    <label>New</label>
    <statuses>
      <pending/>
      <processing/>
      <holded/>
      <complete/>
      <closed/>
      <canceled/>
    </statuses>
  </new>
  <pending translate="label">
    <label>Pending</label>
    <statuses>
      <pending/>
      <processing/>
      <holded/>
      <complete/>
      <closed/>
      <canceled/>
    </statuses>
  </pending>
  <processing translate="label">
    <label>Processing</label>
    <statuses>
      <pending/>
      <processing/>
      <holded/>
      <complete/>
      <closed/>
      <canceled/>
    </statuses>
  </processing>
  <complete translate="label">
    <label>Complete</label>
    <statuses>
      <complete/>
      <pending/>
      <processing/>
      <holded/>
      <closed/>
      <canceled/>
    </statuses>
  </complete>
  <closed translate="label">
    <label>Closed</label>
    <statuses>
      <pending/>
      <processing/>
      <holded/>
      <complete/>
      <closed/>
      <canceled/>
    </statuses>
  </closed>
  <canceled translate="label">
    <label>Canceled</label>
    <statuses>
      <pending/>
      <processing/>
      <holded/>
      <complete/>
      <closed/>
      <canceled/>
    </statuses>
  </canceled>
  <holded translate="label">
    <label>On Hold</label>
      <statuses>
      <pending/>
      <processing/>
      <holded/>
      <complete/>
      <closed/>
      <canceled/>
    </statuses>
  </holded>
</states>

Save the file.

Refresh your cache in Magento.

That should now allow you to manually change order status in Magento Commerce.

4 comments to How To Change Order Status in Magento

  • mage_user

    Great extention. But when I use this, the orders disappear from the customer’s account dashboard. Is there a fix for this? I think it has to do with perhaps fixing some files in the layout folder?

  • I’m not sure, I guess I need to check this. We actually never go into our customers dashboard, so this has not been brought to our attention. Anyone else out there run across this in your Magento installation?

  • ashsmith

    All you need to do is add the within each status

    ...

    On Hold

    I haven’t tested this, but it’s the only thing I can see that is missing from the code.

  • ashsmith

    Sorry, code got stripped out, let’s try again:

    <states>
    ...
    <holded translate="label">
    <label>On Hold</label>
    <statuses>
    <pending/>
    <processing/>
    <holded/>
    <complete/>
    <closed/>
    <canceled/>
    </statuses>
    <visible_on_front/>
    </holded>
    ...
    </states>

You must be logged in to post a comment.