Combining duplicate SKUs
When two or more SKU records really describe the same product, Combine SKUs folds them into one — moving every channel mapping and all history onto the code you keep.
What Combine SKUs does
Over time, a catalog accumulates duplicate SKU records that all point at the same real-world product. Each one tends to carry only a fragment of the truth — one has the Amazon mapping, another the Shopify mapping, a third some purchase-order history. Reporting splits, on-hand looks wrong, and the SKU list gets cluttered.
Combine SKUs fixes that in one confirmed action: you select the duplicates, pick the one to keep as the primary, and the rest are merged into it. Every channel mapping and all history move onto the primary, and the extra records are retired. The primary ends up carrying the complete, combined record.
This is a catalog-hygiene tool for collapsing accidental duplicates of a single product. It is not for merging two genuinely different products, or for combining the stock of distinct items.
When you’d reach for it
The common thread is the same: these are all really one product — make them one, without losing the history or the channel connections.
Duplicates from a CSV import
You imported a product list, then re-imported a corrected version — or the same item came in twice under slightly different codes (WIDGET-100 and WIDGET100). Now there are two records for one widget.
The same product from two channels
A product comes in from Shopify and from Amazon and lands as two separate primary SKUs instead of one primary with two channel aliases. Each record carries only part of the picture.
Leftovers from a migration
Coming from a spreadsheet or another inventory tool leaves near-duplicate rows that all describe one item, with sales and cost history split across them.
Codes that drifted over time
A product was relaunched or repackaged and a new code appeared next to the old one — GADGET-200 and GADGET-200-V2 — without the old one being retired. Both accumulated some history.
If you’re still getting your catalog in shape before importing, start with Getting your SKUs ready — Combine SKUs is the cleanup tool for the duplicates that page describes.
How a combine works
You choose a primary — the SKU you want to keep. The primary owns the product going forward; the others are folded into it and retired. Everything the retired SKUs referenced is re-pointed onto the primary:
Every channel mapping (Shopify, Amazon FBA/FBM, Walmart, eBay aliases)
Order and inventory ledger history
Purchase-order, goods-receipt, and transfer lines
Inbound shipment lines and supplier links
Cost history and bin-location assignments
Build and unbuild (assembly) history
What this looks like in practice
Before: WIDGET-100 ← has the Shopify mapping + sales history
WIDGET-100-AMZ ← has the Amazon FBA mapping + a few orders
WIDGET100 ← an empty duplicate from a CSV import
Combine, keeping WIDGET-100 as primary:
After: WIDGET-100 ← now carries every mapping and all history
(the other two are retired)If a channel mapping already exists on the primary, the duplicate’s copy is skipped rather than duplicated — the primary keeps the one it already has. The dialog tells you how many mappings and ledger entries will move before you confirm.
What can’t be combined — and why that’s good
Combine only retires SKUs that are empty and idle. The primary you keep can be anything — but each SKU you fold into it is checked first. The merge is blocked, and tells you exactly which SKU and why, if a folded-in SKU:
It still holds on-hand stock.
It has marketplace fulfillment inventory (FBA, AWD, or WFS).
It’s the finished good of a recipe (Bill of Materials) — active or not.
It’s used as a component in another product’s recipe.
It’s named in an open physical count.
It’s on an in-flight transfer or an open inbound shipment.
These guards exist so a combine can never quietly destroy real structure. If a SKU is blocked, it means it isn’t actually a spare duplicate yet — resolve the stock, recipe, or in-flight workflow first, then combine. The primary is never at risk; only empty duplicates are retired.
Combine or deactivate?
Both retire a SKU, but they answer different questions.
Combine
Use it when two or more records are the same product and you want their mappings and history merged onto one code. The retired duplicates are deactivated as part of the merge, and the primary carries the combined record.
Deactivate
Use it to retire a single SKU on its own — a discontinued product, an imported listing you don’t stock, or a truly empty test SKU — without merging it into anything. How deactivating works.
Both are reversible. Combine deactivates the merged-away SKUs rather than hard-deleting them, so your history stays intact — consistent with the rest of Carpe Inventory IQ, which has no permanent delete by design.
Step by step
- 1
On the SKUs page, select the two or more records that are the same product — check the box on each row.
- 2
In the bulk action bar at the top, click Combine.
- 3
In the dialog, choose which SKU to keep as the primary. The others will be merged into it.
- 4
Review the summary — how many channel mappings and ledger entries will move, and any blockers. If a SKU can’t be combined, the dialog explains why and Combine stays disabled.
- 5
Click Combine into primary. The mappings and history move, the duplicates are retired, and the list refreshes.
Combining requires a role with permission to remove SKUs (for example, Owner or Manager). If the Combine button isn’t showing, the role may not include it.
Cleaner catalog, accurate reports. Combine the duplicates you already have, and let the SKU alias system keep new ones from forming.