Magento – Change Order Status

Yesterday we got an order from a customer and the order status was “pending_paypal”. It was ok until later we received the payment from the customer, and I found out there was no way to change the order status from “pending_paypal”. After googling for awhile, I find a solution by editing this file:
Magento\app\code\core\Mage\Sales\etc\config.xml. Although I recommend not to edit the original file, I will show you how to edit this file in order to change the order status. First find the code block <states></states>, and add the order status within <statuses> and <statuses/>. For example, I changed

<pending_payment translate="label">
<label>Pending Payment</label>
<statuses>                   
<pending_paypal/>	
</statuses>
</pending_payment>

To:

<pending_payment translate="label">
<label>Pending Payment</label>
<statuses>
<pending/>
<pending_paypal/>
<processing/>
<holded/>
<complete/>
<closed/>
<canceled/>
</statuses>
<visible_on_front/>
</pending_payment>

Let me explain what have I done. First, I added statuses on my pending_payment tags, so when my order status is on pending payment, I will be able to change my order status to pending, pending_paypal, complete, closed, canceled, holded, and processing. These status tags are defined before <states tag. I am not going to show how to add new status tags now.

Then I also added <visible_on_front/> because I want my customers will be able to see their order status when the order status is on “Pending Payment”. Please note that changing the status here, it only changes the status on order, but I found out that the real status still “Pending”, so if I don’t add <visible_on_front/>, my customers will not be able to see their recent order on their account page. I still trying to figure out why and how to fix it, but I still have no idea.

Post to Twitter Post to Plurk Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to MySpace Post to Ping.fm Post to Reddit Post to StumbleUpon

Leave a Reply