Synthetic Industry

Troubleshooting guide · updated 2026-10-11

Moving a WooCommerce or Magento catalogue to Shopify: how options and variants map

How parent and variation rows in a WooCommerce or Magento export become Shopify handles and variant rows, and where the models disagree.

Two models of the same product

WooCommerce and Magento describe a product with options as a parent plus separate child records. Shopify describes it as one product, identified by its handle, with variants as repeated rows that carry the same handle. The first row holds the product's own fields; every later row for that product repeats the handle, leaves title, description, vendor and tags empty, and fills in the variant details and one image. A single-option product still needs a placeholder option name and value, and Shopify uses Default Title for that case.

Moving a catalogue is therefore a reshaping job, not a copy. Each parent and its children collapse into one handle with several rows, and each attribute becomes an option with a name and values.

  • One Shopify product per parent; one row per variant.
  • Option names and values come from the source attributes.
  • Every file column needs Shopify's exact header names, which are case sensitive.

Reading a WooCommerce export

In the WooCommerce product export the parent row has the type variable and lists every attribute value. Each variation row has the type variation, its own SKU, an empty ID, a single attribute value, and a Parent value that names the parent by SKU or ID. Attribute names and values in the variation rows are meant to agree with the parent, which is the first thing to check. Images come as a comma-separated list of URLs with the first as the featured image, which maps neatly to Shopify's one-image-per-row layout, with the order recorded as a position.

  • Group variation rows under their parent by the Parent value.
  • Check that every variation's attribute values are ones the parent lists.
  • A blank variation attribute means any value, which Shopify has no equivalent for.

Reading a Magento or Adobe Commerce export

The Adobe Commerce export, taken from System, Data Transfer, Export as CSV, has one row for the configurable product and a row for each simple product, and a product type column tells them apart. The parent row's configurable variations column links it to its children: each entry is a SKU followed by attribute and value pairs, entries are separated by a pipe, and the attributes inside an entry are separated by commas, using attribute codes rather than display labels. Because commas separate the attributes, a value that contains a comma needs careful handling, and any such value should be inspected by hand. Adobe notes that the export runs in the background through a queue and that your cron job needs to be running, so if the file never appears, check that cron is running.

  • Translate attribute codes back into the names a shopper should see.
  • Check values that contain commas, pipes or quotes by eye.
  • Make sure each simple product ends up as exactly one variant row.

Where the models disagree, and what you must decide

Shopify allows up to three options and up to 2,048 variants per product. Products near or over 100 variants need a decision too, because Shopify says some third-party themes, apps and sales channels might not support more than 100 variants; check which of yours do before you build the file. Count the variants of every source product before building anything: three attributes with several values each multiply quickly. If a source product uses four attributes, someone must choose: merge two attributes into one option, such as colour and finish, or split the product into several. A product missing a variant option will not import at all, according to Shopify's migration guidance, so these cases cannot be left to chance. Smaller limits to design around: up to 250 images per product, up to 250 tags, up to 20 barcodes, and handles that must be unique, using only letters, numbers and dashes.

Other source concepts have no direct equivalent: a blank "any" attribute, product types that carry custom fields, grouped products and categories that are not collections. Each needs a stated rule in a mapping sheet, so the result is repeatable and reviewable.

  • List every product with more than 100 variants, and every one over 2,048, before building anything.
  • List every product with more than three options before building anything.
  • Decide the rule for each unmatched concept in writing.
  • Keep a list of items excluded on purpose.

Prove it before it touches the real store

Shopify recommends testing large imports on a development store, and the file limit is 15 MB, so large catalogues are split. Import on the test store, export again, and compare counts and a sample of products with the source. Imported products can arrive hidden, and the migration guidance says to import products first, then customers, then historical orders so that orders link to the right products. When the test comparison is clean, the same files can be imported on the live store by its owner, after a fresh export as a safety copy.

  • Compare product and variant counts, not just a few pages.
  • Include every product with options in the sample.
  • Check image counts and the first image of each product.

How the paid work is accepted

The fixed job for this problem builds the mapping, the Shopify product file and a redirect file, and is accepted when the test store shows the same number of products and variants as the source, twenty sampled products match in title, options, SKU, price and image count, the import shows no row errors, and every redirect target is a product that exists. The wider project adds a comparison of the live store after your own import and the launch checks you choose. Customers, orders, themes and payments are outside both.

Sources and limits

  • Shopify Help Center: Product CSV file format Checked 2026-10-11.
    • A product can have up to three options, and a single-option product uses Default Title.
    • Each variant row repeats the handle and leaves title, description, vendor and tags empty.
    • Images are one per row, up to 250 per product.
    • The handle is the unique product identifier, it allows letters, numbers and dashes, and it is required when adding variants or updating products.
    • Barcodes allow up to 20 values and tags up to 250 per product.
  • Shopify Help Center: Importing products with a CSV file Checked 2026-10-11.
    • The maximum file size is 15 MB, so large files are split.
    • Shopify recommends testing large imports on a development store.
    • Headers are case sensitive and missing or mismatched headers cause the import to fail.
  • Shopify Help Center: Migrating to Shopify Checked 2026-10-11.
    • Products can move by CSV or a migration app, and products should be imported first, then customers, then historical orders.
    • A product missing a variant option will not import and has to be added manually, and imported products can arrive hidden.
    • Shopify's URL structure differs, so old links to specific pages likely will not load.
  • WooCommerce documentation: Product CSV Importer and Exporter Checked 2026-10-11.
    • A variable parent row has Type variable and lists every attribute value; each variation row has Type variation, a unique SKU, an empty ID, one attribute value and a Parent value.
    • Images are a comma-separated list of URLs, and the first becomes the featured image.
  • Adobe Commerce documentation: Import configurable products Checked 2026-10-11.
    • The export has one row for the configurable product and a separate row for each simple-product variation, and the product type column tells them apart.
    • The configurable variations column links the parent row to its children, with entries divided by a pipe and attributes within an entry divided by commas, using attribute codes rather than labels.
  • Adobe Commerce documentation: Export data Checked 2026-10-11.
    • Products are exported from System, Data Transfer, Export, as CSV, and the export runs in the background through a queue that needs cron to be running.
  • Shopify Help Center: Add variants Checked 2026-10-11.
    • A product can have up to 2,048 variants and up to three options.
    • Some third-party themes, theme app extensions, public apps, sales channels and custom apps might not support more than 100 variants.