Returns
Take a return in, put only resellable items back in stock, and issue the refund that follows.
You use returns when a customer sends goods back. Litestore helps you choose what goes back into stock and proposes a refund for the returned items.
Return records
Litestore keeps returns, refund requests and chargebacks as separate records, and each one has its own state.
They're separate because they represent different events that don't always happen together. Goods can come back, money can be paid out, or a bank can reverse a payment. A customer might send an item back and be denied a refund, you might pay a refund without anything being returned, and a chargeback can arrive with neither.
Because the records are separate, each one is approved, rejected or left open independently, and settling one doesn't change any of the others.
Settlement
A return starts as requested and then ends in one of these states:
approved
rejected
canceledA refund request also ends in exactly one of those three states.
You don't move a chargeback through states yourself. The payment provider writes it into the admin.
Litestore stores all of this in five records:
Return
ReturnItem
RefundRequest
RefundRequestItem
PaymentDisputeThe item records let a return or a refund cover part of an order instead of the whole thing.
Each refund request ends in exactly one state: approved, rejected or canceled. Once it has an outcome, the store rejects any further outcome.
Returns work the same way, since rejected and canceled are final states. A settled return can't be re-approved to produce a second refund, whether through a mis-click, two people working the queue at the same time, or someone reopening the return a month later.
New returns
A return starts in one of two ways: either the customer requests it, or you raise it against the order yourself.
An order can have only one active return at a time, and only delivered units that haven't already been returned can be added to it. The second rule prevents the same unit from being returned and refunded twice.
Approval and restocking
Litestore restocks the goods when you mark an approved return as received, not when you approve it. Until the goods actually arrive, an approved return doesn't change the sellable stock.
This keeps the stock figures accurate. If Litestore restocked at approval, every approved return that a customer never actually sent back would add units to stock that don't exist.
When you mark the return as received, the units go back to the location the order shipped from. Each unit adds a movement to the stock ledger, so the ledger shows later why the count changed.
Restocking
Not everything that comes back can be sold again.
If the condition you record for a returned line contains any of these words, Litestore doesn't put it back into sellable stock:
damaged
used
broken
wornLitestore also doesn't restock variants whose stock you don't track, because there's no count to add them to.
This means the condition you record when the goods arrive determines whether each unit goes back into sellable inventory, so it's worth filling it in carefully.
Refund proposal
When you mark a return as received, Litestore creates a pending refund request for the value of the returned goods.
That request is only a proposal. Someone with the financial permission still has to approve it before any money is paid out.
Sometimes the order can't be refunded at that point, for example because it has an open chargeback, has already been fully refunded, or already has a pending refund request. In those cases, the goods are still received, and Litestore skips the refund proposal. Litestore records the goods as returned and restocks them as usual, so a payment issue on the order never prevents you from receiving stock.
No refund moves money without an admin
Litestore marks a refund request approved only if it is also marked admin-approved, and approval never pays out more than the amount recorded on the request. Raising a refund and approving one are separate permissions.
Because these are separate permissions, a support agent can handle the whole return without being able to release money. They can receive the goods, restock them, and leave a refund request for someone else to settle.
Refund limit
The approved refunds on an order can never add up to more than the order total.
This isn't an interface check that someone could get around. The store itself rejects any refund that would take the order past what the customer was billed.
The limit applies across separate refunds and separate returns. It also holds when two people approve refunds at the same time, because Litestore checks the running total on the order rather than just the request being approved.
Chargebacks
Litestore stores each chargeback against its order, along with its status, its amount and its evidence deadline.
Each chargeback has an assignee from your team, so every open dispute has a clear owner.
Mismatched totals
Each order stores its totals, and it also has a payment ledger that lists the money that actually moved.
These two totals should always match. If they don't, the OrderMoneyDrift database view lists the order, and you can ask the assistant to check whether order revenue matches the Stripe payments, so a reconciliation problem shows up as soon as you look instead of at the end of the quarter.
Quick reference
| Record | When you use it |
|---|---|
| Return | Goods are coming back and you need to choose what goes back into stock. |
| Refund request | Money needs to go back, whether or not anything was sent back. Receiving a return raises one automatically, and you also raise one directly when nothing is being returned. |
| Chargeback record | You track a dispute that the payment provider has already opened. Chargebacks aren't opened or resolved here. |
Return workflow
When both money and stock need to change, receive the goods first and settle the refund afterwards.
New return
The customer requests it, or you raise it against the order. An order can have only one active return at a time, and only delivered units that haven't already been returned can go on it.
Review
When the goods arrive, mark the return as received. Litestore restocks what can be sold again and proposes a refund for the returned value.
Refund
An admin with the financial permission approves, rejects or cancels the refund request. Money and stock are updated together, and the order totals remain reconciled.
Each of these records is settled exactly once, and its state doesn't change afterwards.
Related
Orders
Orders go from payment to shipment, ship in parts when needed, and are created by hand for phone or in-person sales.
Payments
Stripe takes the payments, the transaction ledger records every money movement, and Litestore tracks disputes.
Inventory
The low stock list shows what's about to run out, each product has a reorder point, and the ledger traces every stock change back to its cause.