appbespoke

Every step cited to the vendor’s own docs

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.

Start the checklist

13 steps · Plan on 30-60 hours of your own time

  • 13

    steps, in the order they have to happen

  • 20

    hours of hands-on work for a mid-sized store

  • 9

    things that do not come with you

  • 9

    URL shapes that need a 301

Phase 01 · 1.5 h

Before you touch anything

  1. 1 hBigCommerce pricing

    Freeze the catalogue and take a baseline

    Record counts of products, variants, modifiers, customers, orders, coupons, blog posts, categories and live 301s: these are your reconciliation targets. Note the plan tier, since customer groups and price lists depend on it.

    Where

    Products → View · Customers · Orders · Settings → 301 Redirect

    The catch

    Plan names changed to Core / Growth / Scale / Performance, but support articles still say Plus, Pro and Enterprise. Trust the pricing page over article prose.

    BigCommerce pricing ↗

  2. 15 minBigCommerce docs

    Record the store’s URL Structure setting

    BigCommerce URLs are a store-level setting, not a fixed shape: three presets plus a custom builder. Everything in your redirect map depends on which is active, so screenshot it before changing anything.

    Where

    Settings → URL Structure

    The catch

    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.

    BigCommerce docs ↗ · Shopify docs ↗

Phase 02 · 7 h

Get your data out

  1. 20 minBigCommerce docs

    Export the existing 301 map

    BigCommerce auto-generates redirects whenever a URL changes, so an established store already holds a large legacy map you must carry forward.

    Where

    Settings → 301 Redirect → Export All

    The catch

    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.

    BigCommerce docs ↗

  2. 45 minBigCommerce docs

    Export products, checking supported fields first

    Export the catalogue as CSV. Check Settings → Export Templates to see whether you have the modern single-file exporter or the legacy template-based one, because the instructions differ.

    Where

    Products → Export

    The catch

    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.

    BigCommerce docs ↗

  3. 5 hBigCommerce docs

    Inventory every modifier and decide its fate

    Open each product’s Customizations and sort modifiers into three buckets: choice modifiers with price adjusters that should become real variants, free-form inputs that become line-item properties, and product-list modifiers that become bundle or upsell apps. This is the largest manual workstream.

    Where

    Products → View → [product] → Customizations · Products → Options

    The catch

    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.

    BigCommerce docs ↗

  4. 30 minBigCommerce docs

    Export customers and their groups

    Export via the bulk-edit template. Customer group is a first-class CSV column and comes out cleanly, which matters for rebuilding pricing later.

    Where

    Customers → Export

    The catch

    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.

    BigCommerce docs ↗

  5. 30 minBigCommerce docs

    Export orders as an archive

    Export historical orders as CSV or XML, using a custom template if you need transaction ids or order source. On the Shopify side these land as historical records that do not re-trigger fulfilment.

    Where

    Orders → Export Orders

    The catch

    Line-item modifier selections (engraving text, uploaded files) are the most commonly lost field, and they cannot be recovered afterwards.

    BigCommerce docs ↗

Phase 03 · 8.5 h

Build in parallel

  1. 30 minShopify docs

    Pick the import route

    The real choices are Shopify’s CSV import, Matrixify via the BigCommerce API, or a migration service. The API route carries materially more than CSV: images inside HTML descriptions survive, and options are not silently merged.

    Where

    Shopify admin → Apps

    The catch

    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.

    Shopify docs ↗

  2. 3 hShopify docs

    Import products, then customers, then orders

    Shopify requires this order so order line items bind to real products and customers. Disable order notifications before the historical order import, and pause any connected fulfilment webhooks too.

    Where

    Products → Import · Customers → Import · Settings → Notifications

    The catch

    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.

    Shopify docs ↗

  3. 5 hShopify docs

    Rebuild pricing as catalogs, not customer groups

    Customer groups and price lists have no single Shopify counterpart. Wholesale pricing becomes companies, locations and catalogs; consumer group discounts become segments plus automatic discounts; tax exemption moves to a per-customer flag.

    Where

    Customers → Companies · Markets → Catalogs

    The catch

    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.

    Shopify docs ↗

Phase 04 · 2 h

Keep your rankings

  1. 2 hShopify docs

    Load the redirect map and test against live 404s

    Build a two-column CSV from the BigCommerce export plus any handles that changed, bulk-import it, then crawl the old sitemap and confirm each URL 301s before DNS moves.

    Where

    Content → Menus → URL redirects → Import

    The catch

    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.

    Shopify docs ↗

Phase 05 · 45 min

Cut over

  1. 45 minShopify docs

    Point DNS at Shopify

    Set the apex A record and the www CNAME to Shopify’s values at a quiet hour, then verify TLS provisions and the storefront serves before removing the password page.

    Where

    Registrar DNS · Shopify → Settings → Domains

    The catch

    Remove pre-existing A and AAAA records first: only one of each may point at Shopify. Propagation can take up to 48 hours.

    Shopify docs ↗

Phase 06 · 30 min

After the switch

  1. 30 minBigCommerce pricing FAQ

    Leave BigCommerce running, then cancel deliberately

    Keep the old store live and paid for at least one full billing cycle after cutover so you can re-pull anything missed. Then cancel with the contract terms in front of you.

    Where

    BigCommerce → Account Settings

    The catch

    Core, Growth and Scale can be cancelled in-panel with billing stopping immediately, but Performance plans are contracted and BigCommerce does not offer refunds, so cancel a contracted plan only at renewal.

    BigCommerce pricing FAQ ↗

What does not come with you

Be wary of any guide that says everything moves. These are the things that do not, and what to do about each one.

  • 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.

BigCommerceShopify
/linen-throw/products/linen-throw
/products/linen-throw/products/linen-throw
/bedding/linen-throw/products/linen-throw
/bedding/collections/bedding
/categories/bedding/collections/bedding
/home/bedding/throws/collections/throws
/brands/acme/collections/acme
/cart.php/cart
/wishlist.php(no equivalent)

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, so 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.

What catches people on a BigCommerce move, why each one happens, and how to get ahead of it.

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, while 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