Carry The One - Automated Accounting
Home Pricing Signup Installation About Us FAQ Blog Contact

Monday, 13 April 2009

A better way to do order exchanges in OSCommerce

I have used OSCommerce for many years and always found the lack of functionality for Credit Orders or Exchanges difficult.

In the end, we used the "Edit Order" contribution to directly edit an order.  But in the process we lost the order history and it went out of sync with our payments.

While a better system could and should be built into OSCommerce, at CTO we have defined a semi-automatic process to help.

It does assume that you calculate your sales (e.g. for VAT purposes) from Kashflow and not OSCommerce.

The logic is in 3 stages:
1. The customer places an order containing 1 or more items.
2. The customer returns 1 or more items for an exchange.
3. You create a credit note for the original order and then issue a new invoice from within Kashflow for the new item(s).

The process uses KashFlows "Assign Advance Payment" functionality to ensure you keep track of how much is owed by you or the customer for any balance.

1. Go to your OSCommerce admin and create a new Order Status called "Exchanged".

Order Status
Click to open full size in a new window

2. Go to your carrytheone configuration page:


Once you have logged in, scroll down to the "Credit Notes" section.

Credit Notes

Configure one of the 3 potential Credit Note triggers for the "Exchanged" order status.

You will want to exclude the delivery charge - because typically if a customer is returning a non-faulty item, you will not refund the outward delivery cost.

Also exclude the payment - as this is an exchange, you do not want to automatically assign a payment to the credit note - you are holding back the monies paid in order to put them towards the exchanged item.

3. Place a test order on your system. I will keep it simple for now and order one item. If your customer order several items and only wants to exchange one, you will need to manually edit the credit note to remove the items not being returned.

I placed an order for a USB mouse - and the system uploaded the invoice to Kashflow within about 20 seconds:

KashFlow InvoiceClick to open full size in a new window

4. Next, we assume that the customer receives the item and realises that the USB mouse won't work on their old laptop and they need the PS2 version instead.

They send it back, and on receipt, you change the order status to exchanged.

This automatically creates a credit note in Kashflow - excluding the original delivery and does not assign a payment.

KashFlow Credit Note
Click to open full size in a new window

5. Next, create a new invoice within KashFlow for the replacement item. In this case, it is the cheaper PS2 mouse.

The total including delivery is £77.19 - a bit cheaper than the first order.

When you have created your new invoice, scroll to the bottom and look for the "Apply Advance Payment" button:

Advance Payment

KashFlow has spotted that this customer is owed £81.59 off their previous invoice. Clicking the button will assign this payment to the new invoice.

6. The final thing we have to do is account for the overpayment by the customer.

Unfortunately there isn't an automatic system for this, so I suggest you record it as a transaction under the relevant bank account.

Assuming the customer paid via WorldPay, you can do a partial refund through WorldPay for the oustanding amount - £4.40 in this case, recording it as a bank transaction.

Alternatively, you could hold onto the money and put it against a future purchase.

Labels: , ,