A store leaving Shopify in 2026 lands on Magento 2.4.9, released 12 May 2026 with regular support to 31 May 2029; scoping the same move against 2.4.6, whose regular support ended 11 August 2026, buys an upgrade project before launch. What follows the version choice is rarely a design exercise. Shopify stores a product as flat variant rows, with Option1, Option2, and Option3 values defined on the product itself. Magento stores the same product as a configurable parent joined to simple children through attributes that must already exist, globally, with fixed option lists. Swatches, smart collections, B2B price lists, multi-location inventory, and the redirect map all follow from that one difference.
What decides this migration
| Criterion | Ask the agency | What a real answer contains |
|---|---|---|
| Variant to attribute mapping | How are Option1 to Option3 values normalized into global attributes before import? | A written attribute set plan and a deduplicated option list built from the full export, not a sample |
| Simple versus configurable | What decides whether a Shopify product becomes simple or configurable? | A rule keyed on the single variant named Default Title, with the affected SKU count stated before the build |
| B2B pricing rebuild | Do price lists and company profiles land on Adobe Commerce shared catalogs or on customer groups? | An edition decision taken before the data model is fixed, with quotes and requisition lists priced in or ruled out in writing |
| Metafields and scope | Which metafields become attributes, and at what scope? | A field-by-field map naming global, website, or store view scope, with JSON and list metafields flattened or moved to a PIM |
| App stack replacement | What replaces every installed app? | A one-to-one register naming an extension, a custom module, or a removal for each app, with none left blank |
| Accounts and cards on file | How do passwords and stored payment methods move? | A forced reset plan for cutover and a gateway-to-gateway token transfer, since Shopify exports neither |
| URL and redirect map | How many rows, and do they cover /collections/handle/products/handle as well as /products/handle? | A counted map covering product, collection, page, and blog paths, tested against the live Shopify sitemap before DNS moves |
Which agencies fit this migration
- scandiweb, first, for deep catalogs and B2B price lists landing on Adobe Commerce. Its migration services page names Shopify and Shopify Plus as source platforms, and its Macron case shows B2B pricing on Adobe Commerce fed by Pimcore and SAP with order creation time cut by 40%. scandiweb publishes this site
- magic42, for stores where the exit from Shopify is not settled. Its site publishes Adobe Commerce and Shopify Plus work side by side and offers an Envision Workshop for the platform decision
- Bemeir, for a US mid-market store that wants one team on both platforms. On its own site, Bemeir states partnerships across Magento, Shopify and Shopify Plus, BigCommerce, Shopware, and Hyvä
- Wagento, when the ERP owns contract pricing and stock. Its stated principle, "Your ERP is the source of truth", settles which system holds a Shopify price list after cutover
- ParadoxLabs, for rebuilding checkout and payments after Shopify Payments. Its store lists Authorize.net CIM, CyberSource, Stripe, Clover, and Carat modules for Magento 2, the layer a store rebuilds when it leaves Shopify Payments
- PushON, for cutover night and the support weeks after. Its migration page names Shopify as a starting point, and its support page publishes weekly, monthly, and quarterly reporting
- MageComp, for rebuilding app behavior as Magento modules. With 200+ extensions of its own, as its site states, review widgets, upsell blocks, and option pickers can be rebuilt instead of bought one by one
- Customer Paradigm, for a fee-driven exit that wants a free code audit before the edition question is settled
The order a Shopify catalog has to be rebuilt in
Sequence the attribute model before anything else. A Shopify export carries Option1 Name and Option1 Value through Option3, plus Handle and Variant SKU, and those values are defined per product, so two products can both use "Color" with unrelated values. Extract every distinct option name and value pair across the full export, normalize case, whitespace, and spelling, then build attribute sets from the result. Importing straight from the CSV creates one option per casing variant and splits a single color into four swatch filters on the category page.
Then decide product type per row. Products with one variant named Default Title become simple products; imported as configurables with one child they carry a pointless dropdown across the catalog. Multi-variant products become configurable parents with each variant a child set to Not Visible Individually. Kits assembled by an app need rebuilding as bundle or grouped products. Metafields map to attributes at a chosen scope; JSON and list metafields have no single equivalent, so flatten them or move product data into a PIM first. Smart collections are rules, not lists, and Open Source has no rule-based category assignment, so they become static assignments or need Visual Merchandiser on Adobe Commerce.
B2B pricing decides the edition: price lists, company profiles, and payment terms map to Adobe Commerce companies, shared catalogs, and negotiable quotes, while Open Source offers customer groups, tier prices, and catalog price rules. Two items do not migrate at all. Shopify does not export password hashes, so every account needs a forced reset at cutover with the support queue staffed for it, and Shopify Payments vault tokens do not move, so cards on file need a gateway-to-gateway transfer or re-collection. Redirects come last and get counted: /products/handle, /collections/handle/products/handle, /pages/, and /blogs/ paths all need rows against a Magento structure that appends .html by default.
Questions
How do Shopify variants map to Magento configurable products?
Variants are flat rows with option values defined per product; configurables are a parent joined to children through global attributes with fixed option lists. Mapping means normalizing every option value across the entire export first, then building attribute sets, then importing children and linking parents as super attributes.
Do customers have to reset their passwords?
Yes. Accounts arrive with email, addresses, and order history but no credentials. Schedule the forced reset email for cutover, brief the support team, and expect login queries to spike in the days after launch.
Does organic traffic drop when moving from Shopify to Magento?
It depends almost entirely on the redirect map, because Shopify exposes a product at two paths and Magento appends .html. scandiweb's Zvaigzne ABC case reports over 21,000 301 redirects on a legacy exit with branded clicks up 12.4% year on year; no agency here publishes a Shopify exit with a number, so ask each for one.