Returns living in the inbox
A customer emails to say the jacket is too small. Someone replies with the returns address. A week later a parcel arrives with no note inside. The warehouse puts it on a shelf marked "returns" and hopes someone matches it. The customer emails again asking where their refund is. Three people have now touched this, and none of them can see the whole story without scrolling through a thread.
Multiply that by every return in a busy month and the shared inbox becomes the returns system. It is not a good one.
Why email cannot run returns
A return has states: requested, approved, label sent, in transit, received, inspected, refunded or exchanged, restocked or written off. Email has no concept of state. It has threads, which get forwarded, split and archived.
So the state lives in people's memory. The warehouse knows a parcel arrived. Customer service knows the customer is waiting. Finance knows a refund was issued. Nobody knows all three at once, and Shopify only finds out about the refund when someone remembers to press the button.
What the email approach costs
| Problem | Effect |
|---|---|
| Unmatched parcels | Refunds delayed, customers chase, some refunded twice |
| No eligibility check | Returns accepted outside policy or on final-sale items |
| Stock not restocked | Sellable items sit on a shelf instead of on the site |
| No return reasons captured | Same sizing or quality problem keeps recurring |
| Chasing emails | Customer service time spent on status updates |
The lost return reasons are the quiet cost. If a product comes back often because the sizing runs small, you only find that out if someone records why, in a form you can count.
There is also the risk you do not see until later. When nobody can tell at a glance whether a return has been refunded, it is possible to refund the same order twice, or to refund an item that never arrived back. Both happen more often than people expect in a busy inbox, and both come straight off your margin.
How we build the returns flow
If an existing returns app fits your policy, we will recommend it. We build when your rules are unusual, you sell on several channels, or returns need to connect to a warehouse or ERP the apps do not support.
- A returns page on your store. The customer enters their order number and email, picks the items and a reason from a list you control.
- Eligibility rules. The order is looked up through the Shopify Admin API, and rules check the return window, excluded products and condition requirements before approval.
- Label and instructions. An approved return gets a courier label or drop-off code, and a reference to write on the parcel.
- Receiving. The warehouse scans the reference when the parcel arrives, so it is matched to the right return immediately.
- Inspection. Staff record the condition. Sellable items go back into stock, damaged ones are written off with a note.
- Refund or exchange. The refund or replacement order is created in Shopify, so payments, stock and reports stay correct.
- Customer updates. Emails go out at each stage automatically, which removes most of the "any news?" messages.
Return reasons are stored per product, so you can see which items come back and why without reading emails.
Returns after the change
The inbox goes back to being for questions. Every return has a status anyone on the team can look up. Parcels are matched when they arrive, not days later. Refunds go through Shopify with a record of who approved them and why.
And after a few months you have something you never had before: a clear view of which products come back, for which reasons, which is where the real savings are.
Is this your returns process?
- Customers start a return by emailing you.
- Parcels arrive that nobody can immediately match to an order.
- Refunds are issued by hand, sometimes late.
- Returned stock takes a while to appear on the site again.
- You could not say which product is returned most, or why.