Returns and RMA
A return is a customer asking to send something back — for a refund, an exchange, or store credit. TitanCart handles this with its built-in returns system (RMA, “Return Merchandise Authorization”): customers request a return from their account, and you review, approve, and complete it from the Returns screen. When a return is completed, TitanCart puts the stock back and handles the money for you.
Note: Returns are different from the refunds you issue yourself on the Sales screen. A refund there is something you start on any qualifying order. A return is started by the customer and moves through an approval workflow — and the outcome can be a refund, an exchange, or store credit, not just money back.
1. Turning returns on
The returns system is off by default. Switch it on under Extensions → RMA (use the toggle, the same way you’d enable any other extension). Until it’s on, none of the return features appear — no Returns screen in the admin, no return request option for customers.
Once it’s enabled, open Extensions → RMA again to set how returns behave:
- Products are returnable by default — the master switch. Turn it off to stop accepting returns store-wide without disabling the whole extension. (Returnability is a single store-wide setting; you don’t mark individual products returnable.)
- Return period (days) — how long a customer has to request a return. The window is counted from the order date, and by default weekends don’t count (see the next setting), so a “10-day” period is roughly two calendar weeks.
- Show return period on product page — displays a small “X-day returns” badge on each product page, reassuring shoppers before they buy.
- Exclude weekends from return period — when on (the default), the period counts business days only.
- Email admin on new return request — sends you a notification whenever a customer submits a return.
2. How a customer requests a return
Customers start a return from My Account. When they open an eligible order, a Request Return button appears; their account also gains a Returns section listing every request they’ve made. The button only shows when the order actually qualifies, so customers aren’t offered returns they can’t have.
An order is eligible when:
- returns are switched on store-wide;
- the order has reached a completed, shipped, or delivered status;
- it’s still within the return period; and
- it has items that haven’t already been returned (each item can only be returned up to the quantity that was bought).
On the request form the customer picks the items and quantities to send back, chooses a reason (from the reasons you’ve defined), and selects a desired action — Refund, Exchange, or Store Credit — with an optional comment. If they choose Exchange, a product search lets them pick the replacement item(s) they’d like instead.
Note: Self-service returns are for signed-in customers — the request is tied to the account the order was placed under. A shopper who checked out as a guest without creating an account won’t see the Request Return button; handle those by creating the return yourself isn’t currently supported, so ask them to contact you and process the refund from the order on the Sales screen instead.
3. The three return actions
What the customer asks for determines what happens when you complete the return:
- Refund — the value of the returned items is sent back through the original payment gateway (the same card or account they paid with). Offline methods (Check, Cash on Delivery, Bank Transfer) record the refund for your books and you make the actual repayment yourself.
- Store Credit — the value is issued to the customer as loyalty points they can spend at checkout, converted at your store’s points-redemption rate.
- Exchange — the customer receives different product(s) instead. How the money works out depends on price (covered in section 5).
Note: Store Credit is paid out as Loyalty / Reward Points — points added to the customer’s balance that they redeem at checkout, converted at your store’s points-redemption rate. Store Credit only appears as a return option while the Reward Points feature is enabled (Extensions → Reward Points, which is on by default), so any credit you issue is always spendable. If you turn Reward Points off, customers simply see Refund and Exchange instead. See Loyalty & reward points.
4. Reviewing returns in the admin
Open Sales → Returns to see every request. The list shows each return’s ID, the order it belongs to, the customer, the reason, the requested action, the refund amount, its status, and the date. Use the status tabs (each with a live count) to focus on, say, only the Requested ones waiting on you, search by order number or customer, and page through longer lists.
Click a return to open it. The detail page gathers everything in one place:
- Return items — what’s coming back, with quantities and the total refund value.
- Customer comment — anything they added when requesting.
- Exchange replacement products — for an exchange, the items the customer asked to receive instead.
- Status history — a full timeline of every status change and note, with who and when.
- Customer — who’s returning, the requested action, the reason, and the original order total.
- Change Status — where you move the return forward (section 5).
- Admin Notes — an internal scratchpad the customer never sees.
5. The return workflow
Every return moves through a fixed set of statuses, and TitanCart only offers the moves that make sense from where it is now:
- Requested — the customer has submitted it. From here you can Approve, Decline, or Cancel.
- Approved — you’ve accepted the return (typically once the item is on its way back, or you’re satisfied it’s valid). From here you Complete it or Cancel.
- Completed — the return is done and its outcome has been carried out. This is final.
- Declined / Cancelled — the return was turned down or called off. Final.
To move a return, use the Change Status card, add an optional note for the record, and pick the next status. Each change is logged in the status history and, for approval, decline, and completion, the customer is emailed automatically. (Cancelling a return doesn’t email the customer.)
The important step is Completed — that’s when TitanCart actually acts:
- Stock is restored. The returned quantities are added back to your inventory automatically. (This is the one place TitanCart puts stock back — see the note below.)
- The action is carried out based on what the customer chose:
- Refund — the refund is sent through the original gateway and recorded as a note on the return.
- Store Credit — the equivalent reward points are added to the customer’s balance.
- Exchange — a replacement order is released for fulfillment. For an even or cheaper swap, the replacement order is created automatically (and a cheaper swap auto-refunds the price difference to the original payment method). For a more expensive swap, the customer will already have paid the difference at request time through their cart, and that replacement order — held until now so it wasn’t shipped early — is released to Processing.
Note: Completing a return is the only action in TitanCart that restores stock. Cancelling or refunding an order from the Sales screen does not put items back — so if a customer is returning goods, process it as a return here rather than just refunding the order, and your inventory stays correct. See Inventory & stock control.
6. Return reasons
The reasons customers can pick from are yours to define. From the Returns list, click Manage Reasons to add, edit, enable, disable, or delete them.
- Add a reason with a name (for example, “Wrong item received” or “Arrived damaged”) and set it Active so customers can choose it.
- Disable a reason to retire it from the request form without losing the returns that already used it.
- Delete removes a reason entirely — but only if no return is using it. If it’s in use, disable it instead.
What returns do — and don’t
Note: The returns system is off until you enable it under Extensions → RMA. Returns are started by signed-in customers on eligible orders (completed/shipped/delivered, within the return period, items not already returned) and move through a fixed workflow you control. Returnability is a single store-wide setting, not per-product. Completing a return restores stock and carries out the chosen outcome — a refund through the original gateway (offline methods recorded for your books), store credit as reward points (offered only while Reward Points is enabled, so it’s always spendable), or an exchange via a replacement order. The return period is counted from the order date, and excludes weekends by default.
Troubleshooting
- There’s no Returns screen in the admin. The returns system is an extension that’s off by default. Turn it on under Extensions → RMA; the Returns item then appears in the Sales menu.
- A customer says they can’t request a return. Check the order is completed, shipped, or delivered and still within the return period, that store-wide returns are on, and that the items haven’t already been returned. Also make sure they’re signed in to the account the order was placed under — guest orders don’t show the Request Return button.
- The return period seems shorter (or longer) than I set. The window is counted from the order date, and by default weekends are excluded, so a “10-day” period spans about two calendar weeks. Turn off Exclude weekends if you want plain calendar days.
- I can’t move a return to the status I want. Returns follow a set path — Requested → Approved → Completed, with Decline/Cancel as off-ramps — so only the valid next steps are offered. You can’t jump straight from Requested to Completed; approve it first.
- I completed a refund return but no money went back. The refund runs through the original gateway, which must still be connected with valid keys and have a completed charge to refund against. For offline methods (Check, Cash on Delivery, Bank Transfer) the refund is only recorded — you make the repayment yourself.
- How does store credit work? Store credit is paid as reward points added to the customer’s balance, redeemable at checkout at your store’s points-redemption rate. The Store Credit option only appears on the return form while the Reward Points feature is enabled (it is by default), so issued credit is always spendable; with Reward Points off, customers see only Refund and Exchange.
- An exchange’s replacement order is on hold. That’s intentional for a paid-difference exchange — the replacement waits in On Hold so it isn’t shipped before the returned item arrives. Completing the return releases it to Processing.
- The customer didn’t get a return email. Emails go out on request, approval, decline, and completion (cancelling is silent). Email also needs a working outgoing mail server — set one under Settings → General → Emails — and test with a real inbox, since placeholder addresses like name@example.com are rejected by mail servers.
See also
- Managing orders (the Sales screen) — the order workflow returns build on, including the refunds you issue yourself.
- Inventory & stock control — how stock tracking works and why completing a return restores it.
- Loyalty & reward points — the points system that store-credit returns pay into.
- Admin dashboard tour — where the Sales menu and the Extensions screen live.