Blog Content
September 17, 2026

Migrating from Magento to Shopify: A Step-by-Step Technical Guide

A technical guide to migrating from Magento and Adobe Commerce to Shopify: the EAV data model, 301 redirects, the B2B module, and custom module transfer.

Migrating from Magento to Shopify is, at its core, a data remodeling project that moves you from Magento's EAV data model to Shopify's flat product schema with fixed fields. The process starts with a data and module inventory and is completed by mapping products to the variant and metafield structure, building the 301 redirect map, setting up the theme and checkout, moving B2B and integrations, and running go-live tests.

Key Differences Between Magento (Adobe Commerce) and Shopify

Almost every challenge in a Magento to Shopify migration comes from one fundamental difference in the two platforms' data models: Magento stores products in an EAV (Entity-Attribute-Value) architecture and keeps each attribute in a separate database table, while Shopify uses a flat product schema with fixed fields. This difference turns the migration into a "data remodeling" project rather than a "data copying" job.

Magento comes in two product lines, the open-source Magento Open Source and the enterprise Adobe Commerce (formerly Magento Commerce); the two differ in licensing model, hosting responsibility, and the B2B module. Adobe Commerce Cloud is the enterprise edition hosted on Adobe's own infrastructure and sold with revenue-based licensing, and it usually sits in the segment that gets compared with Shopify Plus.

Criteria Magento / Adobe Commerce Shopify
Data model EAV (Entity-Attribute-Value), each attribute in a separate table Flat schema, fixed fields + extension with metafield
Hosting Self-hosted (Open Source) or Adobe's cloud infrastructure (Adobe Commerce Cloud) SaaS fully hosted by Shopify
License / pricing Open Source is free (hosting + development costs are separate); Adobe Commerce has an annual revenue-based license Fixed monthly plan fee + transaction fees
Customization PHP-based module development, full code access Liquid template language + app development with the Admin/Storefront API
B2B support Adobe Commerce B2B module (built-in) Shopify's built-in B2B feature (on all plans; company-specific catalogs on Plus) or custom app development
Security/maintenance responsibility On Open Source, the server, security patches, and scaling are the store owner's responsibility Managed by Shopify (including PCI-DSS compliance)

In the Magento migrations we manage at Nodus Works, we see one common thread: store owners usually consider migrating not to escape the platform's flexibility, but to escape the maintenance burden that this flexibility brings (security patches, server scaling, developer dependency). At this point, the migration decision is not a technical preference but an operational decision to reduce workload.

Critical Note: The difference between Magento Open Source and Adobe Commerce is not just price. Adobe Commerce's B2B module and advanced customer segmentation are not available in Open Source (Page Builder, however, has been part of both editions since 2.4.3); being clear about which edition you are coming from determines which features need to be covered on the Shopify side when you plan the migration.

Why Migrate from Magento to Shopify?

A decision to migrate from Magento to Shopify usually comes down to three concrete triggers: end-of-life (EOL) pressure, unpredictable license/maintenance costs, and an EAV data model that slows down daily operations.

Magento 1 EOL and the Pressure of a Mandatory Magento 2 Upgrade

Official support for Magento 1 ended in June 2020; stores that no longer received security patches after that date faced both the risk of losing PCI-DSS compliance and exposure to known security vulnerabilities. Most of the stores that stayed on Magento 1 either moved to Magento 2 through an expensive replatforming project or turned this forced move into an opportunity and went straight to Shopify. Because moving to Magento 2 also requires rewriting a large part of the codebase, the store owner's reasoning of "if I'm going to put in as much effort as moving to a new platform anyway" made Shopify a realistic alternative.

Cost Unpredictability from the Adobe Commerce License Model

The Adobe Commerce license fee is calculated based on annual gross merchandise volume (GMV), which means license costs rise disproportionately as the store grows. On Shopify Plus, pricing consists of a monthly base fee plus an additional rate above a certain revenue threshold, and it generally offers a more predictable cost curve than Adobe Commerce's enterprise license structure. This difference is a deciding factor in the migration decision, especially for fast-growing brands.

