Returns & refunds
What a refund does and does not do to stock, how a return brings goods back onto the shelf or scraps them, what a kit return looks like, and how refunded money reaches your revenue figures.
A refund is money moving. A return is goods moving. Foundry keeps the two apart on purpose, because a storefront only ever tells you about the first one.
When BigCommerce or Shopify marks an order Refunded, all Foundry learns is that money went back to the customer. It does not learn whether the goods came back, whether they were fit to resell, or which items the refund covered. So a refund never changes stock on its own. What it does is open a return for someone to confirm, and that return is what puts units back on the shelf.
What a refund does
When an order’s status becomes Refunded or Partially refunded, from a channel or by hand:
- Nothing moves in inventory. If the goods had already shipped, their stock left with the shipment and stays gone until a return is received. On a full refund, holds on anything that had not shipped yet are released, as a cancellation would. On a partial refund they stay, because Foundry cannot tell which items the refund covered, and a notification asks someone to look.
- A draft return opens for the items that shipped, and a notification points at it. Nobody is expected to guess whether the box is on its way: the draft is a prompt to review, not a claim that anything is coming.
- The refunded amount is recorded on the order, where the channel reports it. Revenue figures count the order net of that amount. See Refunds and your revenue.
An order gets one draft from a refund. A second refund on the same order, or a refund on an order that already has an open return, does not open another.
The life of a return
A return is a list of items expected back from one order, with a number like RTN-00012, and it passes through four states.
| State | Meaning |
|---|---|
| Needs review | Opened automatically by a refund. Someone should decide what, if anything, is actually coming back. |
| Awaiting return | Confirmed. The goods are expected. These are the returns the put-away list prints. |
| Received | Every unit has been dealt with, restocked or scrapped. |
| Cancelled | Nothing is coming back. Stock is untouched. |
You can also open a return by hand from the order page, for a customer who is sending something back without a refund having been issued first. A hand-opened return starts at Awaiting return.
Reviewing a draft
A draft lists everything on the order that shipped and is not already on another return. Edit it down to what the customer is actually sending, then Confirm. If nothing is coming back, Cancel it.
Receiving against a draft without confirming it first is fine; it moves to Awaiting return on the way.
Receiving
Receiving is done per line, in two columns: restock and scrap.
- Restock puts units back on hand and writes a
RETURNmovement against the order, so the stock timeline shows exactly where the units came from. They land in the SKU’s primary bin unless you choose a bin, and you can send them to Unassigned to sort out later. - Scrap records that the units came back but are not going back on the shelf. No stock moves, and the return line is still accounted for.
You can receive in more than one pass. A return stays at Awaiting return while any units are outstanding and becomes Received when none are.
Closing short
If a customer sent back fewer units than expected and the rest are never coming, Close the return. What was received stays received; the outstanding units are simply dropped. Nothing is restocked on a close.
What can be returned
Only what shipped. A return is built from the order’s committed holds, the ones whose stock actually left, so a line that was cancelled before shipping or is still waiting on a build has nothing to return.
Two consequences follow:
- A kit comes back as its parts. A bundle holds no stock of its own; its components do. So a return on a kit order lists the components, grouped under the kit, and the return page shows how many whole kits that amounts to. You can restock a kit’s worth of parts or scrap one damaged component and restock the rest.
- Drop-shipped items are never returnable here. They never entered your warehouse, so there is nowhere for them to return to. A drop-ship return is between you and the supplier.
Units already claimed by another return on the same order are subtracted, so two returns cannot both bring back the same unit.
Where returns show up
- Order page. A card lists the order’s returns and their state, and offers to open a new one on any shipped, completed or refunded order.
- Returns list. Every return, filterable to open, received, or all, with search by return number, order number, SKU or product name. Awaiting returns can be printed as a put-away list: each SKU, the quantity expected and the bin it goes back to, walked in bin order so whoever pushes the returns cart visits each location once.
- Product stock. A SKU with units on an open return shows N expected back from returns, with links, so you know stock is on its way before it arrives.
- Activity history. Restocking writes a
RETURNmovement, labelled Customer return, into the product’s timeline with its running balance.
Refunds and your revenue
An order’s total is what the customer paid at checkout, and Foundry never rewrites it. What it records alongside is how much has since been refunded, which is a running figure the channel reports:
| Channel | Where the figure comes from |
|---|---|
| BigCommerce | the order’s refunded amount |
| Shopify | the sum of the order’s successful refund transactions |
| WooCommerce | the order’s refund entries |
| Medusa | the order’s refunded total |
| Throttle | the order’s refunded amount |
Revenue and profitability reports then count each order as follows:
- Partially refunded orders count at what the customer kept paying: total less the refunded amount. The refund comes off goods, shipping and tax in proportion to what each was of the payment, and only the goods and shipping parts were ever revenue.
- Refunded and Cancelled orders are left out entirely, whether or not the channel recorded an amount. The status is the operator’s word that the sale did not stand.
- Cost is untouched. A refund lowers revenue; it does not put goods back. Restocking a return puts the units back on hand; it does not rewrite what the sale cost.
The order page shows the refunded amount beneath the total, with the net figure, and the orders list shows the net with the paid and refunded amounts on hover.
One thing to know about BigCommerce: it lets staff set an order to Partially refunded without recording a refund against it, which happens when the money went back through PayPal or store credit outside the platform. Such an order has no amount to subtract and counts in full.
Permissions
| Action | Needs |
|---|---|
| See returns | orders.read or warehouses.read |
| Open, edit, confirm or cancel a return | orders.write |
| Receive units (restock or scrap) | stock.adjust |
| Close a return short | stock.adjust or orders.write |
Related
- Stock reservations & holds — why a shipped order’s stock is gone, and what a committed hold means
- Bundles — why a kit is returned as its components
- Activity history & stock timeline — the
RETURNmovement and its running balance - Roles & permissions — the permissions above in full