Real strategists. Real AI tools. Real growth. — 1Digital® since 2012
Workspace by 1Digital® — the agency platform we built. Coming to select agencies. Join the early-access list →
WooCommerce → Shopify Plus Replatform
Replatform from WooCommerce / WordPress to Shopify Plus — projecting serialized wp_postmeta into metafields and ACF repeaters into metaobjects, porting WooSubscriptions to Shopify Subscriptions/Recharge with Stripe token continuity, deploying Shop Pay against Woo's PHP checkout, and converting the WordPress permalink surface into Shopify's prefixed /products/ handle 301s. 200+ migrations completed on a documented no-data-loss cutover playbook with rollback paths.
Trusted by 400+ Brands · Certified Partners
Of results, scale, and quality at the enterprise level.
Specialists across SEO, AI SEO, PPC, design, dev, and strategy.
US core team for clear communication; vetted global specialists for international client work.
Rated 4.9/5 across 941+ verified client reviews.
Reviewed by the 1Digital® Migration TeamLast updated:
TL;DR
1Digital® migrates merchants off WooCommerce / WordPress onto Shopify Plus — Online Store 2.0, Hydrogen on Oxygen, Shop Pay, Subscriptions, and native B2B on Shopify. Serialized wp_postmeta becomes metafields, ACF repeaters become metaobjects, WooSubscriptions ports to Shopify Subscriptions/Recharge with Stripe token continuity, plugin sprawl collapses onto first-party features, and the WordPress permalink surface becomes prefixed /products/ handle 301s with a rebuilt schema graph.
Related: All platform migrations · WooCommerce → BigCommerce · Shopify Plus Agency · Shopify Plus Developer · WooCommerce Development · Data Migration
Why Replatform
WooCommerce product data is serialized PHP in wp_postmeta with variations as child posts and attributes as taxonomy terms. Shopify has no postmeta analog: descriptive data becomes product metafields, and relational data ACF stored as repeaters/flexible content becomes Shopify metaobjects — a canonical record referenced from many products and surfaced via the Storefront API and Liquid. That projection is the core engineering work.
Most serious Woo stores have ACF, custom post types, and taxonomies powering size guides, fitment, ingredient panels, and editorial. On Shopify these map to metaobjects + metafields — relational, queryable, surfaced through Storefront API and Liquid — without WordPress query overhead.
Woo checkout is a WordPress page through PHP and functions.php hooks — slow and conversion-leaky on mobile. Shop Pay's one-tap accelerator and network-effect login typically improve mobile checkout completion versus a stock Woo checkout; we baseline your current funnel before migration and report the measured post-launch delta rather than quoting a range.
A 25–60-plugin WooCommerce store collapses onto Shopify first-party features (Subscriptions, Shop Pay, Checkout Extensibility, Markets, Functions) on a single release train — instead of Woo core + WooSubscriptions + Action Scheduler + ACF + page builder + tax + shipping all moving on independent cadences.
WooCommerce Subscriptions depends on Action Scheduler running cleanly under load and renewal-failure handling you build. Shopify Subscriptions, Recharge, or Bold run on Shopify-managed infrastructure with retry logic, dunning, and customer portals as native features.
Woo B2B (Wholesale Suite, B2BKing) is plugin-stacked. Native B2B on Shopify handles Companies, Locations, Buyer Roles, Catalogs, Net terms, and quoting first-party, and Shopify Markets handles multi-currency/region/language without WPML, MultilingualPress, or geolocation plugins.
What We Migrate
Field-level mapping with referential integrity — serialized postmeta becomes metafields, ACF repeaters become metaobjects, and WooSubscriptions ports with Stripe token continuity.
Products, variations (child posts), attributes (taxonomy terms), ACF fields → Shopify products + variants + metafields + metaobjects. Serialized wp_postmeta / wp_termmeta normalized to Shopify's metafield + metaobject schema.
WooCommerce customers, addresses, marketing consent → Shopify customers + segments. WordPress roles relevant to commerce (Wholesale Customer) carried across; passwords reset-on-first-login (Shopify requirement).
Full orders, line items, fulfillments, refunds, coupons, gift cards (PW/YITH WooCommerce Gift Cards) → Shopify orders + native gift cards + native store credit.
WooCommerce Subscriptions billing schedules, renewal dates, payment tokens (Stripe customer + source IDs), pause/skip status → Shopify Subscriptions or Recharge with Stripe customer-ID token continuity, validated by parity reports.
Wholesale Suite / B2BKing role-based pricing → B2B on Shopify Catalogs with quantity rules + price-list overrides. Net terms / approval workflows → Shopify B2B Net terms + draft-order quoting.
WordPress pages, posts, ACF flexible content/repeaters, Gutenberg blocks → Shopify Pages, Online Store 2.0 sections + metaobjects, Shopify Blog. Editorial preserved with byline, publish date, revision history.
Full URL inventory from the Yoast / RankMath / SEOPress sitemaps — /shop/, /product/, /product-category/, /product-tag/, blog, ACF landing pages, CPT archives — onto a page-level 301 map respecting Shopify's mandatory prefixes.
Yotpo, Judge.me, Loox, WP Customer Reviews, Woo native reviews → Judge.me / Yotpo / Okendo / Loox / Stamped for Shopify with star ratings, photo/video reviews, verified-buyer flags, AggregateRating schema continuity.
How We Migrate
Inventory every plugin, ACF group, custom post type, taxonomy, WooSubscriptions configuration, gateway, shipping/tax rule, B2B plugin, multilingual setup, and functions.php hook, mapped to a Shopify Plus equivalent (native, app, Function, Checkout UI Extension, Hydrogen component). Produces a plugin-replacement spreadsheet and risk register.
Catalog count, wp_postmeta/wp_termmeta density, serialized-field inventory, customer/order volume, subscription count + cadence, ACF/CPT density, Yoast/RankMath/SEOPress sitemap parse. Produces parity targets and a URL-mapping spreadsheet respecting Shopify's mandatory prefixes.
Woo /shop/, /product/<slug>/, /product-category/<slug>/, blog and ACF-driven landing-page URLs → Shopify /products/<handle>, /collections/, /pages/, /blogs/ with 301 rules, canonical strategy, schema graph rebuild (Product, BreadcrumbList, FAQPage, Organization) with consistent @id references, hreflang re-anchored to Markets.
Online Store 2.0 theme or Hydrogen storefront. Iterative loads with parity reports: postmeta/ACF → metafields/metaobjects, customers, B2B companies, WooSubscriptions → Shopify Subscriptions/Recharge with token migration, orders, reviews. Apps, Functions, Checkout UI Extensions configured against staging.
Freeze WordPress writes (wp-admin save hooks off, inventory read-only), sync the final delta (orders, subscriptions, customers, inventory) via WP REST + WooCommerce REST → Shopify Admin GraphQL, flip DNS at low TTL, and validate checkout, Shop Pay, Functions, Markets, subscriptions, GA4, Consent Mode v2, and pixels live.
30+ days of crawl-error triage, Search Console change-of-address, ranking and AI-citation monitoring, Core Web Vitals tracking, Shop Pay uplift validation, subscription renewal validation across 1–2 billing cycles, and an edge-case fix sprint.
Plugin Mapping
Most mainstream Woo plugins have a Shopify equivalent. Bespoke functions.php hooks and niche plugins rebuild as Functions, Checkout UI Extensions, or Hydrogen components.
| WooCommerce / WordPress | Shopify Plus Equivalent |
|---|---|
| WooCommerce Subscriptions | Shopify Subscriptions, Recharge, or Bold (with Stripe token migration) |
| Klaviyo for WooCommerce | Klaviyo for Shopify (native, deepest integration of any platform) |
| Yoast SEO / RankMath / SEOPress | Shopify built-in SEO + theme-level meta + Shopify SEO apps |
| Yotpo / Judge.me / Loox / Stamped | Same vendors with native Shopify connectors |
| ACF / Custom Post Types / Pods | Shopify metaobjects + metafields (relational, Shopify-native, no WP query overhead) |
| WooCommerce Wholesale Suite / B2BKing | B2B on Shopify (Companies, Locations, Buyer Roles, Catalogs, Net Terms — native) |
| WPML / Polylang / TranslatePress | Shopify Markets (multi-currency, region, language) + Translate & Adapt |
| WP Rocket / W3 Total Cache / LiteSpeed | Shopify's CDN + edge cache (built-in, no caching plugin) |
| ShipStation / EasyPost for WooCommerce | Shopify Shipping, ShipStation, ShipperHQ |
| Stripe / Authorize.net / PayPal for Woo | Shopify Payments + Shop Pay + Apple Pay + Google Pay + PayPal + Affirm + Klarna |
| Elementor / Divi / Gutenberg builders | Online Store 2.0 sections + Shogun / PageFly / GemPages (or Hydrogen + Sanity/Contentful) |
The Technical Reality
On a WordPress source the descriptive layer — fitment tables, size and care guides, ingredient panels, build sheets, editorial modules — is overwhelmingly built with Advanced Custom Fields repeaters, flexible-content layouts, and custom post types, all stored as serialized rows hanging off WordPress posts. The destination question is not 'how do we move the rows' but 'what is the right Shopify shape for this content,' and Shopify answers it with metaobjects: standalone, typed, queryable records you define once and reference from many products, collections, or pages.
The design step is to identify which ACF structures are genuinely shared entities (one fitment table referenced by 400 SKUs) versus per-product attributes. Shared entities become metaobject definitions with typed fields and are linked by reference, so the data is canonical and editable in one place and renders through the Storefront API and Liquid. Per-product descriptive values become metafields on the product. Purchasable option combinations resolve into Shopify's variant model, with oversized WooCommerce attribute matrices split into grouped products where they would exceed Shopify's variant limits. We deliver a metaobject/metafield schema for sign-off before loading anything — pouring un-modeled ACF blobs into a generic importer is how stores launch with duplicated, unmaintainable content.
A WooCommerce checkout is a WordPress page rendered through PHP, theme functions.php hooks, and whatever cart and gateway plugins are stacked on top — fragile under load and a measurable conversion leak on mobile. Shopify Plus does not give you that page to keep customizing; instead it provides Shop Pay's one-tap accelerator and buyer-recognition network plus Checkout Extensibility, where bespoke logic lives in Shopify Functions and checkout UI extensions rather than PHP hooks.
Practically, that reframes the migration: cart-discount rules, fee logic, gating, and shipping/payment customizations that were functions.php code are re-expressed as Functions running on Shopify's infrastructure. The upside is a managed, fast checkout and a conversion lift we instrument — funnel baselined on Woo before cutover, delta reported post-launch (a conversion lift we instrument rather than assert — baselined before cutover and reported as a measured post-launch delta, not a promised number). The cost is that any deeply hook-coupled checkout behavior is a scoped rebuild, not a port, and that rebuild list is itemized at discovery from the plugin and functions.php audit so it appears on the proposal rather than mid-build.
WooCommerce Subscriptions runs on Action Scheduler cron and tokenized billing through Stripe (or Braintree/Authorize.net). Moving recurring revenue to Shopify Subscriptions or Recharge hinges on porting the customer and payment-method tokens via Stripe customer-ID continuity so active subscribers are never asked to re-enter a card, then carrying schedules, next-renewal dates, paused/skipped state, and discounts. We stage a parallel test renewal before cutover and validate two live billing cycles after launch; a missed renewal is churned recurring revenue, so it is gated as a release-blocker.
Finally, the address-space transition. WordPress carries the deepest long-tail URL inventory of any common source — /shop/, /product/<slug>/, /product-category/, /product-tag/, blog and tag archives, ACF landing pages, CPT archives — and Shopify's resource namespace is fixed: /products/<handle>, /collections/<handle>, /pages/, /blogs/. We pull the full Yoast/RankMath/SEOPress sitemap and resolve each URL family with its own redirect rule rather than a blanket homepage catch, replace the WordPress-plugin JSON-LD with a rebuilt Shopify-native schema graph, and verify every redirect post-launch through crawl tooling and Search Console coverage.
SEO Equity Protection
WordPress has the deepest long-tail URL inventory of any common source and Shopify's mandatory prefixes change every URL. The per-type 301 map and a clean WooSubscriptions token cutover are release-blockers.
Timeline & Engagement
Standard B2C
Mid-size catalog within Shopify's variant model, manageable plugin stack, Online Store 2.0 theme, no subscriptions, common app stack, 2 payment gateways, single store.
Subscriptions / B2B / Mid-complexity
WooSubscriptions → Shopify Subscriptions/Recharge with token migration, Wholesale Suite/B2BKing → B2B Catalogs, ACF → metaobjects, multilingual → Markets, ERP.
Hydrogen / Headless / Enterprise
Hydrogen on Oxygen, full ACF → metaobjects normalization, bespoke functions.php → Functions/Extensions rebuilds, large catalog (50K+ SKUs), Markets multi-region.
Engagements start at $185/hour. Fixed-fee proposal after discovery, sized to your catalog, postmeta density, plugin sprawl, subscription scope, and target architecture.
Request a Proposal
Share your plugin count, ACF/CPT usage, WooSubscriptions scope, Wholesale Suite/B2BKing setup, hosting, payment gateways, and what is pushing you to move (hosting cost, plugin fragility, conversion, scale). A senior strategist responds within one business day with a pricing band and a draft migration roadmap.
FAQ
Free migration audit. Fixed-fee proposal. metafield/metaobject schema approved before data moves. 200+ migrations run on a documented no-data-loss cutover playbook.