How to Process Refunds in ERPNext (Complete Flow)

Hi All,

Happy New Year!

Processing refunds is an important part of retail. Currently, there doesn’t seem to be any way to process a refund from the POS interface. I want to believe this is in the pipeline. My major concern however, is that it’s still not very clear how to handle refunds even from the Sales Invoices!

There are 2 major scenarios when processing a refund depending on policies in the country or within the organization:

  1. When an item is returned, give the customer their money back

  2. When an item is returned, it can only be swapped for another item of similar value or higher

For the first scenario, I believe the current process in ERPNext will be to create an ‘Is Return’ Sales Invoice from the original Invoice and then check the ‘Is POS’ check-box before going on to Submit. This process is however not seamless especially when dealing with serialized items:

a. When you click on ‘Is POS’, the ‘Update Stock’ button becomes unchecked. You then have to scroll down and check it again (assuming you noticed it became unchecked)

b. When you remove some items from the list, payment information doesn’t get updated

c. Payment Information shows exactly what was on the original invoice and not the negative value which is on the current return invoice. You need to manually set this

d. The serial number(s) from the original item do not get copied to the return invoice. Rather, an existing serial number within the system automatically shows up in the serial number field! You need to manually delete this and then copy the serial number(s) from the original invoice

For the second scenario where the item gets swapped (and this is the most common process - at least in the regions that I’m well acquainted with), I’m still trying to figure it out! The common practice in other POS applications will be to enter the new item(s) being selected by the customer into the same table as the item(s) being returned. This way, the invoice immediately shows what the balance payment should be (assuming the customer picks a more expensive item) and then the payment is processed just like a regular POS transaction. When you do this in ERPNext, it returns an error saying that the serial number for the new item doesn’t belong to the original Sales Invoice! How then are we supposed to swap items?

I would really appreciate some clarifications here as we’re using this in a live retail environment!

Many thanks

Github Issue created…