Skip to main content

Migration Guide

Magento to Shopify Plus, mapped out.

This guide covers what happens after the decision is made: the catalog remapping, the redirect strategy, the integrations that quietly did more than anyone remembers, and the cutover that keeps a store selling the whole way through.

Still weighing whether to move at all? Our decision guide covers that call first — this page assumes it's already made.

Scope

Who this guide is for — and who should stop reading.

This guide is the execution plan. If the decision itself is still open, the linked decision guide covers catalog fit, TCO, and version risk.

This guide assumes

  • You have already decided to leave Magento or Adobe Commerce.
  • Shopify Plus is the chosen destination, not one option among three.
  • You need the execution plan — the mapping, the redirects, the cutover — not the case for moving.

Reconsider if

  • The catalog leans on deep configurable-product logic Shopify's model would force into workarounds.
  • B2B pricing is highly customer-specific, built up over years inside Magento's customer groups.
  • Checkout logic is proprietary and load-bearing — conditional shipping, custom payment routing, gift flows.

See Legacy Modernization for staying on Adobe Commerce and modernizing in place.

Data-model mapping

Five structural mismatches, mapped before the import runs.

01

Configurable products & custom options → product/variant

Magento's attribute sets and custom options can alter price, weight, and SKU per store, sometimes conditionally — a monogram field that only appears once a color is chosen, for instance. Shopify flattens this to a product with variants, each carrying its own price, SKU, and inventory. Every attribute set gets a decision on day one of the mapping work: variant option, metafield, or dropped because the storefront never actually surfaced it to a customer.

02

EAV attributes → metafields

Long-form specifications, size charts, and comparison data that lived inside the Magento product entity move to Shopify metafields. Each rich-content attribute needs a metafield definition registered — with its type, validation, and storefront rendering decided — before the catalog import runs, not discovered mid-import when the first batch of products lands with blank fields.

03

Customer groups & tiered/B2B pricing → Shopify Plus B2B

Customer-specific catalogs and tiered pricing built on Magento customer groups map to Shopify Plus's company and catalog structures, but rarely 1:1. Account hierarchies, purchase-order terms, and quantity-break pricing usually need rebuilding against Shopify's B2B object model, not a straight data import from the customer-group tables.

04

Multi-store → Markets

A single Magento instance running several regional or brand storefronts off one shared catalog maps to Shopify's organization and Markets model. Catalog-sharing rules, currency and duty handling, and admin permissions underneath are different enough between the two platforms to need their own design pass, not an assumption that the store-view structure just carries over.

05

Source-and-stock → location-based inventory

Magento's source-and-stock model and Shopify's location-based inventory both solve multi-warehouse fulfillment, but not the same way. Allocation rules — which warehouse ships which order, and in what priority when two locations both have stock — get rebuilt as Shopify Flow logic or a third-party allocation app, not carried over as configuration.

None of these five are hard to solve individually. The migration slips when five different engineers solve them on five different assumptions, in the same sprint.

URL & SEO strategy

The redirect map is the SEO strategy.

Routing moves from Magento's rewrite rules to Shopify's fixed URL patterns the moment the switch flips. Every product, category, and CMS page needs a mapped 301 before launch — built from a full crawl of the live site, not the sitemap.

Orphaned pages with real inbound links and old campaign URLs carry ranking value the sitemap will never show. A redirect map built only from the sitemap is a map with the highest-value pages missing.

Structured data has to survive the move too. Product, review, and breadcrumb schema baked into the Magento theme need Shopify-side equivalents before cutover, or search results lose rich snippets the old site had already earned.

Submit a change-of-address signal once the new structure is live, and watch Search Console crawl stats daily for the first weeks — a missed parameter or a canonical pointing at the wrong URL shows up there before it shows up in rankings.

Pagination, filtered category URLs, and internal search result pages are the quiet failure point. Magento and Shopify both generate faceted URLs differently, and a redirect map that only covers primary product and category pages leaves every filtered variant to 404 on its own.

Google does not penalize a platform change. It penalizes a redirect map built from the sitemap instead of the server logs — the pages nobody remembers are the ones with the backlinks.

Integration parity

What Magento did invisibly — and where it goes now.

Every one of these ran invisibly inside Magento. Each needs a named home in the new architecture before cutover, not a note to figure it out later.

Tax

Magento tax rules per customer group and region, applied at cart calculation with exemptions baked into the customer record.

Avalara, TaxJar, or Shopify Tax, configured against the same nexus and exemption rules — tested against wholesale and tax-exempt accounts specifically, not just the standard retail case.

Search & faceting

A tuned Magento search extension carrying years of relevance adjustments nobody wrote down.

A Shopify search app (Algolia, Searchspring, or similar), rebuilt against real query logs — default Shopify search is not a like-for-like replacement for tuned relevance.

ERP / OMS / WMS

Point-to-point modules writing to Magento's database directly, often on a nightly batch job.

Shopify Admin API webhooks feeding a middleware layer, so the ERP/OMS never assumes Magento's schema again and updates arrive close to real time.

Payments

A payment gateway wired into Magento's checkout controller, with saved cards tokenized against it.

Shopify Payments or a certified gateway app, with saved-card and subscription tokens re-mapped through the gateway's own migration path, not just re-entered by customers.

Subscriptions

