← All guides7 min read

How Magento configurable and grouped products migrate to Shopify

What happens to Magento's configurable, simple, grouped, and bundle products when Move to Shopify migrates them—and what you will see in your staging store.

The single most common staging question after a Magento to Shopify migration is: "where did my configurable products go?" The answer is that they are there, but they look different — because Magento and Shopify model product variants in fundamentally different ways. This guide explains exactly what happens to each Magento product type in your Move to Shopify staging store, so you know what to check and what to expect.

Why Magento and Shopify model products differently

Magento uses a type-based product system:

  • Simple product — a single, stand-alone SKU with no options.
  • Configurable product — a parent entity with no inventory of its own, linked to multiple child simple products via shared attribute values (e.g., colour and size).
  • Grouped product — a parent that bundles unrelated simple products for purchase as a set (e.g., "buy all three volumes together").
  • Bundle product — a parent where the customer selects from option lists to compose a custom product (e.g., a computer with selectable CPU, RAM, and storage).
  • Virtual / downloadable product — a product with no physical shipment requirement.

Shopify uses a simpler model:

  • A product has a title, description, images, and up to three option types (e.g., Size, Colour, Material).
  • Each combination of options is a variant. A product can have up to 100 variants (higher on Shopify Plus with metafields expanding the effective option set).
  • Any data that does not fit the product/variant model lives in metafields — structured key-value data attached to any product or variant.

The migration challenge is mapping Magento's richer type hierarchy onto Shopify's flatter, cleaner model. Here is how Move to Shopify handles each type.

Configurable products → Shopify products with variants

This is the most important mapping because configurable products are the heart of most Magento catalogues.

What happens:

  1. The Magento configurable product becomes the Shopify product. Its title, description, images, and top-level attributes carry across.
  2. Each child simple product (linked to the configurable via the super-attribute join) becomes a Shopify variant.
  3. The attribute values that distinguish the children (e.g., colour: Red, size: L) become the Shopify variant option values.

What you will see in staging:

A Shopify product with variants, where each variant corresponds to one child simple from Magento. Shopify's product editor will show the option selectors (Colour, Size) and the variants below. Inventory is per-variant, because in Shopify, inventory lives on the variant, not the parent.

What to check:

  • Variant count matches child simple count in Magento.
  • Prices per variant are correct (Magento can have per-child pricing; these become Shopify variant prices).
  • Images: Magento swatch images (per attribute value) become variant images in Shopify. Check that each variant has the right colour swatch or size image attached.
  • SKUs: each child simple's Magento SKU becomes the Shopify variant's SKU. Verify in bulk using Shopify's product CSV export.

Simple products → Shopify products (one variant)

A Magento simple product with no parent configurable becomes a Shopify product with a single variant (the Shopify default). Nothing changes from a data standpoint; this is the closest 1:1 mapping in the entire migration.

What you will see in staging: a Shopify product with "Default Title" as the only variant. This is correct Shopify behaviour for a product with no options.

Grouped products → Shopify products with metafields

Magento grouped products have no Shopify equivalent. A grouped product is a display construct — a page that lets a customer add multiple unrelated simples to cart in one go — not a true product type with its own inventory.

What happens:

The member simple products migrate individually, as stand-alone Shopify products or as variants of their own configurable parents. The grouped product parent is migrated as a Shopify product, with the group membership information stored as product metafields (the IDs of the member products).

What you will see in staging: the grouped product page will exist on Shopify with correct title and description, but it will not have a built-in "add all members to cart" button. That behaviour was provided by Magento's grouped product page template.

What to do: if the grouped purchase behaviour is important for your catalogue, install a Shopify app that supports product bundles or grouped products (several exist), and configure it to reference the product IDs stored in the metafields. The data is there; the Shopify storefront behaviour needs a compatible theme snippet or app to expose it.

Bundle products → Shopify products with metafields

Magento bundles (customer-assembled from option lists) have a similarly limited Shopify equivalent.

What happens: the bundle product becomes a Shopify product. The bundle options and their member SKUs are stored as product metafields. The option labels and available selections migrate; the interactive bundle-builder UI does not.

What to do: same answer as grouped products — a Shopify bundle app is the practical path. The metafield data gives the app what it needs to rebuild the bundle configuration on the Shopify side.

Custom attributes (EAV) → Shopify metafields

Magento's EAV system allows any number of custom product attributes. These do not map to Shopify product or variant fields natively, but they migrate cleanly as metafields.

What happens: each custom attribute becomes a Shopify product or variant metafield, keyed by the Magento attribute code. An attribute called material_composition on the Magento side becomes a material_composition metafield on the Shopify product.

Why this matters for your theme: if your Magento theme rendered custom attributes on the product page using the attribute code as a template variable, the Shopify theme can reference the same value using the metafield handle. Theme code that knew about product.material_composition on Magento can be rewritten to reference product.metafields.custom.material_composition on Shopify with minimal changes.

What to check in staging: for each custom attribute your product pages display, find a representative product in Shopify Admin and confirm the metafield is there with the correct value. Shopify Admin → Products → [product] → Metafields shows all metafields for that product.

Downloadable and virtual products

Virtual products (no shipment) and downloadable products (with a digital asset attached) are included in the migration as Shopify products with the requires_shipping flag set to false. The product record, price, and description migrate correctly.

The digital asset itself (the downloadable file) requires a Shopify app for delivery — Shopify does not have built-in digital download delivery. After the migration, install a digital downloads app on the destination store and attach the files to the relevant products.

The staging review routine for products

After your Move to Shopify build finishes and the staging link is live, run this routine before clicking Pay €129 & transfer store:

  1. Count check. Shopify Admin → Products shows the total product count. Compare it to your Magento product count (filtering to enabled products only, since disabled Magento products do not migrate).

  2. Configurable spot-check. Pick five representative configurable products — one with a small number of variants, one with many, one with per-child pricing. Check title, variant count, variant prices, and variant images.

  3. Custom attribute check. Pick three products with custom attributes your theme uses. Confirm the metafields are present with correct values.

  4. Grouped/bundle check. If you have grouped or bundle products, confirm the Shopify product exists and the metafields are set. Note which products will need bundle app configuration post-launch.

  5. Redirect check. The old Magento product URL (e.g., /men/shoes/acme-runner.html) should redirect to the Shopify product URL. Pick five products and test their old Magento URLs against the staging domain. See Preserving your Magento SEO when migrating to Shopify for the full redirect verification routine.

Related reading

Ready to see your product catalogue in Shopify staging? Start your migration — the wizard takes about ten minutes.

Ready to migrate?

Connect your Magento store, dry-run a migration, see the exact Shopify result before a single record lands. €995 only when you accept.

Start the wizard How it works
Related guides
Magento multi-store to Shopify: how the migration works
How Move to Shopify handles Magento installations with multiple stores or websites: splitting into separate Shopify stores or consolidating
Migrating Magento customers and orders to Shopify
How Move to Shopify handles Magento customer accounts, order history, passwords, marketing consent, and order status when migrating to a fre
After the Magento migration: launching your Shopify store
What to do after your Magento store is built on Shopify: reviewing staging, paying and transferring, connecting a domain, configuring paymen