Products, customers and orders crossing one cutover seam into a new store, with the old routes preserved.

WooCommerce to Shopify migration without lost logic

Full database access makes the export easy. The work is in the plugins holding product logic, the attribute structures, and a WordPress URL map that has to survive the move.

Where the work goes

The export is the easy part

WooCommerce gives up its data readily. What it does not give up is its plugins.

A WooCommerce store usually comes with full database access, a working REST API and a functioning CSV export. Compared with most source platforms that is a good position, and it is why the difficulty sits somewhere else.

WooCommerce stores products as WordPress posts with the commercially interesting parts held in post metadata. Anything a plugin added lives in that metadata too, or in its own tables, and it does not come out of a product export. Custom fields, product add-ons, bundles, role-based pricing, booking logic and delivery-date rules all behave like part of the product until you try to move them.

Variable products are the second theme. WooCommerce lets attributes and variations grow without limit, so ranges routinely arrive with more option dimensions than Shopify’s product structure holds. Resolving that is a business decision about how the range should be shopped, not a mapping exercise, and it is made before the import rather than during it.

The third is that the site is a WordPress site as well as a shop. Pages, posts, categories, tags, author archives and uploaded media all carry links and search visibility, and a plan that only accounts for the products will lose the rest.

What moves

Entity by entity, from a typical WooCommerce store

Confirmed against your export, not assumed from this table.

WooCommerce entities, transfer position and the decision each requires
EntityNormally transfersWhere a decision is needed
Simple productsYes, including images, descriptions, SKUs and pricesWhich meta fields become Shopify metafields rather than being dropped
Variable productsUsually, where the attribute set fits Shopify’s option structureRanges with more option dimensions than Shopify holds: split, combine or model as metafields
Categories and tagsYes, as collectionsNested category trees flatten, so hierarchy has to be rebuilt in navigation and linking
CustomersYes, without passwords, which cannot move from any platformHow and when customers are told they need to reactivate an account
OrdersUsually, as historical recordsHow far back to import, and whether refunds and partial fulfilments need to be represented
Pages and postsYes, though formatting from page builders often needs reworkWhich content is worth keeping, and what was only ever there for search
CouponsRules that map to Shopify discountsConditions with no equivalent, which need a different mechanism or a decision to drop
ReviewsThrough a review application’s import, not through the platformWhich review app, and whether historical ratings must be preserved

Yoast or Rank Math titles and descriptions can usually be carried across into Shopify’s SEO fields, which is worth doing while the mapping is already open.

Reconstruction

What has no direct destination

Identified in discovery and priced as build work, not as data.

These are the WooCommerce features that behave like data and are actually functionality. Each one is a build decision.

Plugin-held product logic

Product add-ons, configurators, custom fields and bundle rules are held by the plugin that created them. On Shopify they become metafields, metaobjects, a comparable application or bespoke storefront work, and the choice affects both the build cost and the ongoing licence cost.

Role-based and wholesale pricing

WooCommerce stores often run trade pricing through a plugin that reads a WordPress user role. Shopify handles that through a different mechanism entirely, and the right one depends on whether the business is on Shopify Plus and how the trade accounts actually work.

Subscriptions

Subscription plans can be recreated, but stored payment methods cannot be transferred between platforms and payment providers. Existing subscribers have to re-authorise, so the communication plan matters more than the data mapping.

Page-builder content

Content assembled in Elementor, Divi or a similar builder exports as markup that means nothing outside its plugin. Those pages are rebuilt as Shopify templates and sections, which is usually a chance to reduce their number.

Nothing on this list is a surprise if it is found in week one.

URLs and search

A WordPress URL map, redirected once

The most valuable thing in the migration is often the link profile.

WooCommerce sites carry a wider variety of routes than most source platforms, and each family needs a deliberate rule rather than a best guess.

  • Product routes under the WooCommerce product permalink, mapped to Shopify product handles
  • Nested product-category routes, flattened to collections with a decided parent
  • The shop and paginated archive routes, redirected to their catalogue equivalents
  • Blog posts, category and tag archives, mapped to Shopify blog structures or consolidated
  • WordPress pages, including the ones nobody remembers that still earn traffic
  • Attachment and media pages, which frequently exist and rarely deserve to be recreated
  • Feed, search and parameter routes, handled with rules rather than one entry at a time
  • Every redirect verified as a single hop after launch, not a chain through an intermediate route

