Counter · returns
Take it back without breaking the books.
A return touches three things at once — the refund to the customer, the stock on your shelf, and any royalty or management fee that rode on the original sale. Process it from the order and all three stay in sync automatically.
1 · Start from the order
Returns are always processed against an existing order — there's no standalone “new return” button, because a refund only makes sense relative to what was sold. Open the order (Sales → click the row, or search the order number) and click Process return.
2 · Pick what's coming back
The order's line items appear as a checklist. Tick only the lines being returned — a customer can bring back the frame but keep the lenses. Each ticked line opens three controls:
| Control | What it does |
|---|---|
| Qty | How many units of that line are coming back. Capped at the original quantity — you can't return three of something they bought two of. |
| Unit refund (₹) | Defaults to what they paid per unit. Lower it if you're refunding less than the original price (e.g. minus a worn-discount). |
| Restock? | Yes puts the unit back into branch stock. Damaged writes it off — it leaves the order but never re-enters inventory. |
Each line shows its running refund (unit × qty) so you can see the total build up as you go.
3 · Refund method, fee & reason
Below the lines, set how the money goes back and why:
| Field | Notes |
|---|---|
| Refund method | Cash, UPI, card, bank transfer, store credit, or Exchange only. Exchange only records the return without paying any cash back — for when they're swapping for something else. |
| Restocking fee (₹) | Optional. A flat deduction from the refund — for opened contact-lens boxes, custom-cut lenses, etc. Subtracts from the gross to give the net refund. |
| Reason | Free text — “wrong frame”, “Rx changed”, “defective”. Travels onto the inventory movement note so the audit trail explains itself. |
| Notes | Optional internal detail for the team. |
A totals strip on the right shows the math live — gross refund minus restocking fee equals the net refund the customer actually receives.
4 · Confirm
Click Process return against ORD-…. The button stays disabled until you've ticked at least one line, so you can't submit an empty return. You land on the return's own page with its number (RET-2026-NNNNNN).
What the system does behind the scenes
One click, several ledgers updated — this is the part that's easy to get wrong by hand:
- Stock restored — every line marked Restock: Yes goes back into branch inventory with an adjustment-increase movement that references the return. Lines marked Damaged are left out.
- Refund recorded on the order — a negative payment posts against the original order, so its payment ledger (and your cash position) reflects the money going back out. Exchange-only returns skip this, because no cash moves.
- Inter-org accruals unwound — if the original sale generated a FOFO royalty, a COFO management fee, or a FICO capital charge, the matching portion is reversed in proportion to what you refunded. Franchisees aren't charged royalty on a sale that came back.
- Owners & managers notified, and the return surfaces back on the original order page and in the Returns log.
Next up
Recording expenses →Refunds, restocking fees, and day-to-day spend all land in the same DSR and finance reports.