Skip to content
Migration

Migrating from Shopify to Commercefull — A Complete Guide

Step-by-step Shopify to Commercefull migration — what moves, what doesn't, how the built-in migration module works, and the pitfalls to plan for.

October 6, 2026

Shopify is where most merchants start — and where many eventually feel the squeeze: app bills stacking up, checkout locked behind Plus, and a growing sense that the store you built isn’t really yours.

Commercefull ships with a built-in migration module designed for exactly this move. Here’s how a real Shopify→Commercefull migration works.

What actually moves

The migration module tracks each import as a job, maintains a mapping table between Shopify IDs and Commercefull IDs, and logs every error for triage. Coverage:

Shopify entityCommercefull destination
Products & variantsproduct module
Collectionscontent module
Customerscustomer module
Ordersorder module
Inventory levelsinventory module
Discounts / price rulescoupon module
Gift cardscoupon (gift card subsystem)
Tax settingstax module
Shipping zonesshipping module
CMS pagescontent module
Product reviewsproduct reviews subsystem

The workflow

1. Export from Shopify. Pull your data via the Admin API (or CSV exports from the admin panel — Products → Export, Customers → Export).

2. Create an import job. The Business API registers the import and returns a job ID. Always start with a dry run:

curl -X POST http://localhost:3000/business/migration/jobs \
  -H "Content-Type: application/json" \
  -d '{
    "organizationId": "your-org-id",
    "jobType": "full",
    "source": "shopify",
    "sourceStoreUrl": "https://your-store.myshopify.com",
    "dryRun": true
  }'

3. Stream records. For each exported record, create it via the Business API and record the ID mapping back to the job — that’s what makes rollback, re-runs, and audit trails possible.

4. Review errors, fix, re-run. The job’s error log tells you exactly which records failed and why. Fix the data, re-run only what failed.

What doesn’t move (plan for these)

Be honest with yourself about the gaps — every platform migration has them:

  • Customer passwords. No platform exports password hashes — customers reset on first login. Plan a “reset your password” email campaign for launch week.
  • App data. Your Shopify apps’ data (reviews apps, loyalty apps, subscription apps) lives in those apps’ databases, not Shopify’s. Export from each separately.
  • Theme. Liquid templates don’t port — you’ll rebuild the storefront in Commercefull’s theme system or go headless on the Customer API.
  • Subscriptions in progress. Active subscription contracts need re-establishment — migrate subscribers and re-create their schedules.

The wins on the other side

  • No more app tax. Loyalty, subscriptions, reviews, gift cards, B2B — the things you were renting — are native modules now.
  • Your checkout. Every template and flow is editable code, not a sandboxed script slot.
  • Your database. Plain PostgreSQL. Query it, export it, keep it forever.

The full technical guide — entity mapping tables, API calls, dry-run workflow — is in the docs: Migrating from Shopify.

Not on Shopify? The migration module also supports WooCommerce, Magento, BigCommerce, PrestaShop, Shopware, Wix, Squarespace, and CSV.

Ready to own your store?

Commercefull is free, open-source, and Apache-2.0 licensed. Every module, every line, every row of data — yours.