The map is built from a crawl of the live site and, where available, an export of the landing pages that actually receive search traffic. Routes with no traffic and no links are retired deliberately rather than forgotten.

The rest of the project

Design, integrations, validation and cutover

A migration is a trading change. Four parts of it are not about data at all.

Swipe the parts

Design

The theme decision

A migration is a reasonable moment to change the storefront, and a bad moment to change everything at once. Most WooCommerce moves suit a restrained theme implementation, with the design budget spent on the templates that sell.

  • Keep the design change bounded during a replatform
  • Rebuild page-builder pages as sections
  • Leave the visual overhaul as a separate later project if it is contentious

Systems

Integrations and special data

The plugins that talk to accounting, despatch, stock and email are part of the migration scope. So is anything holding data the shop reads but does not own.

  • Inventory each active plugin against what it actually does
  • Name the replacement or the rebuild for each
  • Test the finance and despatch flows before cutover, not after

Proof

Validation

A sample migration first, checked field by field on a representative set including the awkward products. Then a full run reconciled against source counts.

  • Counts reconciled per entity against the source database
  • Spot checks on variable products, not only simple ones
  • Journeys tested with a real order before go-live

Switch

Cutover and rollback

A delta run for everything that changed during the build, a planned switch at a quiet trading hour, and the old site kept available and reachable until the new one is proven.

  • Delta migration for orders and customers created during the build
  • DNS and redirect changes staged and verified
  • The WooCommerce site retained read-only as the rollback
Price drivers

What actually moves the number

None of it is the product count on its own.

A WooCommerce migration is priced from what the source contains, not from what the platform is called.

  • How much product logic lives in plugins rather than in product data
  • The number of option dimensions in the largest ranges
  • Order and customer history volume, and how far back it must go
  • The number of distinct URL families needing a redirect rule
  • Whether trade or role-based pricing has to be reproduced
  • How much page-builder content has to be rebuilt as templates
  • The number of live integrations that cannot be paused during cutover

The estimator uses platform, data volume, design requirement and special requirements to return a band. A fixed price follows source access, a sample export and a look at the integrations.

Money

What this work starts at

Published starting figures in GBP and USD, excluding VAT.

Migration delivery

From-price or scoped after source review

Data only

Data migration

From £1,000From $1,300

Products, customers, orders and content mapped into a Shopify store that already exists or is priced separately. Fixed once source access and a sample migration are reviewed.

  • Documented mapping of the selected entities
  • Sample migration before the full run
  • Validation against the source records
  • Redirect mapping where URLs change

Starting price · scoped after discovery

Migration and build

Shopify launch

From £5,000From $6,500

Moving to Shopify and building the store in one project, so the data and the storefront land together rather than in two disconnected pieces of work.

  • Store build, configuration and templates
  • Managed data migration within stated limits
  • Redirects, analytics and technical SEO baseline
  • Launch, training and short post-launch support

Starting price

Plus, B2B, multi-market

Advanced Shopify

From £8,000From $10,500

Shopify Plus, B2B, multi-market, multi-language, custom integrations or headless work. These configurations are sized after discovery, not instant-priced.

  • Trade accounts, price lists and B2B rules
  • Multi-market and multi-language configuration
  • ERP, PIM, WMS and accounting integrations
  • Headless or custom storefront work where justified

Starting price · scoped after discovery

Third-party platform, application and migration-tool fees are separate unless listed. Estimator output is indicative and non-contractual.

Questions

Asked before this work is agreed

Can you migrate variable products with many attributes?

Usually, but not always as a single product. Where a range has more option dimensions than Shopify’s product structure holds, it is split, combined or modelled with metafields, and that decision is made with you before the import because it changes how the range is shopped.

Will our WordPress blog and pages come across?

Yes, with the caveat that content built in a page builder exports as markup that only means something inside that plugin. Those pages are rebuilt as Shopify templates, which is usually an opportunity to reduce how many of them there are.

What happens to our wholesale pricing plugin?

It does not move. Shopify handles trade pricing through different mechanisms, and which one fits depends on your plan and on how the accounts actually work. It is scoped as build work rather than treated as data.

Do our customers have to reset their passwords?

Yes. Password hashes cannot be transferred between platforms, on any migration. Accounts move with their addresses and order history, and customers reactivate on first use. The message that goes out is planned before cutover.


Send the WooCommerce plugin list.

The active plugins tell us more about the real scope of a migration than the product count does.

Discuss a project