Why stores move from Shopify to WooCommerce (and when not to)
The usual drivers are cost structure and control. App subscriptions accumulate, third-party gateways can add transaction fees on top of processor fees, and checkout changes are limited unless you are on Shopify Plus and build with Checkout Extensibility. Stores with a large editorial or content operation often want commerce and content in one WordPress site rather than two systems stitched together.
The trade-off is real. On Shopify, hosting, scaling, PCI scope for the hosted checkout and platform security are handled for you. On WooCommerce you (or your hosting provider and developer) own server performance, caching, PHP and WordPress updates, plugin compatibility, backups and incident response. If the complaint is one missing feature or the theme, fixing it on Shopify is usually cheaper, and we say so.
What moves from Shopify to WooCommerce
| Data | What happens | Notes |
|---|---|---|
| Products and variants | Migrates with transformation | Shopify options and variants become WooCommerce attributes and variations, keyed on SKU. |
| Metafields and metaobjects | Migrates with transformation | Mapped field by field to attributes, post meta, a custom-fields plugin or custom post types. |
| Collections | Migrates with transformation | Manual collections become categories or tags; rule-based collections need explicit assignment or a filtering plugin. |
| Images and media | Migrates | Product, variant and content images are downloaded from Shopify's CDN into the WordPress media library with alt text. |
| Customers and addresses | Migrates | Imported as WordPress users with WooCommerce addresses, tags and mapped marketing consent. |
| Customer passwords | Cannot be migrated | Shopify does not export password hashes, so customers set a new password on WooCommerce. |
| Order history | Migrates | Imported as historical orders with mapped statuses and the original Shopify order number as reference. |
| Product reviews | Decided in the assessment | Reviews live in a Shopify app; migration depends on that app's export and the chosen WooCommerce review setup. |
| Pages and blog posts | Migrates | Shopify pages and articles become WordPress pages and posts; embedded app widgets are rebuilt. |
| URLs and 301 redirects | Migrates with transformation | Paths are either kept via configurable permalinks or mapped, with a tested 301 map for every change. |
| SEO metadata | Migrates | SEO titles, meta descriptions and handles are carried to WooCommerce and the chosen SEO plugin. |
| Discount codes | Migrates with transformation | Recreated as WooCommerce coupons; Shopify automatic discounts and complex rules need a plugin or custom logic. |
| Gift cards | Decided in the assessment | Balances need a gift card plugin and depend on what can be exported from Shopify. |
| App data (loyalty, wishlists, bundles, options) | Decided in the assessment | Each app is checked for an export path and a WooCommerce replacement during the audit. |
| Theme and design | Rebuilt on the target | The Liquid theme is rebuilt as a WordPress theme; design can be matched or refreshed. |
| Checkout, payments, shipping and tax | Rebuilt on the target | Gateway plugins, shipping zones and tax rules are configured and tested with real orders. |
| Subscriptions and stored payment methods | Decided in the assessment | Only possible where the payment provider supports token migration; otherwise customers re-subscribe. |
Getting data out of Shopify: exports, API and app data
Shopify gives you CSV exports for products, customers and orders in the admin, but those files are not the whole store. Metafields, metaobjects, full order line and transaction detail, and some product relationships are more reliably read through the Shopify Admin API, which is what we use for the main extraction.
The bigger gap is app data. Reviews, loyalty points, wishlists, subscriptions, product options built by an app, bundles, back-in-stock lists and page-builder content usually live in the app vendor's system, not in Shopify. Each app has its own export (CSV, API or support request), and some offer none. The audit lists every installed app, what data it holds, how it can be exported and what will replace it in WooCommerce. Gaps are flagged before you commit.
Products, variants, metafields and collections in WooCommerce
A Shopify product with up to three options maps to a WooCommerce variable product: each option becomes an attribute (global attributes under Products > Attributes if you want filtering and shared values, or product-level attributes if not), and each Shopify variant becomes a variation with its own SKU, price, stock, weight and image. Simple Shopify products with a single default variant become simple WooCommerce products. We keep SKUs as the matching key so ERP, feed and warehouse integrations keep lining up.
Metafields have no single WooCommerce equivalent. Depending on how the new theme uses them, a metafield becomes a product attribute, post meta read by the theme, a field managed by a custom-fields plugin, or content in the description. Metaobjects (for example size charts or ingredient lists) often become a custom post type or reusable block.
Shopify collections are flat lists; WooCommerce has hierarchical product categories plus tags. Manual collections usually become categories, sometimes nested to recover a structure Shopify could not express. Automated collections defined by rules (tag, vendor, price) have no native rule engine in WooCommerce, so we either assign products to categories explicitly or rebuild the logic with a filtering plugin.
Customers, passwords and order history
Customer records, default and additional addresses, tags and marketing consent move into WordPress users with WooCommerce customer data.
Passwords do not move. Shopify does not export customer password hashes, so there is nothing to import. Customers set a new password on the WooCommerce store, typically through a reset email sent in a planned sequence after launch.
Order history is imported as completed historical orders with line items, prices, taxes, shipping, discounts and addresses, linked to the right customer, with Shopify statuses mapped to WooCommerce statuses. We keep the original Shopify order number as a reference so customer service can find old orders, and we disable order emails during import so no customer receives notifications for historical orders. Refunds on historical orders are still handled in the original payment provider.
URLs, SEO and 301 redirects: keeping or mapping Shopify paths
Shopify forces fixed prefixes: /products/{handle}, /collections/{handle}, /pages/{handle} and /blogs/{blog}/{handle}, plus collection-scoped product URLs like /collections/{collection}/products/{handle}. WooCommerce is the opposite: permalinks are configurable in WordPress, including the product base and product category base. That gives two valid strategies.
The first is to keep paths. With a product base of /products/, a category base of /collections/ and a post structure matching the old blog path, most Shopify URLs can resolve at the same address, which reduces the number of redirects. The second is to map to a cleaner structure and redirect everything that changes. We check the details either way: WordPress adds trailing slashes by default, which creates an extra redirect hop unless configured, and /pages/ paths need their own handling.
Before launch we crawl the live Shopify store, pull indexed and linked URLs from Search Console, the sitemap and backlink data, and build a redirect map from every old URL to its best new equivalent, including collection-scoped product URLs, blog tags and old redirects already stored in Shopify. Redirects are served by the WordPress site (a redirect plugin or server rules). After launch we crawl again, test the map, submit the new sitemap and watch Search Console coverage. Redirects protect URL continuity; they do not guarantee rankings, and we do not promise them.
Plugins, integrations and custom functionality
Every Shopify app is replaced by a WooCommerce extension, a WordPress plugin, custom code or a decision to drop it. We keep the plugin list short, because each plugin adds maintenance on a self-hosted store.
Payments are rebuilt: Shopify Payments does not exist on WooCommerce, so you choose a gateway plugin (for example WooPayments, Stripe or PayPal) and your provider decides whether stored cards or subscription tokens can move. Shipping rates, zones and carrier label integrations are reconfigured, and tax rules are set up in WooCommerce settings or a tax plugin. Subscriptions move to a WooCommerce subscriptions extension only where the gateway supports token migration; otherwise customers re-subscribe. Gift card balances need a gift card plugin and a balance import, which depends on what Shopify and the plugin can export and accept.
The Liquid theme does not transfer. The storefront is rebuilt as a WordPress theme (block theme or classic). ERP, PIM, marketing and product feed integrations are reconnected to WooCommerce endpoints and tested with real orders on staging.
How the Shopify to WooCommerce migration runs
Audit: store export, app inventory, URL crawl, integration list and hosting requirements. Mapping: a written data map for products, metafields, customers, orders, content, apps and URLs that you sign off. Hosting and staging: we specify or review the WordPress hosting, set up staging and install only the plugins agreed in the map.
Trial migration: a full run into staging with counts compared (products, variants, customers, orders, totals) and a sample of records checked by hand. Automated comparisons help, a person approves. Sign-off: you review the storefront, checkout, emails and admin workflows.
Launch: a short content freeze on Shopify, a delta migration of new orders, customers and stock changes since the trial, DNS switch, redirect activation and live test orders. The Shopify store is kept accessible for reference until post-launch QA is complete and all exports are archived. Post-launch QA: crawl, redirect tests, Search Console checks, order flow and integration monitoring.
Limitations to know before you commit
Customer passwords cannot be moved; plan a reset campaign. App data without an export path may be lost or need manual recreation. Stored payment methods and subscription tokens depend entirely on the payment provider. Shopify Flow automations, Shopify POS setups and other Shopify-native features have no direct WooCommerce equivalent and must be rebuilt or replaced. Order history imports are for reference and service, not for reprocessing payments. Ongoing cost shifts from apps and platform fees to hosting, maintenance and developer time.
Shopify to WooCommerce migration pricing
Straightforward Shopify to WooCommerce moves can start with Migration Essentials from €1,490. Established stores with SEO history, order history or integrations typically need a Managed Migration scope, from €4,900.
The migration assessment costs €290 and is credited in full if you proceed.
Frequently asked questions
Can we keep our Shopify URLs on WooCommerce?
Largely, yes. WordPress permalinks are configurable, so product, category and blog bases can be set to match Shopify's /products/, /collections/ and blog paths. Collection-scoped product URLs, /pages/ paths and trailing-slash differences still need redirects or configuration, which we test before launch.
Do customers keep their passwords after moving from Shopify?
No. Shopify does not export password hashes, so customer accounts are recreated without credentials and customers set a new password through a reset email. We plan that email sequence as part of the launch.
What happens to data stored in our Shopify apps?
It depends on each app. Reviews, loyalty, subscriptions and similar data sit with the app vendor, and export options range from full API access to nothing. The audit lists every app, its export path and its WooCommerce replacement before you commit.
What drives the cost and timeline of this migration?
The number of apps holding data, how heavily metafields are used, the size of order history, the theme rebuild, and how many integrations (ERP, feeds, marketing) must be reconnected. Hosting setup and a proper staging environment are also part of the scope on this route.
Will the store be offline during the switch?
We plan for a short content freeze rather than an outage: the Shopify store keeps selling until the delta migration and DNS switch. Some DNS propagation overlap is normal, which is why new orders are captured in the delta run and checked after launch.