← All guides7 min read

WooCommerce to Shopify migration cost: what you're actually paying for

Cost drivers of a WooCommerce to Shopify migration: data volume, re-runs, and how Graftport's usage-based pricing compares to agency and DIY options.

The first question most WooCommerce merchants ask before a Shopify replatform is "what will this cost?" The honest answer has three parts: what you pay to move the data, what you pay to configure the destination store, and what you pay for the migration tooling itself. Most cost estimates focus only on the third part and undercount the first two. This guide covers all three.

What a WooCommerce to Shopify migration actually involves

A WooCommerce to Shopify migration is not a single action. It is a sequence of operations, each of which takes time or money or both:

  1. Extracting data from WooCommerce. The WooCommerce REST API exposes products, customers, orders, categories, coupons, and blog content. A migration tool reads these via the API using a consumer key/secret you generate in WooCommerce → Settings → Advanced → REST API.
  2. Transforming records into Shopify's shape. WooCommerce's data model does not map 1:1 to Shopify's. Product variations, customer roles, order statuses, and category hierarchies all need explicit mapping decisions.
  3. Loading into the destination Shopify store. Every product, customer, and order is written to Shopify's Admin API. At scale, this is rate-limit-governed.
  4. Staging verification. Before go-live, a human reviews the destination store: product counts, redirect checks, customer spot-sampling. This is where most teams find issues.
  5. Go-live. DNS transfer, domain configuration, Shopify payment provider setup, app re-installation.

Tools and agencies charge for different subsets of this list. Cheap options often cover only step 3 and leave the rest to you. Expensive options often bundle all five but add margin on top of the actual work. Understanding the breakdown helps you evaluate quotes.

Option 1: DIY with a free export/import tool

Several tools offer free WooCommerce-to-Shopify CSV exports. The limitations:

No order history migration. Most free tools move products and customers only. Orders require the Shopify REST API at write time, which means a live integration, not a CSV. Your order history stays on WooCommerce.

No 301 redirects. A free import has no mechanism to read your WooCommerce permalink structure and produce matching 301 redirects on Shopify. Every WooCommerce URL (typically /product/<slug>/ or /?p=123) returns 404 on the new store unless you build the redirect table manually.

No staging workflow. A free tool imports once, directly into the production store. There is no dry-run, no staging verification, no rollback path.

The real cost of a free tool is not zero. It is: lost order history (customer service burden), lost SEO (ranking drops from missed redirects, often lasting months), and engineer time to build the redirect table by hand. Budget those before committing to the free path.

Option 2: An agency or developer

A WooCommerce-to-Shopify project with a specialist agency typically covers all five phases, plus Shopify theme setup and app configuration post-migration.

Cost ranges vary significantly. Small to mid-size catalogues (a few thousand products, under 100,000 orders) are commonly in the low four to five figures. Large catalogues with complex custom attributes, multi-store setups, or bespoke WooCommerce extensions cost more, sometimes significantly more. Agencies add project management, testing, and risk mitigation to the price.

When the agency quote is worth it:

  • Your WooCommerce install has heavily bespoke plugins (subscriptions, auction, custom checkout) that need equivalent Shopify apps found and configured.
  • You need simultaneous theme development and data migration.
  • Internal team capacity is constrained and you need someone else to own the critical path.

When it is not worth it:

  • Your catalogue is standard (simple products, categories, standard orders).
  • Your team has the capacity to run staging verification and manage the go-live sequence.
  • You need the ability to re-run or modify mappings after the initial migration.

The limitation of an agency engagement is that once the project closes, re-running or adjusting the migration requires a new statement of work.

Option 3: Graftport (self-serve platform)

Graftport's pricing is usage-based. There is a platform fee to access the tooling, and individual record processing draws from your monthly included allowance. The exact numbers live on the pricing page and are quoted to match your specific migration (source platforms, brand count, re-run cadence) — not published as a flat rate.

What you are paying for with Graftport:

