Skip to main content

Understanding quality control (Returns V2)

Quality control lets you verify the condition of returned items before a return is processed, using a 3PL integration, a CSV upload, or the API. This article covers approval logic, condition mapping, unexpected items, and late results.

Written by Guido Kaspers

This article explains how quality control works in Swap Returns, and how to set it up so returned items are inspected before a return is processed.

Quality control (QC) lets you verify the condition of returned products before processing them, so you don't refund or restock items that arrived damaged, incomplete, or wrong.


Why use quality control

Without QC, a return is processed on trust. QC catches three problems before money or stock moves:

  • Items that arrive damaged or unsellable

  • Items that are not what the customer said they were returning

  • Short quantities, or an empty parcel

You decide which conditions are acceptable, and Swap approves or holds each return accordingly.


How quality control works

Your warehouse or 3PL inspects each returned item and sends the result to Swap. There are three ways to send those results:

  • A 3PL integration – your 3PL sends condition updates to Swap automatically. Mintsoft is the supported provider.

  • A CSV upload – you upload inspection results in bulk. Use this where your 3PL has no API.

  • The quality control API – your warehouse system pushes results to Swap as items are scanned.

However the results arrive, Swap then:

  1. Matches each result to the correct return (RMA)

  2. Applies your approval rules

  3. Updates the QC status on each item, and on the RMA as a whole

Quality control has to be switched on before any of this applies — use Enable quality control under Quality control settings on the Quality control page. Whichever method you then use, you need to map your provider's own condition names onto Swap's conditions before results will apply correctly — see Condition mapping below.


Approval and processing

Approval logic

You define which conditions are acceptable. Each condition — Sellable, Damaged, Wrong item and so on — is mapped to either approved or not approved. Only approved items move forward in the return.

Manual or automatic processing

RMA processing on the Quality control page controls what happens once results are in:

  • Manual — the warehouse's recommendation appears on the RMA screen and you decide how to handle the return.

  • Automatic — the return processes on its own when the warehouse marks the item as sellable. If processing fails, the RMA moves to Needs review.

With Automatic selected, Allow partial RMA processing decides whether Swap part-processes a return when only some items are approved. See Understanding partial Quality Control processing.

Pending and final statuses

An item waiting on inspection sits at Pending. When the result arrives, Swap replaces it with the mapped condition.


Special cases

Case

Behaviour

No QC update received

If no result arrives within 72 hours, the item is marked Missing

Quantity mismatch

If fewer units arrive than expected, the outstanding units are marked Missing

Unexpected SKU

Shown in the "Unexpected" tab. See Unexpected items below

Some items passed, some with no update, none failed

RMA is marked Partial after the timeout. Behaviour depends on the Allow partial RMA processing setting.


Unexpected items

If your warehouse reports a SKU that isn't on any open return for that order, Swap doesn't discard it. The item is recorded against the order as an unexpected item, and a return note is added to every open return on that order so you can see that something arrived that wasn't expected. Unexpected items appear in their own table in the dashboard rather than on the RMA itself.

This usually means one of three things: the customer sent back something they didn't declare, the warehouse scanned the wrong SKU, or the item belongs to a different return.


Late quality control updates

A result that arrives after an item has already timed out to Missing is still used, as long as the return hasn't been processed yet:

  • Return not yet processed — the item moves from Missing to the condition your warehouse reported, and a note is added to the RMA recording that the update arrived after the timeout.

  • Return already processed — the item keeps its Missing status, and a note records the late result. Nothing is reprocessed, so the state at the time of processing stays intact.

Where an item covers more than one unit, it stays Missing until results for the full quantity arrive. Partial progress is kept in the meantime, so a second upload or API call completes it.


Condition mapping

Your 3PL uses its own names for the condition of a returned item. Condition mapping tells Swap what each of those names means, so your approval rules apply consistently no matter what vocabulary your warehouse uses.

The Condition mapping table sits on the Quality control page and is shared across all three methods. It has three columns you work with:

  • Provider condition — the name your warehouse or file uses

  • Store condition — the Swap condition it maps to

  • Quality approved — whether an item in that condition passes QC

Rows appear automatically once an integration is connected or a file is uploaded, and you can add your own with Add new condition.

Store conditions

Every provider condition maps onto one of these:

  • Sellable – the item is in good condition and can be resold

  • Damaged – the item is not fit for resale

  • Missing – the item was expected but not received

  • Wrong item – the item does not match what was ordered

  • No value – the item has no resale or credit value

  • Pending – the condition is not yet known

Quality approved

Quality approved decides what happens to an item in that condition:

  • Yes – the item passes QC and can be refunded, credited, or exchanged

  • No – the item is held for review

Only approved items move forward, whether the return is processed manually or automatically. Add as many mappings as your provider has condition names.

Did this answer your question?