Migrating WooCommerce Product Variants and Metafields: Common Data-Mapping Pitfalls

WooCommerce and Shopify look similar on the surface — both sell products with options, images, and custom fields. Under the hood, they model data very differently. That gap is where most migrations quietly break: variants collapse, custom attributes vanish, and product pages lose the exact details that made them rank and convert.

If you’re planning a move, here’s where the data actually gets lost — and how to prevent it.

Why WooCommerce Variants Don’t Map One-to-One

WooCommerce treats variations as child products under a parent, with attributes stored loosely and often reused inconsistently across the catalog. Shopify enforces a stricter model:

  • Maximum 3 options per product (e.g. Size, Color, Material)
  • 100 variants per product limit (higher on newer plans, but still capped)
  • Every variant must be a complete combination — no partial or “hanging” attributes

So a WooCommerce product with 4+ attributes or thousands of generated combinations won’t transfer cleanly. It has to be restructured, not just copied.

The Most Common Variant Mapping Failures

WooCommerce sourceWhat breaks on importFix before migrating
4+ attributes per productExceeds Shopify’s 3-option capConsolidate or split into separate products
Global attributes reused looselyVariants merge or mismatchNormalize attribute names first
Custom fields (ACF, meta)Dropped silentlyMap to Shopify metafields explicitly
Per-variation imagesOnly one image mapsRebuild variant-image assignment
SKU gapsInventory desyncsAudit and backfill SKUs pre-export

Metafields: The Silent Data Loss

Most WooCommerce stores rely on custom fields — ingredients, specs, warranty info, GTINs — added via ACF or custom meta. These almost never migrate automatically because there’s no default destination for them.

On Shopify, they belong in metafields, but you have to define the structure yourself.

How to Preserve Custom Fields Correctly

  • Create metafield definitions (namespace, key, type) before import
  • Map each WooCommerce field to a matching Shopify metafield
  • Validate data types — a date, a rich-text block, and a number all need different metafield types

Skip this and you lose structured data that powers filtering, SEO schema, and product-page detail. This is exactly the kind of restructuring where teams lean on a specialized service to handle a Woocommerce to Shopify migration, since the mapping logic is far more involved than a simple CSV export-import.

A Pre-Migration Checklist That Saves You

  1. Audit attributes — list every attribute and how many products exceed 3 options.
  2. Inventory custom fields — export a full list of meta keys in use.
  3. Define Shopify metafields first — build the schema before touching product data.
  4. Test with a sample — migrate 20–30 products, verify variants and metafields render correctly.
  5. Check SEO-critical data — GTINs, specs, and schema fields must survive the move.

Key Takeaways

Variant and metafield loss isn’t a “bug” in the migration — it’s a data-modeling mismatch that shows up only after you’ve already imported. Map the structure before you move the data, validate on a sample set, and you’ll avoid the post-launch scramble of rebuilding product pages by hand.