The Operational Complexity of the EAV Data Model

Magento's EAV architecture means that adding a new product attribute requires extra table/join operations at the database level; in large catalogs, this directly affects page load times and admin panel performance. Shopify's flat data model + metafield structure removes this problem: adding a new attribute does not create a performance cost. This difference is a critical technical detail that sets the pace of daily operations, especially in catalogs with 10,000+ SKUs.

Risk to Avoid: In migrations planned with the reasoning "we're only moving to avoid hosting costs," the data conversion from EAV to the flat model and the question of how custom options will be rebuilt on Shopify get pushed to the end. This creates an unexpected need for data remodeling in the middle of the migration and can extend the project by weeks.

Pre-Migration Preparation and Data Inventory

The most expensive mistake in a Magento to Shopify migration is jumping straight into transfer tools without taking a data inventory; the inventory reveals which Magento data is actually in use and which is idle data that has piled up over the years.

The data types that need to be moved from a Magento store are: products (simple, configurable, bundle, grouped, virtual), the category tree and layered navigation filters, customer accounts and customer groups, order history, CMS pages and static blocks, custom attribute sets, and multi-website/multi-store view configuration.

Two areas are especially easy to overlook during the inventory stage:

  • Unused attribute sets: Magento catalogs accumulate attributes created over the years that are no longer filled in on any product. Moving these one-to-one to Shopify as metafields creates unnecessary complexity.
  • CMS blocks and widgets: Magento-specific static blocks, such as banners on the homepage or above category pages, cannot be transferred directly; they need to be rebuilt as theme sections on Shopify.

At Nodus Works, we have observed that the time spent on the inventory stage shortens the overall duration of the migration: once it is clear which data will actually be moved, the transfer scripts work correctly the first time and repeated cleanup cycles disappear.

Moving Product and Category Data: From EAV to a Flat Model

Magento's four product types (simple, configurable, bundle, grouped) are mapped to Shopify's single flat product model with different strategies; this mapping is the step of the migration that requires the most technical decisions.

Magento Product Type Shopify Equivalent Note
Simple Product Standard product Transferred directly 1:1
Configurable Product Product with variants Options such as color/size become Shopify's variant structure
Custom Options Line item property or metafield Shopify has no built-in "custom option" concept; an app or custom development is required
Bundle Product Bundle app or multi-product group Shopify's built-in bundle support is limited; a third-party app is usually required
Grouped Product Related products section + collection No automatic grouping; a manually built collection setup is required

Shopify Variant/Metafield Equivalents for Custom Options and Configurable Products

Configurable Products (for example, a T-shirt with color and size combinations) map directly to the variant structure when moved to Shopify; this transfer is relatively smooth because both platforms offer a built-in mechanism for this scenario. The real challenge comes with Custom Options: fields in Magento that require text input or an extra choice, such as "personalized engraving text" or a "gift wrap option," have no built-in equivalent in Shopify.

These fields are moved to Shopify in one of two ways: as a line item property (a free-text field the customer fills in on the product page) or as a structured option managed through a personalization app. Which method you choose depends on whether the option affects the price; a custom option that changes the price cannot be covered by a simple line item property and usually requires a custom app or pricing logic based on Shopify Functions.

