Returns
The return flow, quantity limits, and how the refund value is worked out.
User guide
The return flow, quantity limits, and how the refund value is worked out.
A return is the record that goods are coming back, and what they are worth. It is separate from the money: paying the customer is a refund, raised against the return.
Who can do this: the counter roles in full — deliberately including the Cashier, so a till that can take an order can also take it back.

Requested → Approved → Completed, with Rejected and Cancelled as the offramps. Only orders that completed can be returned. Two moments matter:
Rejecting or cancelling releases the customer's returnable quantity — those units can be returned again on a fresh request. A return with a live refund on it cannot be cancelled or rejected until that refund is cancelled or failed first.
Every line is bounded: requested quantity ≤ what the order sold minus what earlier returns already took, counted across every non-rejected, non-cancelled return of that order. The refusals name the numbers — "the order only held M", "K have already been returned, so R remain". Two clerks racing to return the same goods cannot both win.
The server values every return — the page shows a priced preview and does no arithmetic of its own. Per line: the returned units' share of what was actually paid — unit price, minus their share of any discount, plus their share of exclusive tax. Tax that was included in the price is reported but never added again. Two merchant levers reduce the total: a restocking fee and a return fee (neither can be negative), and the result floors at zero. Shipping and order-level charges are never refunded.

What happens to returned stock · Refunds · Editing & cancelling orders