Inventory the product data you actually have
Identify the authoritative source for each field: the current store, a stock system, supplier feed or product-information system. If two systems disagree, assign a decision owner before transforming the data. Keep a dated source export and document its scope, including active, draft and archived records.
Count parent products, sellable SKU records, option combinations, image references and categories separately. Record custom fields, units, price rules, stock locations and relationships that the new store must preserve. Do not assume a standard product export contains all linked data.
Download the original product-data migration workbook. It includes a fictional catalogue, field-mapping worksheet and reconciliation/exception example. It is a planning and review file, not a Shopify or WooCommerce import schema. Translate its fields into the documented format of your actual importer before uploading anything.
Map source fields to the new platform
Record source field, destination concept, data type, transformation, blank-value rule, validation and owner. Confirm the destination using a sample export or current importer documentation. Similar column headings do not always mean the same thing.
| Data | Mapping question | Acceptance check |
|---|---|---|
| Parent identity | What groups related variants into one product? | Each variant belongs to the intended parent |
| SKU or other identifier | Which stable key creates or updates the record? | Leading zeros preserved; no unintended duplicate or changed key |
| Options | Which attributes define a sellable combination? | Allowed values and all required combinations exist |
| Price | What currency and tax basis does this value use? | Display and checkout use the approved amount and basis |
| Stock reference | Which item and location owns availability? | Correct SKU/location relationship and agreed snapshot time |
| Images | Which asset belongs to parent versus variant? | Accessible file, correct ordering, context and variant association |
| Units and attributes | Are values stored as text, numbers or defined options? | Units and meanings survive transformation |
| URL and SEO fields | What stays, changes or is intentionally retired? | Destination, metadata, canonical and internal links checked |
Keep product and variant identifiers distinct
A product can have several sellable variants. A parent identifier is not interchangeable with a variant SKU, and a database ID from the old platform may have no meaning in the new one. Keep a source-to-target key map rather than assuming IDs survive.
Treat identifiers such as 0017 as text. Confirm whether the import creates records, updates records or skips unmatched keys. Test the chosen mode on a small controlled sample before a full run.
The WooCommerce core CSV documentation describes its supported columns, parent/variation relationships and matching rules. Those rules depend on the importer and version; do not apply instructions for a separate paid extension as if they described every WooCommerce import.
Decide what blank means
A blank can mean unknown, intentionally empty or “keep the existing value”. Those meanings need different handling. Record the rule for each field and send unresolved values to an exception list.
For example, Shopify's CSV guidance distinguishes a non-required column omitted from an overwrite import from a column included with a blank value. It also warns about dependencies between option and variant columns. Do not remove apparently empty columns without checking what the selected import mode does.
Check images and linked data
A CSV containing an image URL does not contain the image file. Shopify's export documentation explains why source images must remain publicly accessible during an import that retrieves them. Preserve authorised source assets until the destination has acquired and verified them.
Check image-to-variant associations, main-image ordering and alt text as well as whether a URL opens. Keep compatibility references, product documents and custom stock relationships in the mapping inventory; a normal product row may not carry them automatically.
For automotive catalogues, include the relationships needed for vehicle and exact part-number search in the data map. A fitment selector cannot restore relationships that never reached the destination.
Import a representative sample first
Choose the sample for complexity, not simply the first few rows. Include a simple product, a product with multiple options, a product with several images and a deliberately incomplete record. Add any catalogue-specific cases, such as downloads, bundles or compatibility data, using documentation for your chosen tools.
Our workbook uses two fictional parent products:
- P001: Desk organiser, one sellable SKU 0017.
- P002: Notebook, two variants, 0021-BLUE and 0021-GREEN.
The source therefore contains two parent products and three sellable SKU records. The green notebook's image is deliberately missing and marked Blocked. Example asset URLs use example.com as placeholders; they are not downloadable product photographs. Resolve the exception or agree an explicit approved exclusion before treating the sample as launch-ready.
In the fictional target result, two parents exist but only two of the three expected SKU records are present. Parent count matches while sellable-record count is short by one. That is a failed reconciliation requiring investigation, not an acceptable “almost complete” import.
Reconcile counts and inspect exception records
Record the source baseline, expected target, actual target and difference for the same scope. Separate intentional exclusions from failed or skipped records. Keep importer messages with the affected keys and assign each exception an owner and next action.
Then open representative records and test behaviour: select each option, verify its price and image, inspect availability and add the intended variant to the basket. A count cannot reveal a swapped image or a variant linked to the wrong parent. Compare the approved source values with the actual target export or interface.
Retest corrected records and their relationships before repeating the full import. A repeated full upload can obscure the original problem or create duplicates if matching rules differ from expectations. Preserve the transformation version and import mode used for each run.
Map product URLs and test destinations
List each existing product and category URL with an intentional outcome: retain, redirect to a genuinely relevant successor or retire through an agreed process. Avoid sending unrelated retired products to the homepage merely to remove a missing-page report.
Test the old URL's response, the final destination, redirect chains, canonical, indexability and relevant internal links. Compare page purpose as well as the slug. Check whether changed option or variant identifiers break campaign, feed or integration references.
Use our website redesign and URL migration checklist for the wider page inventory and launch checks. This catalogue checklist complements it with product-level evidence.
Run staff checks and a recovery rehearsal
Ask staff to find, edit and fulfil representative products in the test environment. Confirm who owns the final stock snapshot, changes made during the migration window and any final catch-up import. Agree launch blockers and who can accept a documented exclusion.
Rehearse the recovery route in an appropriate environment. Confirm what would be restored, who can authorise it and how orders or stock changes received after the snapshot would be handled. A catalogue backup alone does not settle those operational questions.
After launch, monitor import errors, broken product routes, missing images and order exceptions with named owners. Use the Birmingham ecommerce buying guide when comparing delivery proposals, and the platform comparison guide when the target platform is still undecided. To discuss implementation, see ecommerce website design in Birmingham.
If platform selection is still open, use the UK Shopify/WooCommerce budget alongside catalogue tests, keeping migration work and ongoing operation as separate costs.
Common questions
Why can product counts match while variants are wrong?
Products and sellable combinations are different records. Missing variants, incorrect parents or duplicated option values can leave the parent total unchanged. Reconcile both counts and test the combinations.
What should be tested before a full import?
Check identifiers, field meanings, blank-value handling, images, variants, prices, stock relationships and URLs using representative records. Inspect failed and skipped rows and retest corrections.
Is the workbook ready to upload to a shop?
No. It is an original platform-neutral planning example. Use the current schema, rules and import mode of your actual platform to produce and test an upload file.



