BLOG

Shopify Handbook

A Shopify Migration Does Not Start With Import: Move a Working Store, Not a List of Products

A practical WooCommerce-to-Shopify approach: what can be transferred, what must be redesigned, and why launch is more than pointing a domain at a new storefront.

When a client says, “We need to move the store to Shopify,” the job often sounds almost mechanical: export products, upload customers, connect the domain, and open the new storefront.

In reality, the website is not the only thing moving. An operating business system is moving with it. That system includes catalog logic, order history, payments and shipping, organic traffic, advertising events, email, reviews, filters, integrations, and the routines of the people who run the store. Move only the database records and you can end up with a polished store that is technically online but no longer works the way the business requires.

That is why IceStoreGroup does not begin migration with the Import button. We begin with a map of the current store: what exists, what is actually used, what must survive, and what should be deliberately replaced. This preparation takes time. It is still less expensive than investigating after launch why options disappeared, old links return errors, or inventory, shipping, and analytics no longer match reality.

Start With the Uncomfortable Question: Why Move?

Shopify offers objective advantages to businesses that value operational predictability. It is a managed platform with a unified admin, a standardized checkout, and a mature app ecosystem. The merchant no longer has to maintain the WordPress server stack, patch its system components, or untangle conflicts among the core platform, theme, and multiple plugins. For many teams, this means less infrastructure work and clearer operational responsibility.

Shopify is not an automatic upgrade for every business. It adds a recurring plan cost, app and theme expenses, prescribed URL patterns, and limits on deep customization in some areas. A feature implemented in WooCommerce through one plugin or server-side code might require a different app, a process change, or custom development on Shopify. We examine that trade-off in our guide to Shopify architectural limitations.

The decision should therefore follow business needs: lower maintenance overhead, simplify operations, prepare international sales, stabilize checkout, or reduce accumulated technical debt. If those benefits outweigh the server-level freedom of WooCommerce and the expected recurring costs, migration can be justified. If they do not, changing platforms will not solve the underlying problem.

A Product Moves as a Row. A Catalog Moves as a System

A standard WooCommerce export and Shopify import can carry titles, descriptions, prices, inventory, images, SKUs, and variants. Matching words in two spreadsheets do not, however, prove that the two platforms use the same data model.

We review several layers:

  • identity: SKUs, handles, internal codes, and relationships with external systems;
  • variants: size, color, material, bundles, and valid combinations;
  • commercial data: price, compare-at price, tax status, weight, inventory, and availability by location;
  • content: descriptions, specifications, files, images, alt text, and search fields;
  • structure: WooCommerce categories, future Shopify collections, filters, tags, metafields, and publication rules.

Shopify’s official WooCommerce migration guide specifically tells merchants to map data to Shopify’s format and then verify prices, weights, inventory, images, variants, and search descriptions. Products with more than three options may require a different design using metafields, an app, or custom logic. WooCommerce-to-Shopify migration guidance.

This is not a theoretical detail. In WooCommerce, an attribute may act as a specification, a filter, a purchasable variation, or part of a pricing rule. Shopify separates these roles differently. A blind transfer can create unnecessary variants, remove a critical filter, or stop an integration from recognizing products by their previous identifiers.

We first create a mapping table: source field → Shopify field → transformation rule → verification method. Only then do we run a pilot import with a representative sample: a simple product, a variable product, an out-of-stock product, a discounted item, a product with multiple images, and one of the most complex products in the catalog.

“Import Complete” Does Not Mean “Migration Verified”

Bulk imports have an uncomfortable property: the overall job can finish while individual records are incomplete. A variant can fail because a required option is missing. An image can attach to the wrong row. A blank column can overwrite an existing value. Changing option fields can create new variant IDs and break an app that depends on those IDs.

Shopify explicitly recommends backing up product data and testing a small subset in a development store before a large migration. Its documentation also notes that a started CSV import cannot be canceled and that option changes can recreate variant IDs. Shopify product CSV import rules.

Our quality threshold is not the success message. It is reconciliation between source and destination. We compare product and variant counts, SKUs, prices, inventory, images, and required fields. Then we test exceptions: products without prices, zero inventory, non-standard taxes, digital goods, bundles, subscriptions, refunds, and historical orders.

It is better to find a mapping defect in twenty pilot products than explain it after publishing a catalog of twenty thousand.

Customers and Order History Need Their Own Plan

Customer data is not an attachment to the catalog. Before migration, the team must decide which fields may be transferred, the legal basis for retaining them, which marketing consents remain valid, and how customer accounts will work after launch.

A WooCommerce customer export must be prepared to match Shopify’s customer template before import. Order history is another independent layer. It matters to support, returns, repeat purchases, segmentation, and reporting, but a normal product import does not address it. Specialized migration tools or an API-based process are often required.

Reviews are also not part of a standard product CSV. Their author, rating, content, date, product relationship, media, and publication status all need to be mapped. If reviews will be managed by a Shopify app, its import format should be understood before the app is selected.

At this stage we make a business decision: what belongs in Shopify, what remains in a read-only archive, and what employees access through another system. Moving everything “just in case” is not always useful. Losing data required by support or accounting is worse.

Customers and Order History Need Their Own Plan

Customer data is not an attachment to the catalog. Before migration, the team must decide which fields may be transferred, the legal basis for retaining them, which marketing consents remain valid, and how customer accounts will work after launch.

A WooCommerce customer export must be prepared to match Shopify’s customer template before import. Order history is another independent layer. It matters to support, returns, repeat purchases, segmentation, and reporting, but a normal product import does not address it. Specialized migration tools or an API-based process are often required.