The full data type set. Graftport's WooCommerce connector migrates products (including variations and custom attributes), customers (with addresses and marketing consent), orders (full history including line items, taxes, fulfillments, and refunds), categories, coupons where compatible, blog posts and pages, and 301 redirects. This is the complete migration scope, not a subset.

Dry-runs and re-runs. You can run extract-only passes, full dry-runs that validate the load shape without writing to Shopify, and live full runs. You can re-run as many times as needed. There is no per-run charge for dry-runs — only the final live records processed are counted toward your allowance.

Re-sync rate. On go-live night you re-run the migration to pick up changes since the rehearsal. Records already loaded are skipped; net-new and updated records are counted at a lower re-sync rate. See the pricing page for the re-sync vs. initial-load rate difference.

Staging workflow. Every migration has a destination Shopify store you load into before DNS flip. The staging store gets all the redirects, customers, products, and orders. Your team reviews the staging result before a single DNS record changes.

What you handle yourself. Graftport does not install Shopify apps, re-configure theme code, or manage the domain transfer. It handles the data layer. The app and theme layer is your team's job.

The real cost question: WooCommerce-specific gotchas

Customer password migration

WooCommerce stores customer passwords in WordPress's own hash format. Shopify cannot validate or store those hashes natively. The practical outcome: every customer on the new store gets an email asking them to set a new password. This is a customer communication task, not a data migration failure, but you need to plan for it.

Budget for an "account password reset" email sequence (usually one automated Shopify email when the customer first tries to log in after migration), and a short customer-service spike in the weeks after launch as customers who did not see the email ask for help.

WooCommerce plugins do not port

WooCommerce subscriptions, WooCommerce Bookings, WooCommerce Points and Rewards — none of this plugin logic transfers to Shopify. The data those plugins produced (subscription orders, booking records) migrates if Graftport can read it via the REST API. The plugin functionality needs an equivalent Shopify app on the destination.

Before you start, list every plugin that affects customer-facing checkout, account management, or catalogue behaviour. Budget for each one to be replaced with a Shopify app. That app cost is part of your total migration budget, even though it is not charged by a migration tool.

Custom attribute mapping

WooCommerce custom product attributes (used for variant options, filter attributes, or display-only metadata) land in Graftport's mapping editor as their own field types. You decide, per attribute, whether it becomes a Shopify product option, a variant metafield, or a product-level metafield. Getting this right before the first live load is worth spending time on — it is much cheaper to fix in the mapping editor before load than to clean up post-migration in Shopify Admin.

For the mapping editor detail, see Mapping Magento custom attributes to Shopify metafields — the same editor handles WooCommerce attributes.

Internal resource cost: the one number everyone forgets

Regardless of which tool or agency you use, someone on your side owns the project. That means:

  • Staging review time (2–5 days for most stores).
  • Redirect verification (2–4 hours if done systematically).
  • Go-live night coordination.
  • Post-launch monitoring (Search Console, customer service queue).

For a self-serve migration on Graftport, this is 20–40 hours of focused time, spread across a project of several weeks. That is not a large commitment relative to the benefit, but it is not zero. Factor it into whoever owns the project before you start.

Related reading

If you are ready to see what the platform fee actually looks like for your migration, the pricing page has the detail — and a short form to get a quote tailored to your source platform and brand count.

Ready to migrate?

Connect a source store, dry-run a migration, see the exact Shopify result before a single record lands. The same platform your team will use on go-live night.

Get started See the calculator
Related guides
Using the Graftport CLI with Claude Code: install to first publish
Set up the Graftport CLI and migration-engineer skill in Claude Code, then drive a real Shopify migration through the validate and publish l
Human approval gates for AI Shopify migrations: the Graftport contract
Why an AI coding agent should never push to Shopify on its own, and how Graftport's two-tier CLI contract enforces a human gate on every cos
Automating JSONata Shopify mapping with an AI coding agent
How the Graftport CLI lets an AI agent investigate source rows, fix JSONata mapping errors against structured validation codes, and publish