Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
JULY 10 2014: UPDATED TO LATEST 4.6.2 and above - All functions tested 100%
Like many others I require several different custom order status and would also like the customer to be emailed on change of status, and also the option to put the product back in stock. A perfect example of this is Refunds. After doing some research with regards to older versions I was able to get it working perfectly on my own 4.6.2 (Thanks to Jon & imexhouse in THIS THREAD) and thanks to Thomasb134 in THIS POST) For this example I am going to add a 'Refunded' order status. Of course you can change to whatever you require. I have also hardcoded the Order Status name as opposed to using a label. Open skin/common_files/main/order_status.tpl FIND (Around Line 15): Code:
<option value="I"{if $status eq "I"} selected="selected"{/if}>{$lng.lbl_not_finished}</option> AFTER ADD: Code:
<option value="R"{if $status eq "R"} selected="selected"{/if}>Refunded</option> FIND (Around Line 27): Code:
{if $status eq "I"} AFTER ADD: Code:
{elseif $status eq "R"} Open include/func/func.order.php FIND (Around Line 1666): Code:
$allowed_order_status = 'IQPBDFCA'; CHANGE TO: Code:
$allowed_order_status = 'IRQPBDFCA'; FIND (Around Line 1689): Code:
$send_notification = false; CHANGE TO: Code:
$send_notification = false; Find this: Code:
// Decrease quantity in stock when 'declined' or 'failed' order is became 'completed', 'processed' or 'queued' change to Code:
// Decrease quantity in stock when 'declined' or 'failed' or 'refunded' order is became 'completed', 'processed' or 'queued' FIND: Code:
} elseif ( CHANGE TO: Code:
} elseif ( FIND: Code:
} elseif ( CHANGE TO: Code:
} elseif ( FIND: Code:
} elseif ( Code:
} elseif ( FIND: Code:
if (($status != 'D') && ($status != 'F')) return; CHANGE TO: Code:
if (($status != 'D') && ($status != 'F') && ($status != 'R')) return; Open modules/Advanced_Order_Mangement/func.php FIND (Around Line 391): Code:
'I' => func_get_langvar_by_name('lbl_not_finished'), ADD AFTER: Code:
'R' => func_get_langvar_by_name('Refunded'), Then you need to create the email templates and upload to: skin/common_files/mail/html/order_customer_refunded.tpl skin/common_files/mail/order_refunded.tpl skin/common_files/mail/ Here are some example templates: order_customer_refunded.tpl Code:
{config_load file="$skin_config"} order_refunded.tpl Code:
{config_load file="$skin_config"} order_refunded_subj.tpl Code:
{$config.Company.company_name}: Your order #{$order.orderid} has been refunded I have tested the above working 100% with v4.6.2 - I hope someone finds it as useful as I have :) Greets to Phil @ www.xcartmods.co.uk |
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
You are the man! This worked great on the first try.
I wanted to post to shout out to Phil as well. Greets to Phil @ www.xcartmods.co.uk |
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Tested working with 4.6.2 :)
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Original post updated for 4.6.2 :)
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Original post updated for 4.6.2 :)
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Original post updated for 4.6.2 :)
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
I applied the Custom Status mod (including the inventory fix in post 6) and found inventory updates still did not work correctly. I made some changes and it now works fine in my V4.4.5 store. I'll share what I found in case others run into inventory accuracy issues like me.
I performed all the updates noted in this disussion. However, I had to modify some of the new code used in the /include/func/func.order.php as follows: Find Original Code: Code:
$send_notification = false; Change to: Code:
$send_notification = false; I also had to add some extra code to accommodate some status changes that were missing in the original mod. Find Original Code: Code:
} elseif ( Change to: Code:
} elseif ( Find Original Code: Code:
} elseif ( Change to: Code:
} elseif ( Many thanks to those that did all the hard work! |
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
How to bring this order status in order export pack also?
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Any idea why this change would make my admin/orders.php page go blank? It goes blank with changes from post #1 and/or the change from post #5. Version 4.6.1 with the reboot skin.
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Check your php error logs. The line number that is causing the php problem will probably be noted in the log.
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
I have updated the OP to include Thomasb134's fixes (thanks) including a couple more entries I found and consolidated all my other posts so its all in one thread
Tested perfect on X-Cart 4.6.2 :) |
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Working in X-cart 4.6.3,Nice job summing this up Raptor. Thanks
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
does the codes apply to x-cart gold v4.7.4?
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
Yes, it should work in 4.7.4. Not much has changed in this area.
|
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
I can't get it to work at all with 4.7.6
Have disabled Custom Order Status as that is not fit for purpose (Refund & Cancelled orders requires putting stock back and sending custom email). If anyone has any ideas....... |
Re: Custom Order Status inc Email To Customer and Stock Correction X-Cart 4.5.x
I ended up using the Custom Order Statuses mod with 4.7.6. I use an "out of stock - on order" and "discontinued" order status.
When adding a custom status in 4.7.6 a random status code is picked by x-cart. Since I had my own custom statuses from before the store upgrade I just had to update the random status code to match what I had picked previously. You can figure out what the random status code is through SQL Code:
select * from xcart_custom_order_statuses; or by modifying the custom order status tpl to print it out: Index: skin/common_files/modules/XOrder_Statuses/status_selector.tpl Code:
<td align="left"> For me, my new status IDs were 9 and 10 and needed codes 'K' and 'S' to match my previous custom status codes. I updated them in SQL: Code:
update xcart_custom_order_statuses set code='K' where statusid='9'; The Custom Order Status module has built-in options for sending emails so I've been using that for customer email notification. |
All times are GMT -8. The time now is 01:16 AM. |
Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.