Magento and Adobe Commerce to Shopify, store views and .html URLs included
A Magento migration is mostly a data-model translation: EAV attributes become metafields, configurable products become variants (three options at most), store views become Shopify Markets, and the url_rewrite table becomes the redirect map. The hosting, patching and extension upkeep go away. Magento stores usually fit a Tailored Move, or Made-to-Measure when several store views or B2B shared catalogs are involved.
What leaving Magento actually removes
On Magento you own the server, the PHP version, the Elasticsearch or OpenSearch service, security patches and every extension's compatibility with the next patch. Adobe publishes a support window for each release line1, and staying inside it means a regular upgrade project. On Shopify the platform, hosting, checkout and PCI scope are Shopify's job. What you keep paying for is the plan and the apps you choose.
That trade only works if the data model comes across intact, so that's where we spend the first days.
Magento entities and where they land
Magento's product types don't all have a Shopify twin. The table shows which ones convert directly and which need a decision.
| On Magento / Adobe Commerce | How it moves | Notes |
|---|---|---|
| Simple products | Moves by tool | Including special prices, which become compare-at prices. |
| Configurable products | Moves by tool | Children become variants; more than 3 configurable attributes needs a split. |
| Bundle products | Rebuilt | Fixed bundles use Shopify Bundles; dynamic bundles need an app. |
| Grouped products | Rebuilt | Become a collection section or a quick-add block on one page. |
| Virtual and downloadable products | Moves by tool plus app | Files are re-attached through a digital downloads app. |
| Custom options (per product) | Rebuilt | Line item properties in the Horizon product form. |
| Attributes and attribute sets | Moves by tool, after mapping | Become metafield definitions per product category. |
| Category tree | Moves by tool | Becomes collections plus menus; anchor categories become automated collections. |
| Tier prices and customer groups | Mapped by hand | Wholesale groups become B2B catalogs; retail tier prices need a discount app. |
| Customers | Moves by tool | Magento hashes passwords, so customers get activation invites. |
| Orders, invoices, credit memos | Moves by tool | Orders carry their refunds; Shopify has no separate invoice object. |
| CMS pages and blocks | Moves, then cleaned up | Page Builder markup is stripped and layouts rebuilt in Horizon. |
| Reviews and ratings | Moves through the review app | Exported and imported into the review app (Tailored and up). |
| Store views and websites | Mapped by hand | Languages become Markets; separate brands become separate stores. |
| URL rewrites | Moves by tool | Become the redirect map after de-duplication. |
Configurable products, attribute sets and store views
Configurable products. Each configurable product's child simples become variants. Shopify caps a product at three options and 2,048 variants2. Magento lets you configure on as many attributes as you like, so a product configured on colour, size, length and fit gets split or has one attribute demoted to a filter metafield. Children marked "Not visible individually" are imported only as variants, never as standalone products.
Attribute sets. Shopify has no attribute sets. We map each set's attributes to metafield definitions on the product category, so the right spec fields appear on the right products and power Search & Discovery filters.
Store views. Language store views become Shopify Markets with translations through Translate & Adapt. Separate websites with different catalogs or brands usually become separate Shopify stores, which is a Made-to-Measure conversation.
Turning url_rewrite into a Shopify redirect map
Magento keeps every product and category URL in its url_rewrite table, built from URL keys and the configured suffix, which defaults to .html3. We export that table, drop the generated duplicates and point each surviving URL at one Shopify URL4.
| Magento / Adobe Commerce URL | Shopify URL | Covers |
|---|---|---|
/{url-key}.html | /products/{handle} | Default product URL with the .html suffix. |
/{category}/{sub-category}.html | /collections/{handle} | Category paths collapse to one handle. |
/{category}/{url-key}.html | /products/{handle} | Only if "use categories path for product URLs" was on. |
/{store-code}/{url-key}.html | /{locale}/products/{handle} | When store codes were added to URLs; maps to the Market's language path. |
/{cms-identifier} | /pages/{handle} | CMS pages, which have no suffix by default. |
/catalog/product/view/id/{id} | /products/{handle} | System URLs that leak into old links and feeds. |
/customer/account/login/ | /account/login | Plus /checkout/cart/ to /cart. |
Extensions we usually retire
Magento stores tend to run 20 to 60 extensions. Many of them cover things Shopify does natively:
- Layered navigation extensions become Search & Discovery filters driven by metafields.
- One-step checkout extensions go away. Shopify's checkout replaces them, and on non-Plus plans it can't be restructured anyway5.
- SMTP and transactional email extensions become Shopify notifications, styled to your brand.
- Adobe Commerce B2B features (company accounts, shared catalogs, negotiable quotes, requisition lists) map to native Shopify B2B, except quotes, which have no native object. See Is Shopify good for B2B? for the honest gaps.
- ERP connectors are quoted separately. Made-to-Measure includes the data handoff spec.
Magento traps we check before quoting
Thousands of generated rewrites
Magento creates a rewrite for every product-in-category combination. Most were never linked anywhere. We keep the ones with traffic or backlinks and the canonical ones, so the redirect list stays manageable.
Values that differ per store view
Names, descriptions and prices can be overridden per store view. We export each view separately and decide which one is the primary language.
Disabled but indexed products
Disabled products still in Google's index get a redirect to their category instead of a 404.
Media cache paths
Image URLs under /media/catalog/product/cache/ are throwaway. We import originals so Shopify generates its own sizes.
Get a fixed price and a launch date in 15 minutes.
Tell us what you're running today. You'll have a written scope, a price that won't change and the date we'll be held to within one business day.
Tailored Move
Established brands that want the new store to look and sell better than the old one. · 15 business days.
Pay the 50% deposit · $4,450Sources
- Adobe Experience League: Commerce software lifecycle policy, checked October 22, 2026.
- Shopify Help Center: Adding variants (limits), checked October 22, 2026.
- Adobe Experience League: Commerce search engine optimization (URL keys and suffixes), checked October 22, 2026.
- Shopify Help Center: URL redirects, checked October 22, 2026.
- Shopify Help Center: Checkout apps, checked October 19, 2026.