BigCommerce to Shopify migration: the complete guide
Step-by-step guide to migrating from BigCommerce to Shopify with Graftport: credentials, product options, categories, customers, orders, and 301 redirects.
Step-by-step guide to migrating from BigCommerce to Shopify with Graftport: credentials, product options, categories, customers, orders, and 301 redirects.
Moving from BigCommerce to Shopify is a data migration and a platform re-evaluation at the same time. BigCommerce's product option model, customer group structure, and URL conventions all differ enough from Shopify's that the migration requires deliberate handling at every step. This guide covers every stage of a BigCommerce to Shopify migration using Graftport — from API credentials to go-live verification — so there are no surprises on the night.
Two things to have ready before opening the migration wizard:
A BigCommerce API token. In your BigCommerce store, go to Settings → API → API Accounts → Create API Account. Choose V2/V3 API Token. Under OAuth Scopes, grant read access to: Products, Customers, Orders, Marketing, Store Content, and Checkout Content. No write scopes are required. Copy the Access Token — it appears only once.
A Shopify destination store with an Admin API token. In the destination Shopify store, install a custom app (Settings → Apps and Sales Channels → Develop Apps) and issue an access token with read/write scopes for products, collections, customers, orders, and URL redirects. The full scope list is on the Destination → Shopify page in the engineering docs.
If you are migrating to Shopify Plus, read Migrating to Shopify Plus with Graftport before starting — the Markets setup and multi-storefront decisions are worth understanding before you configure credentials.
In app.graftport.com, click New migration and step through the wizard:
store.example.com or store.mybigcommerce.com) and the API
access token.shpat_… access token.The wizard validates credentials before it lets you finish. A failed credential check here costs minutes; a failed credential check during a go-live run costs hours.
The most consequential difference between BigCommerce and Shopify is the product option model. BigCommerce allows products to have an unlimited number of option sets, with each option having its own pricing modifier and inventory position. Shopify caps products at three option types (size, colour, material — or any three labels you choose), and stores inventory at the variant level.
Graftport handles the mapping as follows:
BigCommerce categories become Shopify collections. The default mapping preserves the category tree: top-level categories become root collections, subcategories become nested smart collections. Category descriptions and images carry across where they exist.
BigCommerce's Category Tree (the V3 API's hierarchical structure) is the source. If your store has a legacy flat category list (common in older BigCommerce stores), Graftport reads both and reconstructs the hierarchy.
BigCommerce customer accounts migrate with name, email, billing and shipping addresses, phone number, and account creation date. Customer group membership is mapped to Shopify customer tags, which is the closest semantic equivalent in standard Shopify. For B2B pricing rules tied to customer groups, the tag is the hook for a Shopify app on the destination to pick up.
Marketing consent is read from BigCommerce's accepts_marketing field
where available.
Order history migrates with all line items, discounts, shipping lines, tax lines, fulfillment status, and payment method. Refunds are included. Orders load as historical records — they do not trigger Shopify new-order notifications if you follow the go-live step below.
Before loading orders, disable Shopify Staff notifications. Go to Settings → Notifications in the destination Shopify admin and turn off staff order emails. Re-enable them after the load finishes. Without this step, every order load event triggers an email to every staff member.
BigCommerce gift card balances are an optional resource. Enable gift
cards in the migration wizard and add the write_gift_cards scope to
the destination Shopify token. Outstanding balances move to Shopify
gift cards with their original codes where possible.
BigCommerce's URL structure (/product-name/ or
/category/sub-category/product-name/) differs from Shopify's
/products/handle and /collections/handle structure. Graftport
reads every product and category URL from BigCommerce and generates
a 301 redirect from the old URL to the correct Shopify destination.
These land in Shopify's native URL Redirects store.
See Preserving SEO during a Shopify replatform for the full redirect verification workflow, including how to sample your top-ranking URLs from Search Console against the staging store.
BigCommerce static pages (the equivalent of Shopify's Pages) migrate with their titles, HTML content, and published status.
BigCommerce's bulk pricing rules (price breaks at quantity thresholds, per customer group) do not have a native equivalent in standard Shopify. Graftport migrates the base product price. Tier pricing rules are noted in the migration output so you can replicate them with a volume-discount Shopify app or B2B pricing on Shopify Plus.
BigCommerce Channels can represent regional storefronts, Amazon listings, point-of-sale, or wholesale accounts. Graftport reads from the primary storefront channel. Regional storefronts map to Shopify Markets where the destination is Shopify Plus. Non-storefront channels (Amazon, POS) need to be re-configured natively on Shopify after migration — they are not portable.
BigCommerce stores product reviews in its own schema. These are not part of Graftport's default migration scope because Shopify's native product review model differs and most merchants use a third-party review app (Yotpo, Judge.me, Okendo) on both platforms. Verify that your preferred review app can import from a CSV export of your BigCommerce reviews before migration day.
The recommended sequence mirrors what we describe in the Magento guide and the general pre-go-live checklist:
1. Dry run first. Start a run with the dry-run flag on. This pulls everything from BigCommerce, runs it through the mapping, and reports the count and shape of what would land in Shopify — without writing a single record. Check product counts and look at a few sample variant expansions before committing.
2. Staging run. With dry-run off, run against a staging Shopify store. Walk the product catalogue, check a sample of customers and orders, and verify that your top-ranking BigCommerce URLs have redirects in place on the staging store.
3. Re-run for delta on go-live. Your BigCommerce store keeps taking orders and product updates between the staging run and go-live. On the day of go-live, run extract again against the live BigCommerce store. Records already loaded are identified by their source identity and skipped — only net-new and changed data is processed. See Re-running a migration on go-live night for the hour-by-hour sequence.
4. Cut over. Flip DNS to the destination Shopify store once the final load reports succeeded.
App-specific data. BigCommerce apps that store data in their own schema (subscriptions, loyalty points, review data) are not accessible via the standard BigCommerce V2/V3 API. Contact each app vendor to find out whether their Shopify equivalent supports an import path from the BigCommerce version.
Theme code. BigCommerce Stencil themes are not compatible with Shopify Liquid. The Shopify destination requires a new theme. Budget for this separately from the data migration.
Abandoned carts. BigCommerce's stored cart data is not available via the public API in a format that maps to Shopify's abandoned checkout model.
The fastest way to see a BigCommerce to Shopify migration in action is to connect your store, run a dry-run, and inspect the variant output for a handful of your most complex products.
Get started at app.graftport.com
Related reading:
Connect a source store, dry-run a migration, see the exact Shopify result before a single record lands. The same platform your team will use on go-live night.