I am currently in the process of getting that returns process to work for another ecommerce site (for a brand). We are hoping to move from a manual process where you have some friendly chat with a customer service person to what you get on Amazon, i.e. 'hassle free', everything automated as much as possible.
Believe me, you have it easy compared to the manual process that most smaller ecommerce players labour under. Only if things like returns are automated can you actually scale the business. I have been struggling on Stack Overflow with getting the returns process, it seems to me that not many people get that far, the answers are a bit thin! So a stellare customer service with the returns labels is quite a thing.
Why so hard? Well, if the customer can be from anywhere on the planet and their original order could have been fulfilled by one or more warehouses around the globe, where do you check their return back in to? Once that is decided there is again a choice of couriers, all with different 'API' access to the labels. The end result is probably the same label with different numbers on in 90% of cases, nonetheless some API calls around the globe have to happen to get to the 'obvious' label that you just print out and stick onto the box.
The label also has to be something that can be checked in at the warehouse with some means of updating stock levels if it goes back into stock. Then there is the small matter of issuing a refund - full or partial. Then checking that refund has gone through the following morning, just in case. Then emailing you all is good. Including some custom coupon just for you to tempt you to buy something else.
Then the thing has to be tested. How do you test an order to Namibia gets returned properly? Or Ottowa? Or just normal Germany, where all those labels have to be translated? Or Japan where there are some issues with addresses and non-latin characters. Or Korea? Or plain Ireland, where there are no post codes.
Getting an order to Namibia (for example) is one thing, returning it and getting the original payment returned, all automagically, 'hassle free', well, that is a fine art. From my readings of Stack Overflow few make it to that depth of the ecommerce sales process.
Obviously my code will do the returns label at 'web speed' (instantly, customer in control) whereas the humans had to take up to 150 hours to get back to the customer with a returns label. Invariably they would mess up the credit memo and the stock would go out of the realms of accuracy fairly quickly. Total overhead for a returns is something like 30 mins for the various people needing to faff about with this 'easily' automated stuff.
Now I know what I know I can see how the retailers are on customer service, only if you are doing it 'the Amazon way' are you really able to profit online, selling through them or not.