A practical retail guide
How to migrate a product catalog between POS systems
Export the right records, map products and variants, then prove the receiving catalog is ready for your stores.
To migrate a product catalog, first define which products and variants belong in the destination. Keep the original export, map fields and identifiers, test representative records and reconcile the receiving catalog before relying on it for sales or stock updates.
Download the product catalog field-map template to record source fields, receiving decisions and acceptance checks. It uses fictional examples and destination concepts rather than vendor-specific headers. It is a planning aid, not an import-ready file for every POS.
1. Define the catalog you intend to move
List active products, archived products, parent styles and sellable variants separately. Decide whether an archived product must remain available for historical lookup, become sellable or stay outside the new POS. Confirm stores, warehouses, sales channels and any existing receiving records.
A catalog with 100 styles and 300 variants has two different counts to reconcile. The source may export one row per variant or split families across files. Record the source structure before treating a row count as a product count.
2. Export and preserve the original
Use the source edition’s supported export and record its filters, included locations and extraction time. Check whether the export includes archived items and the complete record set. Save an untouched copy, then prepare working files separately.
Keep source product and variant IDs in a crosswalk. They let you trace a receiving record back to the source; they are not automatically valid IDs in the destination. Review image access separately so the new catalog does not rely on links that disappear when the old account closes.
3. Clean identifiers without changing their meaning
Inspect duplicate SKUs, missing barcodes, inconsistent categories and variant families that use different names for the same option. Treat barcode and SKU columns as text where leading zeros matter. Agree how missing or conflicting values are handled rather than silently replacing them.
Avoid collapsing products solely because they share a name. Two pieces can have the same description and still be distinct sellable items. The SKU and barcode guide and data-cleaning guide explain these checks in more detail.
4. Map products and variants
| Source evidence | Receiving decision | Test |
|---|---|---|
| Product family and variant identity | Intended parent product and sellable combinations | Find the full family without duplicate listings |
| SKU and barcode | Supported identifier fields, stored with their full text | Scan the intended variant |
| Category and supplier | Approved field, collection or retained reference | Inspect a category and vendor example |
| Price, cost and unit | Required value, currency and unit context | Compare expected selling and purchasing values |
| Active/archive status | Intended selling availability | Check what staff and online shoppers can see |
| Image reference | Permitted asset and destination relationship | Open the image on the receiving product |
Use the current receiving template for the selected method. Shopify product CSVs and Square’s item library have different rules. Do not rename fields in a source file intended for a tool that requires the original export unchanged.
5. Test existing-record behavior
Choose a family with several variants, a leading-zero barcode, an archived item, an image and a product already in the destination. Write the expected create, match or update operation for each. Load the sample with the current method, inspect the result and record rejects.
For a fictional shirt, source style A17 has sizes S and M with SKUs 0017-S and 0017-M. The receiving catalog should retain both combinations and their full identifiers. If size M already exists, decide how it is matched; creating another copy is not an acceptable substitute.
6. Load inventory through the right workflow
Catalog identity must be established before location stock can be matched reliably. Preserve the location map and stock-state meaning. A quantity labeled available is not necessarily the same as on hand, and an operation that adds stock behaves differently from one that replaces it.
For Shopify, review its separate inventory CSV guidance. Customer contacts also have their own method. The product catalog file should not be treated as evidence that customer history or liabilities moved.
7. Reconcile and cut over
Compare expected parent products, variants, matched records, rejects and exclusions. Inspect identifiers, prices, selling availability and images as well as counts. Then reconcile inventory by location against the agreed snapshot and account for later trading changes.
Keep a receiving baseline and a recovery plan for partial imports or retries. Retain approved exceptions in the handover. The sample acceptance report shows how a mismatch remains visible rather than disappearing into a total.
For managed preparation and testing, see product catalog migration services or check my migration.
Move with a clear plan.
Retail data migration for $2,999, with scope confirmed before booking.
Check my migration