Returns and credit notes
B2B returns are not consumer returns. There is usually no statutory right of withdrawal, the goods are often specific to the buyer, and the question is rarely "may they send it back" but "what do we do with it now". A return here is a record with its own lifecycle and its own number, not a status on the order.
The lifecycle
A return has four states and its own number from the return range:
registered ──► received ──► completed
│
└──────────────────────► rejected
| State | Meaning | Timestamp |
|---|---|---|
registered | The customer announced it. Nothing has arrived | registered_at |
received | The goods are on your bench | received_at |
completed | Settled — the resolution is recorded | completed_at |
rejected | Refused | rejected_at |
Keeping registered and received apart is the point. In B2B the gap between
"the customer says it is coming back" and "we have it" is where returns
disappear, and a single status cannot show you the difference.
Register a return
- Open the order under Order Management › Orders.
- Go to the Fulfilment tab and select Register return.
- Enter the positions and quantities coming back. Leave them out and everything still returnable is registered.
- Enter the reason.
- Set the restock flag per position, or once for the whole return.
- Confirm.
The return gets its own number and appears under Order Management › Returns, which is where the returns queue is worked — separately from orders, by the people who handle goods rather than the people who take orders.
The restock decision
Restock says whether the goods rejoin sellable stock. It is a real decision, and it is per position:
| Situation | Restock |
|---|---|
| Sealed, undamaged catalogue article | Yes |
| Opened, needs inspection first | No — book it in after the bench clears it |
| Damaged, or a hygiene or safety article | No |
| Configured or made-to-order | No — it is not sellable to anyone else |
Your tenant sets the default; the return can override it per position. Turn the default off if everything goes to a quarantine bench first — that way the decision is recorded deliberately rather than assumed.
Restocking is a stock booking, not an automatic side effect. When a return
completes, the positions marked for restock are reported, and the goods are
booked back in — visible afterwards as a restock movement in the ledger. See
Manage stock day to day.
Work the queue
Order Management › Returns lists every return with its status, reason, resolution and dates, filterable by status. Each row can be advanced:
- Receive when the goods arrive.
- Complete with a resolution when it is settled.
- Reject with a resolution when it is refused.
The Cockpit dashboard carries an Open returns counter covering registered
and received — the two states that need someone to act.
Resolutions
A completed return and a rejected one do not share a list of outcomes; settling a return and refusing one are different decisions. The resolution is what you tell the customer and what your accounting acts on, so record it even when it seems obvious.
Completing a return books quantity_returned on the positions. That number is
what makes the order's history readable a year later: ten ordered, ten shipped,
four returned.
The money
refunded means refunded in full. There
is no partial refund on a payment record, so a credit for four of ten lines is a
bookkeeping matter, not a button here.Plan the handover explicitly: whoever completes the return has to tell whoever raises the credit note. A customer-visible comment on the order is the cheapest way to make that handover leave a trace.
What to check
- The return appears under Order Management › Returns with the right status.
quantity_returnedon the order's positions matches what came back.- Positions marked for restock show a
restockmovement under Order Management › Stock › Movements, and the stock level went up. - Positions not marked for restock did not move stock.
- The order's History tab records the registration and the settlement.
Next
- Manage stock day to day — where restocked goods land.
- When stock numbers drift — returns are a common cause.