Skip to main content
Migration guide · product data

Moving WooCommerce variations to Shopify without losing products.

WooCommerce lets a product use as many variation attributes as you like. Shopify allows three options per product. This guide explains the limits, how each WooCommerce concept maps to Shopify, and five ways to restructure products that don't fit, with a calculator to check yours.

3options per Shopify product, such as Size, Color and MaterialShopify Admin API2
2,048variants per product, up from 100 before October 2025Shopify changelog1
6options on one listing with Combined Listings, Shopify Plus onlyShopify docs3
0"Any" variations on Shopify: every variant is a concrete combinationShopify product model

In brief

  • A Shopify product can have at most three options; the Admin API rejects a fourth with the error "Can only specify a maximum of 3 options".2
  • Since 15 October 2025 every Shopify store can create up to 2,048 variants per product, but apps still using the older REST product APIs may break above 100 variants.1
  • WooCommerce "Any" variations have no Shopify equivalent and must be expanded into one variant per real combination.6
  • Only attributes that change price, stock, SKU or image need to be Shopify options; descriptive attributes belong in metafields, and personalisation belongs in line item properties.45

How WooCommerce and Shopify model variations

Both platforms end up with the same thing at checkout, a specific sellable item with its own price, stock and SKU. They get there differently, and the differences decide how much restructuring a migration needs.

WooCommerceShopifyWhat to watch
Variable productProduct with optionsOne product in both systems.
Attribute used for variationsOption (max 3)A product with four or more variation attributes needs restructuring.2
VariationVariantPrice, compare-at price, SKU, barcode, weight, stock and image move per variant.
"Any Size" style variationNo equivalentWooCommerce matches the first variation from top to bottom;6 Shopify needs each combination listed.
Attribute not used for variationsMetafieldMaterial, origin or care details become product metafields shown in the theme.
Global attribute terms (e.g. color swatches)Option values, optionally linked to metafieldsShopify can link option values to structured metaobjects, which powers swatches and taxonomy.5
Product add-ons (engraving, gift note)Line item propertiesCollected on the product form and attached to the cart line; they do not create variants.4

The limits that matter

LimitValueSource
Options per product3Admin API error OPTIONS_OVER_LIMIT2
Variants per product2,048All plans since 15 Oct 20251
Where older apps may break> 100 variantsApps not on the GraphQL product APIs1
Options on a combined listing3 + 3Parent adds up to three options; Plus only3
Child products per combined listing60Up to 2,000 variants across children3

Combined listings are not a general fix

They require Shopify Plus, sell only through the Online Store channel, cannot be sold through POS or with subscriptions, and cannot be bundles.3 For most stores the strategies below are the practical route.

Check a product: option calculator

List a WooCommerce product's variation attributes, how many values each has, and what each one really does. The calculator counts combinations against Shopify's limits and suggests a structure. Nothing you type leaves this page.

Variation attributes0
Combinations0
Fits Shopify as is

Five ways to restructure products that don't fit

1. Keep only attributes that change something sellable

An option should exist only if it changes price, stock, SKU or image. WooCommerce stores often mark descriptive attributes such as Material or Care as "used for variations" even though every variation shares the same value. Move those to product metafields and the option count usually drops below three without any customer-facing change.

2. Merge two options into one

When two attributes always travel together, combine them: Color and Pattern become a single option with values like "Navy / Stripe". This keeps stock and price per combination intact. It works best when only some combinations exist, because the merged option lists real combinations rather than a full grid.

3. Turn personalisation into line item properties

Engraving text, gift messages, monograms and uploads don't change stock, so they don't need to be variants. Shopify themes collect them as line item properties inside the product form, and they travel with the cart line to the order.4 If a personalisation adds a fee, plan for an options app or a separate add-on product.

4. Split into separate products and link them

When one attribute really defines a different item, such as Fit (Regular, Slim) or Model, split the product and link the siblings on the product page with a metafield or a swatch row. Each product gets its own URL, images and search presence. On Shopify Plus, combined listings can present the siblings as a single product with up to six options.3

5. Expand "Any" variations

A WooCommerce variation set to "Any Size" covers every size with one row, and WooCommerce uses the first matching variation from top to bottom.6 Shopify has no wildcard, so each size becomes its own variant. Decide before import how stock is split across the new variants, because a single shared stock count does not carry over.

Worked example: a T-shirt with four attributes

A WooCommerce T-shirt uses Size (6 values), Color (8), Fit (2) and Sleeve (2). That is four variation attributes and 192 possible combinations, so it cannot be imported as it is.

ApproachResult on ShopifyTrade-off
Split by Fit2 products × Size, Color, Sleeve = 96 variants eachTwo URLs; link them as siblings
Merge Fit and Sleeve1 product: Size, Color, "Regular / Short" style option (4 values) = 192 variantsLonger option labels
Sleeve as separate products2 products × Size, Color, Fit = 96 variants eachBest when sleeve length changes images and price

All three stay far below the 2,048-variant ceiling.1 The right choice depends on which attribute customers search for and whether it changes photos: if shoppers look for "slim fit shirts", splitting by Fit also gives you a page that can rank for it.

Variation checklist before import

  • Export every variable product with its attribute count and flag those with more than three variation attributes.
  • Remove "used for variations" from attributes that don't change price, stock, SKU or image, and plan them as metafields.
  • List every "Any" variation and decide how its stock splits across the expanded variants.
  • Keep SKUs identical so inventory, feeds and fulfilment systems still match.
  • Check variant images: assign an image to each variant whose color or finish changes the photo.
  • Confirm every app you keep uses Shopify's GraphQL product APIs if any product exceeds 100 variants.1
  • Create 301 redirects for any product you split, so the old URL points to the most relevant new product.

The free readiness scanner estimates how many of your products exceed the 3-option limit before you start, and the full migration checklist covers everything else.

Rather not restructure hundreds of products by hand?

  • Every product above the limit identified
  • Merge, split or metafield plan per product
  • SKUs, stock and prices kept intact
  • 301 redirects for every split product
  • Preview the result before you pay
  • Fixed price in writing
Scan my store freeReads public data only. No login.

Frequently asked questions

How many variants can a Shopify product have?

Up to 2,048 variants per product on every Shopify plan since 15 October 2025. Before that the limit was 100, and apps that still use Shopify's older REST product APIs may not work correctly above 100 variants.

Can I get more than three options on Shopify?

Not on a single product. On Shopify Plus, combined listings group separate child products under a parent that adds up to three more options, for a total of six. On other plans, merge options, split products or move non-stock attributes to metafields or line item properties.

What happens to WooCommerce "Any" variations?

Shopify has no wildcard variant. Each value covered by an "Any" variation becomes its own variant, so you need to decide how stock is split across them before importing.

Do line item properties track inventory?

No. Line item properties store information such as engraving text on the cart line and order. They are not variants, so they have no stock or SKU of their own.

Will splitting a product hurt SEO?

Not if the old WooCommerce URL redirects to the most relevant new product. Splitting can help when shoppers search for the attribute you split by, because each new product gets its own page.

Sources

  1. Shopify. The product variant limit is now 2048 for all merchants, developer changelog, 15 October 2025.
  2. Shopify. productOptionsCreate, GraphQL Admin API reference, example "Creating too many product options returns an error".
  3. Shopify. About combined listings, including limitations.
  4. Shopify. Product template: line item properties.
  5. Shopify. Link metafields to product options.
  6. WooCommerce. Variable products documentation.

Mufatech Studio migrates stores to Shopify. Limits are quoted from Shopify's and WooCommerce's own documentation as of September 2026.