Returns & Exchanges
Everything that decides whether a customer can return something, how much they get back, and what you have to do about it.
If you only want the day-to-day steps, jump to Handling a return. If a customer is arguing about eligibility or a refund amount, the rules are in Who can return what and How the refund is calculated.
The short version
- A customer opens their order on your storefront and requests a return. They pick items, quantities, a reason, and optionally photos.
- The request arrives in Returns in your dashboard as Pending.
- You approve or reject it. Approving emails the customer instructions and a return label if you've added one.
- The customer ships the goods back. You mark the return Received when it arrives — this is when stock goes back on the shelf.
- You complete the return, then process the refund from the refund card. These are two separate steps: completing a return never pays out money on its own.
Setting your return policy
Go to Shipping → Returns & Refund Policy. These settings apply to your whole store.
| Setting | Default | What it does |
|---|---|---|
| Allow returns | On | Master switch. Off means customers see "This store does not accept returns." |
| Allow exchanges | Off | Turns on the exchange option. See Exchanges. |
| Return window (days) | 30 | Days after delivery a customer may request a return. See the warning below. |
| Return shipping paid by | Customer | Only "Customer" causes a deduction from the refund. |
| Return shipping fee | 0 | The flat amount deducted. Only shown when the customer pays. |
| Restocking fee % | 0 | Percentage deducted from the refund. |
| Ship-back deadline (days) | 14 | How long the customer has to actually post the goods after you approve. |
| Refund speed | Normal | Razorpay only. "Optimum" is faster but costs more in gateway fees. |
| Cancellation refund mode | Auto | For cancelled orders, not returns. Auto refunds immediately; manual waits for you. |
| Return address | Same as shipping origin | Where goods come back to. |
| Return policy text | Empty | The wording customers read on your return policy page. |
Setting the return window to 0 means unlimited — every delivered item stays returnable forever. To stop accepting returns, switch Allow returns off instead. To make specific items non-returnable, use the final sale setting on the product.
Per-product settings
In the product editor, under Inventory & Stock:
- Returnable days — a window just for this product. Leave it at 0 to use your shop-wide window; 0 here means "not set", not "final sale".
- Non-returnable (final sale) — tick this to make the product genuinely non-returnable.
Both can also be set through bulk upload.
Who can return what
The window
The clock starts at delivery. If the order has no recorded delivery date, it falls back to the date the order was placed.
The last day counts — a 30-day window on an order delivered on the 1st accepts a request on the 31st, and refuses it on the 32nd.
If a product has its own returnable days set above 0, that wins — whether it's shorter or longer than the shop window. That's deliberate: it's what the customer was promised on the product page.
The order of precedence is:
- Product returnable days, if above 0
- Otherwise the shop return window, if above 0
- Otherwise unlimited
Only three things make an item non-returnable
- The product is marked final sale. This beats everything, including a generous per-product window.
- You've switched off "Allow returns" for the whole shop.
- The window has passed.
Everything else — reason, price, whether it was on sale — does not affect eligibility.
Separately, a return cannot be requested when the order was cancelled, when the courier returned it to you undelivered (RTO), when there's already a return in progress on that order, or when the order hasn't been delivered yet. Before dispatch the customer sees a Cancel option instead; while it's in transit they're told to wait until it arrives.
Your policy is frozen at the moment of purchase
The terms that govern a return are the ones that were in force when the order was placed, saved onto the order at checkout.
Changing your return policy only affects future orders. Shortening your window today does not close returns on orders already out there, and turning returns off does not cancel the rights of customers who already bought. Plan promotions accordingly.
Handling a return
Open Returns in the dashboard menu. The tabs filter by status: All, Pending, Approved, Completed, Rejected, and Needs refund.
Needs refund is the one to watch. It lists returns you've completed where the customer still hasn't got their money. Nothing pays out automatically, so this tab is your to-do list.
Click a return to open it.
Statuses and what you can do next
| Status | What it means | Where it can go next |
|---|---|---|
| Pending | Waiting for your decision | Approved, Rejected, Cancelled |
| Approved | You accepted; waiting for the goods | Received, Completed, Cancelled |
| Received | The goods arrived back | Completed, Rejected |
| Rejected | You declined it | Nothing — final |
| Completed | Finished | Nothing — final |
| Cancelled | Closed without completing | Nothing — final |
The dropdown only offers legal next steps, so you can't get into an invalid state.
Rejected, completed and cancelled are final. Check the request and photos before you decide.
Two shortcuts worth knowing:
- Approved → Completed skips "received" for when the goods are already back on your desk.
- Received → Rejected is for when the parcel arrives wrong or empty.
Approving or rejecting
- Open the return.
- In Update Status, choose the new status.
- Add Admin Notes if you want. The customer sees these in the approval or rejection email — it's where you explain a rejection.
- Save.
Marking damaged items
When you move a return to Received or Completed, you can flag items that came back unsellable — either the whole line, or a count ("2 of 3 damaged"). Damaged units are never added back to sellable stock.
Stock restoration
Stock goes back when the goods come back — at Received, or via the Approved → Completed shortcut. It does not happen when you approve.
It's safe against duplicates: stock is only ever restored once per item, and completing a return afterwards won't double it. Damaged units are excluded, and exchanges don't restock the returned item this way.
Return labels and reverse pickup
- Return label — paste a prepaid label URL. It can be added at any time, including after approval, and appears as a download button in the customer's approval email.
- Reverse pickup — book a collection with Delhivery or Shiprocket directly from the return, once it's approved. The customer is emailed the courier and tracking details. Cancelling a return with a booked pickup also voids the waybill with the carrier; if the carrier refuses, the return is flagged so you know to void it in their panel yourself.
How the refund is calculated
The same calculator produces the estimate the customer sees when requesting, the figure on your approval screen, and the actual payout — so those three always agree.
The breakdown:
| Line | Rule |
|---|---|
| Items | Unit price × quantity returned |
| Coupon share | Order discounts come off proportionally. Returning 1 of 3 items refunds a third of the coupon, not all of it. |
| Tax | If your prices include tax, there's no separate line — refunding the price refunds the tax. If tax is added on top, it's added back. |
| Shipping | Never refunded on a return, partial or full. The courier was still paid. Shipping only comes back when an entire order is cancelled. |
| Restocking fee | Your percentage, deducted. |
| Return shipping | Your flat fee, deducted — only if your policy says the customer pays. |
A refund can never go below zero. Fees can reduce it to nothing, but never turn it into a charge.
Fees are waived when it's your fault
If the customer's reason is Defective, Wrong item or Not as described, both the restocking fee and the return shipping charge are automatically waived. You can also override either fee on an individual return.
The reasons a customer can pick are fixed: too small, too large, colour, style, defective, wrong item, not as described, changed my mind, and other.
Paying the refund
Refunds are never automatic. Open the return and use the Refund Info card.
You can process a refund once the return is Approved, Received or Completed, and only once.
Three ways it can go:
- Back to the original payment method — reversed through Stripe or Razorpay using your own gateway account.
- Cash on delivery — there's nothing to reverse, so the refund is recorded for your books and you settle with the customer directly. The dashboard says "Refund recorded (COD)".
- Store credit — issues a gift card instead of money. Works for any payment method including COD. Store credit is issued at full value: restocking and return shipping fees are waived. Store credit is only ever used when you choose it.
You can lower a refund amount manually, but never raise it above the calculated figure. The system also blocks refunding more than was actually captured on the order.
If a gateway refund fails, use Refresh on the card to re-check with the gateway; a failed refund is released so you can retry.
Every processed refund automatically generates a credit note — an immutable counter-document to the invoice, linked from the return.
Exchanges
Exchanges are off by default. Turn them on in Shipping → Returns & Refund Policy.
The current version is deliberately narrow. An exchange is only offered when all of these are true:
- It's a different option of the same product — a different size or colour, not a different product.
- The price is exactly the same.
- The replacement option is in stock.
- The item isn't final sale.
- Every item in the request has a valid alternative. Half-exchange, half-refund in one request isn't supported.
Anything else — different product, different price, a top-up payment — is not supported. The customer is told to request a refund and place a new order instead.
What happens when you approve an exchange
- Prices and stock are re-checked against live data, because both may have moved since the request.
- Stock for the replacement is reserved. If it sold out in the meantime, approval fails with "The replacement option is out of stock" and nothing changes.
- A linked replacement order is created automatically, at zero charge, ready to fulfil like any other order.
If any step fails, the whole thing rolls back — you'll never have a return marked approved with no replacement order behind it.
If you later reject or cancel an approved exchange, the replacement order is cancelled and its stock restored.
An exchange never refunds money. The replacement is the same price, so nothing is owed. The refund card is replaced with an explanation. If the customer should get money back instead, reject the exchange and let them request a refund.
Partial returns
Customers can return some of a line, not just all of it. The quantity picker appears when more than one unit is still returnable.
Remaining returnable quantity = quantity ordered − units already used by other returns on that order.
Returns in Pending, Approved, Received or Completed use up their units. Rejected and cancelled returns hand their units back, so a customer whose return was auto-cancelled can request those items again — as long as the window is still open.
Each return on an order gets its own record and its own reason, refund and credit note. Only one return can be in progress on an order at a time.
Approved returns close themselves
If a customer gets a return approved and then never posts the goods, it doesn't sit open forever.
Approved returns are automatically cancelled once your ship-back deadline passes (14 days after approval by default). This runs once a day.
Safeguards:
- A return is never auto-cancelled once a reverse pickup is booked or the customer has supplied a tracking number.
- The customer is emailed to say the return was closed because the items weren't sent back in time.
- Because cancelling releases the items, the customer can start a fresh return if the window is still open.
The customer sees their ship-back deadline on their order page, along with instructions to send everything back with tags and accessories.
Emails sent automatically
Each of these can be switched off individually in your email settings.
| When | Who gets it |
|---|---|
| Return or exchange requested | Customer, and you |
| Approved | Customer — includes your notes and the return label if there is one |
| Exchange approved | Customer — separate wording explaining nothing is owed |
| Rejected | Customer — your notes are the reason they see |
| Completed | Customer — refund amount and method |
| Reverse pickup booked | Customer — courier and tracking |
| Auto-cancelled | Customer — explains the deadline was missed |
| Refund processed | Customer |
No email goes out when you mark a return "Received", or when you cancel one manually. If you want the customer to know, tell them at approval or completion.
What your customer sees
Your customer opens their order and gets exactly one action, decided by the rules above:
- Cancel, if the order hasn't shipped
- Nothing but a message, while it's in transit
- Return, once delivered and eligible
Their request form asks for items, quantity, a reason, an optional description (up to 1000 characters), and — only for defective, wrong item and not-as-described — up to 5 photos of 8 MB each.
They immediately see an estimated refund, calculated exactly as yours will be.
Afterwards their order page tracks the return through Requested → Approved → Received → Completed, showing your notes, the refund figure, the ship-back deadline, pickup tracking, and a credit note link once refunded.
Customers cannot cancel their own return request. Only you, or the automatic deadline, can close one.
Common questions
A customer says the item is non-returnable but they weren't told. Check the product's final sale setting. Also check whether their order predates a policy change — the terms are frozen at purchase, so an older order may carry different rights than your current policy.
I set the return window to 0 to stop returns and now everything is returnable. 0 means unlimited. Switch Allow returns off instead, or mark individual products final sale.
I shortened my return window but old orders still accept returns. Expected. Policy is frozen at purchase; the change applies to new orders only.
I approved a return but stock hasn't changed. Stock is restored when the goods arrive back — at Received — not at approval.
The Process Refund button isn't doing anything / isn't there. The return must be Approved, Received or Completed, and not already refunded. If it's an exchange, there is no refund by design.
The customer wants a bigger refund than the system offers. You can lower an amount, never raise it above the calculated figure, and never above what was actually captured. Shipping is not refundable on returns.
Why was the coupon only partly refunded? Order-level discounts are shared across items proportionally, so returning part of an order refunds part of the discount.
A return I approved disappeared into "Cancelled". The ship-back deadline passed without the goods being posted or a pickup booked. The customer was emailed and can request again if the window is still open.
Can I raise a return on the customer's behalf? There's no button for this in the dashboard today. Ask the customer to raise it from their order page.
The refund shows as processed but the customer hasn't received it. Card refunds typically take 5-7 business days to appear. Use Refresh on the refund card to re-check the gateway status.