A Magento subscription or recurring-billing extension managing its own billing calendar.

A Shopify subscriptions app (Recharge, Skio, or similar) with billing cycles and dunning logic re-tested against real customer schedules before cutover, not just the demo data.

Cutover mechanics

A parallel run, not a cutover date.

Old and new run side by side. Traffic moves in slices, watched against pre-agreed thresholds, with the old platform staying live and current as the rollback path — not frozen the day the build starts.

Cutover controlRollback rehearsed
BUILD & SYNCPARALLEL RUNCUTOVERWIND-DOWNMAGENTO / ADOBE COMMERCElive, taking every orderrollback pathSHOPIFY PLUSsecondary trafficprimary trafficTRAFFIC SWITCH

Go/no-go criteria, set before cutover day

Error rates, checkout conversion, page-load thresholds, and payment success rates get a pass/fail line agreed with the business in advance — never judged in the moment, under pressure, on launch day itself.

What actually breaks

Five failure modes we've seen in production.

01

Gift cards and store credit lose their balance

Magento's gift card and store credit balances rarely import cleanly through a standard data migration tool. Build a reconciliation ledger before cutover, with every open balance validated against Magento's own reporting — customer-facing balance disputes after launch cost more than the export script would have.

02

In-flight orders have no defined owner

Orders placed on Magento in the hours before cutover need an explicit home: fulfilled from Magento, imported into Shopify as historical records, or held for manual review. Undefined ownership at that boundary causes double-fulfillment on the good days and a dropped order on the bad ones.

03

Tax-exempt and wholesale accounts get charged tax

Magento's per-customer tax rules do not carry over automatically to Shopify's tax engine. A wholesale account placing an order during the transition window can get taxed on an order that should have been exempt, and finance finds out from the customer, not from a report.

04

Search feels like a downgrade on day one

The tuning file behind years of Magento search relevance has no Shopify equivalent to import — synonyms, boosted SKUs, and merchandising rules all reset to zero. It gets rebuilt from real query logs before launch, or the store ships with an untuned search box on day one.

05

Redirect chains stack instead of resolving

Magento's rewrite history plus new Shopify URL rules can chain two or three redirects deep before landing on the final page. Google flags long chains as a crawl-budget problem, and a share of visitors following an old campaign link abandon before the page finishes loading.

A related failure pattern — end-of-life platforms losing page speed as the monolith ages — is what we ran into on a beauty brand stuck on Magento 1.9: the rebuild cut page loads 40% and dropped checkout abandonment from 78% to 52%. See the case study.

Cutover approach

Big-bang vs parallel-run cutover.

CriterionBig-bang cutoverParallel-run cutover
Traffic exposure at go-live100% of traffic, first real test on launch dayA slice, watched against baseline before it grows
Data reconciliation windowA single import, validated after the factContinuous sync, reconciled throughout the build
Rollback in the first hoursOld platform is already decommissioned or staleOld platform stays live, current, and rehearsed
Where integration gaps surfaceIn production, in front of every customerDuring the parallel-run window, at partial traffic
Team loadConcentrated into one high-stakes weekendSpread across weeks, with checkpoints between phases
Timeline to full cutoverShorter on paper, longer when it slipsLonger on paper, more predictable in practice

The timeline column is where big-bang plans quietly lose the argument: the weekend cutover is faster on the slide, but it is also the version where a missed integration becomes a launch-day incident instead of a parallel-run finding.

Questions

Magento to Shopify Plus, the mechanics answered

Do we freeze the Magento catalog during the parallel run?
No. A frozen source is a broken rollback — if the old platform stops reflecting reality, reverting traffic to it reverts to a store that is wrong. The catalog, inventory, and pricing stay live and synced on both platforms through the entire parallel-run phase.
What happens to gift card and store credit balances?
They need a reconciliation ledger built before cutover, not discovered after. Export every open balance, validate the total against Magento's own reporting, and decide upfront whether balances import as Shopify gift cards or stay redeemable through a bridge for a defined window.
How do we handle orders placed in the hours right before cutover?
Define the cutoff explicitly: orders placed before the DNS switch fulfill from Magento; orders after fulfill from Shopify. The ambiguous middle — an order placed during the switch itself — needs a named owner on the runbook, not an assumption.
Can the catalog migrate in phases, or does it have to move all at once?
Phased works for multi-category or multi-brand catalogs — migrate one category or storefront first, prove parity, then move the rest. A single-category catalog with shared checkout logic usually has to move as one unit.
How is the redirect map tested before launch, not just after?
Crawl the staged Shopify site the same way Googlebot would, spot-check every redirect against the live map in a staging DNS environment, and run a sample of real inbound campaign URLs through it before the go/no-go call.
What's the first step, before any Shopify build work starts?
A full URL crawl and an app-parity audit — the redirect map and the extension-replacement decisions are the two artifacts every later phase depends on, and they take longer to get right than most timelines allow for.

References

Original sources for the claims above.

How an engagement starts

Three steps to a partnership

01

Intake call

30 minutes. We listen, you talk. No deck.

02

Diagnostic

We audit the surface, name the bottleneck, propose a path.

03

Kickoff

Senior engineer in your standup by week two.

Ready to map your catalog?

Send us the Magento or Adobe Commerce instance and the extensions in production. We'll come back with the mapping and where the parallel run should start.