On the category side, Magento's multi-level category tree and layered navigation filters are converted into Shopify's collection structure and in-collection filtering (Shopify's "Search & Discovery" app or theme-level filtering). Not every subcategory in Magento automatically corresponds to a Shopify collection; the parts of the category tree that carry SEO value should be preserved, while categories used only for internal filtering should be handled as URL parameters/filters without being converted into collections.

Tip: In catalogs with Bundle products and price-affecting Custom Options, pull a separate list of the products of these types before you start the data transfer. Even if these products make up a small percentage of the total catalog, they determine most of the transfer time. To rebuild Magento's bundle products on Shopify as sets and bundle discounts, you can use the Bundle Works app.

URL Structure and Preserving SEO Value

The most common reason a Magento to Shopify migration loses a large share of its organic traffic is that the difference in URL structure is not covered by 301 redirects; the URL logic of the two platforms is fundamentally different, and no automatic mapping takes place.

By default, Magento adds a .html extension to product and category URLs (e.g., /leather-jacket.html), and layered navigation filters are usually appended to the URL as query parameters (e.g., ?color=black&size=m). Over time, these filter combinations can turn into thousands of thin URLs indexed by Google. Shopify, on the other hand, uses the /products/product-name and /collections/category-name format and manages filter parameters through a different mechanism.

How Do You Build a 301 Redirect Map?

The url_rewrite table (Magento 2) or the core_url_rewrite table (Magento 1) in the Magento database contains the entire history of URLs created on the site up to that point; exporting this table gives you a complete inventory of the old URL list. This list is matched with the new product/collection URLs on Shopify and turned into a bulk 301 redirect file.

In practice, three categories of URLs each need a different approach:

  • Product and category URLs: These can be mapped one-to-one; as long as the slug does not change, a simple 301 rule is enough.
  • Layered navigation/filter URLs: Most of these URLs are temporary query combinations with no equivalent on Shopify; instead of redirecting them one by one, it is healthier to redirect them to the root category page and to prevent these kinds of URLs from being created on the Shopify side in the future.
  • CMS pages: Static pages (such as about us or the return policy) can usually be moved while keeping their URL slug.

Old URLs indexed by Google that don't stay live and return a 404 are the most frequent cause of a sharp drop in organic traffic in the first weeks after a migration; to minimize this risk, our Shopify migration service validates the 301 map in a test environment before it goes live.

Critical Note: Trying to 301-redirect every URL generated by layered navigation filters in Magento is both unnecessary and can grow to an unmanageable size. Prioritize the URLs that carry real SEO value (those that get clicks/impressions in Google Search Console), and let the rest drop out of the index naturally.

Moving B2B and Multi-Website Structures

For stores that use the Adobe Commerce B2B module, the most critical question in the migration is how Magento's company account and shared catalog structure will be covered on Shopify; the B2B architectures of the two platforms do not match one-to-one.

Custom price catalog and Net 30 payment terms on a Shopify B2B company profile

The Adobe Commerce B2B module offers company accounts, quick order, requisition lists, and quote/negotiation flows out of the box. On Shopify, the equivalent of these functions is Shopify's built-in B2B feature (on all plans; company-specific catalog assignment and deposits on Plus): it provides company profiles, custom price lists, payment terms, and a B2B-specific checkout experience. However, more complex business rules such as the quote/negotiation flow in Adobe Commerce have no direct equivalent in Shopify B2B, so they usually need to be rebuilt with a custom app or Shopify Functions.

Magento/Adobe Commerce Structure Shopify Equivalent
Multi-Website / Multi-Store View (single codebase, different views/catalogs) Shopify Markets (single store, regional pricing/language) or separate Shopify stores (if the catalogs are completely different)
Company Account Shopify B2B company profile
Shared Catalog (company-specific pricing/catalog) B2B price list + catalog visibility rules (assigning a catalog directly to a company only on Plus)
Quote/Negotiation No built-in equivalent; requires a custom app or a manual process

The multi-website decision directly shapes the architecture of the migration: if the different websites in Magento differ only by language/currency (same catalog, different localization), Shopify Markets covers this need within a single store. But if the websites carry completely different product catalogs or brand identities, the healthier architectural decision is to set them up as separate stores and manage them centrally with Shopify's Organization structure, rather than squeezing them into a single Shopify store.

Shopify Equivalents for Custom Modules and Extensions

None of the third-party modules installed from Magento Marketplace move directly to Shopify; for each module, you need to find its equivalent on the Shopify App Store or, if there isn't one, rebuild it with custom development.

Payment and shipping integrations are usually the easiest part: Turkey-specific payment providers such as iyzico, PayTR, and Craftgate have official integrations for both Magento and Shopify, so these modules can be replaced directly with their Shopify equivalents. The situation is similar for shipping integrations; Turkish carriers such as Aras Kargo and Yurtiçi Kargo have equivalents that can be installed from the Shopify App Store or set up via API.

The real challenge comes with bespoke modules developed specifically for Magento: for example, a custom pricing rule, a store-specific loyalty program, or an ERP-specific sync module may have no ready-made equivalent on the Shopify App Store. In that case, there are two options: simplify the business rule to fit the settings offered by the closest ready-made app, or recode the module's logic specifically on top of the Shopify Admin API/Functions.

Critical Note: An important warning for Magento stores that have built custom checkout modules: while Magento allows direct changes to checkout at the PHP level, on Shopify this is only possible with Shopify Plus + Checkout Extensibility. On standard Shopify plans, code cannot be injected into checkout; this limitation needs to be clarified at the very start of migration planning.

Rebuilding store-specific integrations such as ERP, accounting, or custom reporting modules on Shopify requires custom API development in scenarios that a ready-made app cannot solve; our Shopify integration solutions and custom app development service moves the logic of these Magento-specific modules onto the Shopify Admin API.

The Magento to Shopify Migration Process with Nodus Works

The process we follow in Magento/Adobe Commerce to Shopify migration projects consists of the following steps:

  • Data and module inventory: We identify which product types, attributes, and third-party modules are actually in use and which are idle.
  • Mapping data from EAV to a flat model: We map Custom Options, Bundle, and Configurable Products to Shopify's variant/metafield structure with the right strategy.
  • 301 redirect map: We map the full URL history we pull from Magento's url_rewrite table to Shopify's new URL structure and validate it in a test environment before going live.
  • Theme and checkout setup: We set up a Shopify theme that fits your brand identity and, if needed, custom checkout logic with Shopify Plus + Checkout Extensibility.
  • B2B and integration setup: We move the company account/price list structure from the Adobe Commerce B2B module to Shopify B2B and recode the custom modules that have no equivalent.
  • Go-live testing: We test payments, checkout, B2B flows, and the mobile view end to end before going live.

We cover the platform-independent shared steps of this process (choosing a plan, DNS setup, the go-live checklist) separately in our Shopify Migration Guide.

FAQ

How long does a Magento to Shopify migration take? It depends on catalog size, the number of Custom Options/Bundle products, and whether the B2B module is used. It can take 4-6 weeks for simple catalogs and 8-12 weeks for stores with B2B and multi-website structures.

Is migrating from Magento Open Source different from migrating from Adobe Commerce? The core data transfer steps are the same, but stores coming from Adobe Commerce also need the Shopify equivalent of the B2B module (company account, shared catalog) to be set up. Content built with Page Builder, on the other hand, needs to be moved for stores coming from either edition.

Will my Magento SEO rankings drop after the migration? If the 301 redirect map is not built correctly, yes, they will. If the full URL history is pulled from Magento's url_rewrite table and mapped to Shopify's new URL structure, this risk is largely prevented.

How are products with Custom Options moved to Shopify? Options that don't affect the price are moved as line item properties, while options that do affect the price are moved with a personalization app or custom pricing logic based on Shopify Functions.

Is the Adobe Commerce B2B module fully covered on Shopify? Core functions such as company accounts and price lists are covered by Shopify B2B (assigning a company-specific price list is available on Plus). However, more complex flows such as quote/negotiation are not built in and require custom development.

Are all third-party Magento modules available on Shopify? Most common integrations, such as payments and shipping, have a Shopify equivalent. Bespoke modules built specifically for the store have no ready-made equivalent; the logic of these modules needs to be recoded specifically on top of the Shopify Admin API.

Conclusion

Migrating from Magento (Adobe Commerce) to Shopify is essentially a data model transformation: moving from EAV's flexible but complex structure to Shopify's flat and predictable model reduces both the maintenance burden and operational complexity when it is planned correctly. The success of this migration depends on taking a complete data inventory, mapping Custom Options and Bundle products with the right strategy, and building the 301 redirect map in a way that preserves SEO value.

If you are considering moving your Magento or Adobe Commerce store to Shopify, get in touch with Nodus Works; let's plan the process together, from data inventory to go-live testing.