Reviews are also not part of a standard product CSV. Their author, rating, content, date, product relationship, media, and publication status all need to be mapped. If reviews will be managed by a Shopify app, its import format should be understood before the app is selected.

At this stage we make a business decision: what belongs in Shopify, what remains in a read-only archive, and what employees access through another system. Moving everything “just in case” is not always useful. Losing data required by support or accounting is worse.

Translate WooCommerce Plugins Into Business Functions

A plugin list rarely reveals the true scope of migration. One plugin may no longer be used, while another quietly calculates pricing, creates a mandatory order field, or sends data to a warehouse system.

We therefore build a function register instead of a “replacement plugin” list:

  • what the customer sees;
  • which rule runs in cart or checkout;
  • what data is written to the order;
  • where that data goes after purchase;
  • which manual action an employee performs;
  • which exception cannot be lost.

For every function, we choose one path: a native Shopify feature, a vetted app, a revised process, or custom development. When a ready-made solution does not exist or would create excessive dependencies, we design a custom Shopify app. When the store is connected to accounting, ERP, CRM, suppliers, logistics, fulfillment, or marketplaces, migration includes a separate Shopify integration project.

The rule is simple: migrate the business outcome produced by the old plugin, not the plugin’s name.

Organic Visibility Is Protected Before the Domain Switch

One of the most expensive migration mistakes is thinking about SEO after launch. WooCommerce and Shopify use different URL structures. Products, categories, pages, and blog posts receive new paths. Without redirects, old links from search results, ads, email, bookmarks, and third-party websites start returning 404 errors.

Before cutover, we crawl the old store and collect every indexed or visited URL: products, categories, pages, articles, images, old campaign landing pages, and custom paths. Each important URL receives a new equivalent and a permanent 301 redirect. IceStoreGroup’s guide to URL structure and SEO explains why this layer matters beyond technical neatness.

Page titles, meta descriptions, canonical URLs, category copy, image alt text, and internal links must be carried over at the same time. In WooCommerce, some of this data can live in SEO plugin fields and may not appear in the standard product export. It needs to be extracted separately.

After launch, we verify redirects on the live domain, 404 errors, the sitemap, indexing, and priority landing pages. No responsible team can guarantee zero search volatility after a substantial migration. It can eliminate the technical mistakes that turn a controlled transition into avoidable traffic loss.

How We Run a Controlled Migration

A migration should be a repeatable project, not a series of manual improvisations.

1. Discovery

We document catalog types, data, plugins, integrations, payments, shipping, markets, languages, tax logic, organic landing pages, analytics, and team workflows. We also decide what is required for day one, what can follow later, and what is no longer needed.

2. Architecture

We create the data mapping, Shopify catalog model, function register, URL map, and cutover plan. This is where real platform constraints, app costs, and custom-development requirements become visible.

3. Pilot migration

We import a representative sample into a closed store. Complex products, customers, orders, reviews, images, and search fields are verified. We correct transformation rules instead of repairing isolated records by hand.

4. Build and acceptance

We configure the storefront, apps, integrations, payments, shipping, taxes, notifications, and analytics. Customer journeys are tested on mobile and desktop: search → collection → product → variant → cart → discount → shipping → payment → email → fulfillment and refund.

5. Final synchronization and cutover

Before the switch, we transfer changes made since the pilot: new products, inventory, customers, and orders. Redirects are loaded, the domain is connected during an agreed window, and critical tests are repeated immediately on the live address.

6. Post-launch control

We monitor errors, orders, funnel stages, analytics events, inventory, external-system synchronization, and search crawling. Source exports are retained and, where practical, the old store remains available as a read-only reference for an agreed period. A fresh Shopify baseline export is created after the successful launch.

When Expert Help Is Worth the Cost

A small store with a few dozen simple products, standard shipping, and no external systems can sometimes be migrated internally if the team has time to follow the documentation and verify the result.

Expert support is especially valuable when the catalog is large or inconsistent; products use complex attributes; multiple locations, markets, or languages are involved; order history matters; subscriptions, bundles, custom pricing, or unusual shipping logic are present; the store connects to ERP, CRM, suppliers, or fulfillment; or a substantial share of revenue depends on organic search.

IceStoreGroup can manage that transition end to end: audit the current store, design the Shopify model, migrate and reconcile data, rebuild business functions, develop the storefront, configure integrations, prepare redirects, run acceptance, and support launch. If scope and risk still need to be defined, the project can start with a Shopify migration diagnostic.

A Migration Is Not Finished When the Homepage Opens

Shopify can provide a more predictable operating model, a unified management environment, and a practical foundation for future growth. It does not make the client’s decisions about catalog structure, old plugin logic, data quality, or the future of established URLs.

A good migration is almost invisible to the customer: the familiar domain opens, the product can be found, the right variant is selectable, price and shipping are correct, payment works, email arrives, and support can access the necessary history. A great deal of deliberate work makes that simplicity possible.

That is how we approach migration: preserve what is demonstrably valuable, replace outdated solutions deliberately, and verify the result with data and real journeys. Even after a careful launch, no store is permanently protected from future app changes, integration updates, or new business requirements. Protection comes from clear architecture, documentation, baseline exports, and regular verification—not from a promise that problems will never happen. Our article on hidden regressions after Shopify updates explains that operating discipline.

If you are planning to move a working WooCommerce store—or a store on another platform—discuss the migration with IceStoreGroup before the import becomes an irreversible collection of manual fixes.

Bob Saylor

IceStoreGroup