How to migrate from BigCommerce to Shopify, step by step
BigCommerce exports cleanly, which makes it easy to underestimate. The two things that decide how this migration goes are a single URL Structure setting and how heavily you use modifiers — both of which can turn a routine move into a rebuild. This is the whole sequence, cited throughout.
Written for someone doing this themselves. Every step links to the documentation it came from, so you can check it rather than trust us. If you would rather not do it, we will quote it.
The checklist
Every step, in the order it has to happen.
Before you touch anything2
Products → View · Customers · Orders · Settings → 301 Redirect
Watch out: Plan names changed to Core / Growth / Scale / Performance, but support articles still say Plus, Pro and Enterprise. Trust the pricing page over article prose.
Settings → URL Structure
Watch out: If the store uses SEO Optimized (Long), products sit at /products/name — and Shopify refuses to create redirects from /products. This one setting decides whether your migration is routine or an SEO emergency.
Get your data out5
Settings → 301 Redirect → Export All
Watch out: Dynamic rows export with an empty destination unless you tick “Export dynamic redirect URLs” — without it you inherit a map of destinations that do not exist.
Products → Export
Watch out: BigCommerce states plainly that fields absent from the supported list — bulk pricing included — cannot be imported or exported at all. Modifiers are likewise absent, so a CSV export silently drops both.
Products → View → [product] → Customizations · Products → Options
Watch out: BigCommerce recommends modifiers as the escape hatch above its variant ceiling — so converting them to Shopify variants often blows the three-option limit long before the variant limit.
Customers → Export
Watch out: BigCommerce can import passwords and Shopify cannot, so this is a one-way door. Build a custom template if you need customer id, date joined or tax-exempt code.
Orders → Export Orders
Watch out: Line-item modifier selections — engraving text, uploaded files — are the most commonly lost field, and they cannot be recovered afterwards.
Build in parallel3
Shopify admin → Apps
Watch out: Shopify’s first-party Store Migration app does not list BigCommerce, and older guides describing a BigCommerce option inside it are out of date — planning around it will lose you a day.
Products → Import · Customers → Import · Settings → Notifications
Watch out: A blank cell overwrites the existing value as blank, while an omitted column preserves it. Imports cannot be cancelled once started, and there is no import history.
Customers → Companies · Markets → Catalogs
Watch out: Shopify B2B is no longer Plus-only, but below Plus you get three active catalogs and cannot assign one directly to a company location — you route through markets instead.
Keep your rankings1
Content → Menus → URL redirects → Import
Watch out: Redirects only fire on URLs that genuinely 404 — a redirect whose source still resolves is silently inert, which is the most common “the redirect didn’t work” report.
Cut over1
Registrar DNS · Shopify → Settings → Domains
Watch out: Remove pre-existing A and AAAA records first — only one of each may point at Shopify. Propagation can take up to 48 hours.
After the switch1
BigCommerce → Account Settings
Watch out: Core, Growth and Scale can be cancelled in-panel with billing stopping immediately, but Performance plans are contracted and BigCommerce does not offer refunds — cancel a contracted plan only at renewal.
What does not come with you
Every migration guide that promises everything moves is selling something. These are the things that genuinely do not, and what to do instead.
Product modifiers
Modifiers change fulfilment without changing the SKU and cannot track inventory. Shopify has no modifier concept, and they are absent from BigCommerce’s exportable fields — so every CSV route drops them.
Instead: Rebuild as line-item properties (needs theme code) or a product-options app. File uploads need a third-party app.
Products with more than three options
BigCommerce caps SKUs per product but not the number of variant options; Shopify allows 2,048 variants but only three options.
Instead: Collapse two options into one concatenated option, or demote the least inventory-relevant one to a line-item property.
Customer passwords
BigCommerce can import passwords and Shopify cannot, so this is genuinely a one-way door.
Instead: Pre-announce it, and time a password-reset campaign to cutover. Note that Shopify B2B requires new customer accounts.
Bulk / tiered pricing on the base catalogue
BigCommerce states bulk pricing cannot be imported, exported or created in the CSV at all, and Shopify’s volume pricing is B2B-catalog only.
Instead: Re-enter through B2B catalogs for wholesale; a tiered-pricing app for direct-to-consumer.
Customer-group category visibility
BigCommerce can hide whole categories from a group, including guests. Shopify gates at product level and only for B2B companies.
Instead: An access-control app, or a dedicated B2B store gated to authenticated customers.
Quotes and RFQ
B2B Edition includes staff quoting with per-quote pricing and a buyer-facing quote history. Shopify has no native quote object.
Instead: Draft orders approximate it, but without versioning, expiry or a buyer-facing quote list — a quoting app is realistically required.
Shopper impersonation
BigCommerce lets staff log in as a customer natively; Shopify has no equivalent.
Instead: Reps create draft orders as themselves, or you install an impersonation app.
Nested company hierarchies
B2B Edition supports nested companies; Shopify’s model is strictly Company → Company Location.
Instead: Model the hierarchy with tags and metafields, and do reporting rollups outside Shopify.
Theme and storefront code
Stencil (Handlebars) and legacy Blueprint themes share nothing with Shopify Liquid.
Instead: A full rebuild. Budget it as new build work, not migration.
Your URLs, mapped.
BigCommerce and Shopify disagree about URL shapes, so every old address needs a 301 to its new home. This is the mapping.
| BigCommerce | Shopify | Note |
|---|---|---|
| /linen-throw | /products/linen-throw | SEO Optimized (Short) — the common default, and the cleanest case. |
| /products/linen-throw | /products/linen-throw | SEO Optimized (Long). Shopify refuses redirects FROM /products — match the handle exactly and no redirect is needed. |
| /bedding/linen-throw | /products/linen-throw | Category-path product URLs. Safe to redirect from. |
| /bedding | /collections/bedding | |
| /categories/bedding | /collections/bedding | /categories is not reserved on Shopify, so this source is safe. |
| /home/bedding/throws | /collections/throws | Shopify collections are flat — nested levels collapse, and handles can collide where two parents share a child name. |
| /brands/acme | /collections/acme | Shopify has no brand object; brands become collections automated on vendor. |
| /cart.php | /cart | Legacy Blueprint theme paths. The .php source is fine to redirect from. |
| /wishlist.php | (no equivalent) | Shopify has no wishlist page — there is nowhere to send this. |
Your apps, matched.
- Native ratings & reviewsJudge.me / Yotpo
BigCommerce reviews are native and free on every plan; on Shopify you will need an app for storefront reviews.
- Faceted search (Scale plan)Shopify Search & Discovery
Native filters are free but cap at 25 per store and stop working on collections over 5,000 products.
- Rebillia / subscription appsShopify Subscriptions
An improvement — BigCommerce has no native subscriptions — but Shopify subscriptions do not work alongside B2B.
- ShipperHQShipperHQ for Shopify
Live carrier rates need third-party carrier-calculated shipping: Advanced and Plus only, extra fee on Grow, unavailable on Basic.
- Yotpo LoyaltySmile.io / LoyaltyLion
Point balances are the problem, not the program — assume manual reconciliation of existing points.
- Klaviyo / OmnisendSame tool, Shopify app
Lowest-risk item on the list; flows referencing customer groups or modifier values need rewriting.
- Shogun / Page BuilderShogun, PageFly or theme sections
Vendor carryover, but pages do not transfer between the BigCommerce and Shopify versions — rebuild.
- B2B EditionShopify B2B (native)
Most of it maps and gets cheaper — but quoting and shopper impersonation do not exist on Shopify.
- Native wishlistPaid app or custom build
Free and native on every BigCommerce plan; Shopify has no native wishlist at all.
- Rewind BackupsRewind for Shopify
Shopify has no native store backup — worth reinstating on day one.
What goes wrong.
Every product URL 404s and no redirect can be created
Why: The store used SEO Optimized (Long), so products live at /products/name — a path Shopify blocks as a redirect source.
Avoid it: Check Settings → URL Structure first. If it is Long, force Shopify handles to match the old slugs exactly so no redirect is needed.
Customers get confirmation emails for years-old orders
Why: Importing historical orders fires Shopify’s new-order notification once per order.
Avoid it: Disable order notifications and pause connected fulfilment or ERP webhooks before the import, then re-enable.
A re-run import wipes descriptions and tags across the catalogue
Why: With overwrite enabled, a blank cell overwrites the existing value; only an omitted column preserves it.
Avoid it: Never re-import a trimmed CSV with empty cells — delete the whole column instead. Imports cannot be cancelled once started.
Engraving text, gift messages and uploads vanish
Why: Modifiers have no Shopify counterpart and are absent from BigCommerce’s exportable fields, so every CSV route drops them.
Avoid it: Inventory modifiers by hand before exporting and rebuild them deliberately; accept that historical orders lose the selections.
Variant counts do not reconcile and products arrive split
Why: CSV import routes split products above the variant ceiling and merge extra options into the third.
Avoid it: Use an API-based route with a dry run, and pre-collapse any product with more than three variant options by hand.
Wholesale customers see retail prices on day one
Why: Customer groups and price lists have no single Shopify equivalent, and bulk pricing is not exportable.
Avoid it: Rebuild pricing as B2B companies, locations and catalogs before cutover and test with a real wholesale login.
Live carrier rates disappear at checkout
Why: Third-party carrier-calculated shipping is Advanced and Plus only, and unavailable on Basic — BigCommerce offers real-time rates much lower down its tiers.
Avoid it: Confirm the target Shopify plan supports carrier-calculated shipping before quoting; it can change the plan decision entirely.
The redirect CSV imports with blank destinations
Why: BigCommerce dynamic redirects export with an empty destination column unless the dynamic-URL option is ticked.
Avoid it: Always re-export with “Export dynamic redirect URLs” enabled, and remember Shopify redirects only fire on genuine 404s.
Or hand the whole list to someone who has done it.
Send your store URL and you get back a fixed price and a plan for your store specifically: SKU count, which apps have Shopify equivalents, the redirect plan, and the risks we can see.
Get my free migration plan