13 minute read

How to Migrate a B2B Ecommerce Store Without Breaking Customer-Specific Pricing, Permissions, or Account Hierarchies

Hero illustration: a small tree sprouting from a toppled pot on a wooden tray, set against an abstract colorful background (Optimum7 branding).

TL;DR: A B2B migration rarely fails on products. It fails on the account rules underneath: the price, catalog, permissions, and approvals tied to each buyer’s account, which live across the store and the ERP with no clean export. They have to be rebuilt and tested account by account. Optimum7 moved one distributor’s 2,000+ accounts to BigCommerce B2B Edition with every pricing tier intact by validating against real logins before cutover.

Moving a B2C store is mostly a content problem: products, images, categories, redirects. Moving a B2B store is an account problem. If your top account logged in the morning after cutover, would they see their negotiated price or the list price? That single question is what a B2B migration lives or dies on, because when a distributor logs in they expect their price, their team’s ordering permissions, and their company’s locations exactly where they left them. Break any one of those and your best customers feel it as a broken promise the morning after launch.

That gap is where B2B replatforming projects lose weeks. A B2B price belongs to the buyer’s account, and it is expressed through a web of account rules: who the company is, what its buyers may do, which catalog and price they see, how they pay, who approves the order, and how all of it ties back to the ERP. Optimum7 groups those rules into an eight-layer framework. This guide walks through why each layer breaks in a migration, how the major platforms store it, and the four validation stages that prove it works before cutover.

A B2B commerce admin holding several linked screens at once: a retail storefront alongside a wholesale storefront, the admin navigation, and a catalog list with per-customer price adjustments of minus 40 and minus 50 percent assigned to different company locations

One B2B admin holds each buyer’s catalog, price, role, and location. Carrying all of it across intact is the real work of a migration.

Start to Finish
Keep the account logic intact through the move

Why customer-specific pricing breaks, the eight account layers a migration has to carry, how BigCommerce, Shopify Plus, and Adobe Commerce store them, and the four validation stages that prove it before go-live.

5 parts · ~20-minute read

Part 1 · Where It Breaks

Why Customer-Specific Pricing Breaks During a B2B Migration

Customer-specific pricing breaks in a migration because the price is attached to the buyer’s account through a pricing tier or contract, and that assignment is separate from both the customer record and the product record. Both records can arrive intact while the assignment is lost.

Diagram showing fragmented source pricing data, a customer discount level on one export and per-product level prices on another, being reassembled into a target platform price list structure

On the source platform the price is rarely a single column you can export, it is a relationship spread across several places. Take a store on Volusion, a common migration source. A customer record carries a discount level, but the actual prices for that level sit on each product record, in fields like DiscountedPrice_Level1 through DiscountedPrice_Level5. No single export joins the customer to the price to the product. To reconstruct one buyer’s pricing you have to cross-reference level by level, and Volusion’s generic export caps at 100 records per run with single-use download URLs. The pricing matrix gets reconstructed on the target from those scattered fields.

3dCart, now Shift4Shop, makes the point in a different way. It stacks three separate pricing constructs: ten group price levels, quantity-pricing tiers, and per-customer price lists that can override both. A flat product CSV represents none of that faithfully, because the group-to-price-to-product logic lives outside the product record. When three pricing systems overlap on the source, a single import file on the target cannot express which rule wins.

Underneath the pricing sits the reason it is so easy to get wrong: what a buyer is allowed to see and buy is decided by a stack of account rules, and price is only one of them. Three of those rules are what a buyer notices first.

Their price
The contract or tier price negotiated for that company, shown the moment they log in, down to the line.
Their permissions
Who on the buying team can browse, order, approve, and manage users, plus any spending limits and approval routing.
Their structure
The company, its locations or divisions, and the users attached to each, so one login can represent a whole enterprise.

Optimum7 has run this class of move enough times to make the point with numbers. When Omnimax USA, a B2B wholesale distributor, moved to BigCommerce B2B Edition, the work that mattered was carrying 2,000+ customer accounts and their five pricing tiers of negotiated, per-account pricing across so every buyer logged in to the right number.

Optimum7 Lead Case
Omnimax USA
B2B wholesale distribution  ·  Anna, TX  ·  migrated to BigCommerce B2B Edition

A wholesale operation with thousands of orders and negotiated pricing tied to individual accounts, on a legacy platform that could not scale it. Optimum7 mapped every account to the BigCommerce customer-group and price-list framework, preserving five pricing tiers and each account’s individual pricing history, then migrated the full order record with transaction fidelity. At launch, dealers and procurement teams logged in to accounts that worked exactly as before.

2,000+
customer accounts migrated
5
pricing tiers preserved
1,000+
products with data intact

Part 2 · The Framework

The Eight Layers That Decide What a B2B Buyer Can Buy

Optimum7’s eight-layer framework is the set of account rules a B2B migration has to carry beyond products, customers, and orders: company hierarchy, buyer permissions, customer-specific catalogs, negotiated pricing, payment terms, approval workflows, tax and shipping rules, and ERP relationships. Each layer is rebuilt and tested account by account before cutover.

A standard migration counts records: products, customers, and orders in the new store against the old one. That count can come out perfect while what a given account is allowed to buy has quietly changed. The eight layers below are what actually decides that, and each one is stored differently on every platform, which is why none of them survives a flat export.

The eight account layers
Account layer What has to hold after migration How the platforms store it
1. Company and location hierarchy Parent companies, branches, and billing and shipping identities sit under the correct account. BigCommerce Account Hierarchy up to 5 layers (enabled by support); Shopify Company with locations; Adobe company structure plus parent-child hierarchy.
2. Buyer roles and permissions Buyers, admins, approval rights, spending limits, and location authority work as they did before. BigCommerce Junior, Senior, and Admin plus custom roles; Shopify ordering-only and location admin; Adobe permission tree.
3. Customer-specific catalogs Each company and location sees only the products and catalogs assigned to it. BigCommerce price list plus customer group; Shopify B2B catalog plus publication, up to 25 per location; Adobe public and custom shared catalogs.
4. Negotiated pricing rules Customer, contract, quantity, location, and category prices land on the right accounts. BigCommerce price-list records with bulk tiers; Shopify fixed or percentage prices with quantity breaks; Adobe shared-catalog fixed, percentage, and tier pricing.
5. Payment terms and credit Net terms, deposits, credit limits, and invoice workflows follow the account they belong to. BigCommerce Company Credit and Payment Terms; Adobe Payment on Account with a credit limit and balance; Shopify payment-terms templates.
6. Approval and order workflows Orders that need review still route to the right approver. No platform ships native multi-tier approval; Shopify checkout-to-draft, Adobe’s order-approvals branch, and custom apps carry it.
7. Tax, shipping, and destination Tax treatment, approved destinations, and location shipping rules carry over unchanged. Per-location tax IDs and exemptions on Shopify and Adobe; tax-exempt data is often re-entered by hand, since Volusion exports it encrypted and unusable.
8. ERP and back-office links Customer, pricing, order, and inventory identifiers resolve to the matching ERP, PIM, and CRM records. ERP is often the pricing system of record (NetSuite item pricing, SAP condition technique, Dynamics trade agreements); PunchOut endpoints re-pointed per buyer.
●  At a Glance
The price lives on the account
8 layers · tested per account

A migration can move every product, customer, and order correctly and still change what a buyer is allowed to purchase. The eight layers are what decides that, and each one is rebuilt on the target and tested against a real login, never assumed from a record count.

BEYOND · THE RECORD COUNT

Company and location hierarchy

Account hierarchy is the hardest layer to move because no standard customer import carries the parent-child relationship. That link is structural, so it has to be re-established on the target in the target’s own model. On BigCommerce B2B Edition, Account Hierarchy links company accounts into a tree up to five layers deep, but the feature is off by default and must be enabled by support before any link can be created. On Shopify, the structure is a flat company with one or more locations, and a hard constraint bites: B2B orders are permanently bound to their company and cannot be moved. On Adobe Commerce, applying a parent company’s settings across its child companies overwrites the children’s existing configuration, so the order of operations matters or you erase what you meant to keep.

BigCommerce B2B Edition Account Hierarchy admin screen showing a five-level parent-child company structure, from Great Buys Inc down through regional and state companies to individual branch locations, each marked Approved

A parent-child account hierarchy in BigCommerce B2B Edition, five layers deep.

Buyer permissions and approvals

Permissions break because every platform draws the map differently, and roles rarely translate one-to-one between them. A Senior Buyer on BigCommerce, whose role maps to a specific permission integer, lines up only loosely with Shopify’s two native roles, ordering-only and location admin. Adobe models the same intent as a permission tree the company admin toggles. Two specifics catch teams off guard. First, all three platforms leave multi-tier order approvals and per-user spending limits to apps or custom development, so those approval chains and budget caps get rebuilt on the target from scratch. Second, passwords have to be reset: hashing schemes differ between systems, so every buyer sets a new one. Handled well, that is a planned reset campaign timed to launch; handled poorly, it is a wave of support tickets on day one.

Negotiated pricing and catalogs

The target platform models pricing with its own objects, and there is no one-to-one converter between them. A BigCommerce price-list record, a Shopify B2B catalog price, and an Adobe Commerce shared-catalog tier price are three different shapes for the same commercial idea. Price sheets get rebuilt through each platform’s API: BigCommerce, for instance, moves price data through a bulk upsert that runs in batches of 100 with a concurrency limit and one job per store at a time, so a large contract-pricing catalog is a managed load. Catalog access rides alongside pricing, since a company should see only its assigned products, and that visibility is a separate object on each platform that has to be re-bound to the right accounts.

Adobe Commerce Shared Catalogs admin grid listing a public default catalog and four custom shared catalogs, each used to scope B2B pricing and product visibility to specific companies

Public and custom shared catalogs scope pricing and product access to specific companies in the Adobe Commerce admin.

ERP, PunchOut, and the back office

For a large share of B2B sellers, the real system of record for price is the ERP. In NetSuite, negotiated prices live on the customer record’s item-pricing subtab; in SAP, they resolve through the condition technique; in Microsoft Dynamics 365, sales trade-agreement prices take priority over the item base price. The store either receives a pushed price list or calls the ERP’s pricing engine at checkout, so the migration becomes a re-point of that integration, then a check that the new store asks the same question and gets the same answer. Large buyers add another workstream: they shop through their own procurement system over a PunchOut catalog using cXML or OCI. When the domain and endpoints change, every PunchOut relationship is reconfigured, its shared secret re-exchanged, and tested inside that buyer’s procurement environment. There is no single cutover test that covers all of them, so one missed connection means a major account cannot order while the storefront looks perfectly healthy to everyone else.


Part 3 · The Platform Comparison

How BigCommerce, Shopify Plus, and Adobe Commerce Handle These Layers

BigCommerce B2B Edition, Shopify Plus, and Adobe Commerce model the same eight layers with different objects and different limits. This table is the reference for what has a native home versus what has to be rebuilt or custom-built. Read it as the map for a move in any direction between them.

Shopify admin Catalogs list showing two B2B catalogs, an all-products discount at minus 10 percent and a t-shirt catalog at minus 20 percent, both active with price overrides applied across company locations

B2B catalogs with per-catalog price adjustments in the Shopify admin.

B2B capabilities compared
B2B capability BigCommerce B2B Edition Shopify Plus B2B Adobe Commerce B2B
Customer-specific pricing Price lists assigned to customer groups, per-variant records with bulk tiers B2B catalog pairing a price list with a publication, attached to a company location Shared catalog mapped one-to-one to a customer group, fixed or percentage prices
Buyer roles Junior Buyer, Senior Buyer, Admin, plus custom roles Two levels: ordering-only and location admin Permission tree edited by the company admin, custom roles
Account hierarchy Parent-child companies up to 5 layers, enabled by support Flat: one company, one or more locations, no company nesting Internal team structure plus a separate multi-company hierarchy
Native approval / spend limits Company Credit and Payment Terms, no multi-tier approval Checkout-to-draft merchant review only Order-approvals branch in the permission tree, Payment on Account
Native quotes Yes, shopping-list to RFQ to quote Not native, app or draft-order based Yes, negotiable quotes with a full status flow
Migration-in tooling B2B REST API for companies, users, price lists, quotes; bulk price upsert in batches of 100 Catalog price CSV; company setup via API; no native CSV importer for companies or contacts REST modules for company, credit, quote, shared catalog; advanced-pricing import for tiers

Each platform has a native home for the basics and a gap where the advanced controls should be, and that gap is where custom development earns its place. It is a decision to make before the move. If you are still choosing the destination, our guide to the best ecommerce platform for selling online covers the wider trade-offs, and the platform-specific playbooks for a BigCommerce migration and replatforming and a Shopify Plus migration and replatforming go deeper on each destination.


Part 4 · The Method

The Four Validation Stages Before Cutover

The method that keeps buyer accounts intact runs in four stages, and the account logic is the payload the whole sequence protects. What would it cost you if the first order after launch came from your largest account at the wrong price? These four stages exist so that never happens.

1
Map
Inventory every account relationship in the source: price lists, customer groups, roles, hierarchy, payment terms, and each ERP and PunchOut connection. This account inventory sets the true size of the project.
2
Rebuild
Recreate the layers in the destination through the API in the right order: companies and hierarchy first, then locations, users, and bound pricing and roles. Clean duplicate accounts and inconsistent pricing records first, because they cause integration failures and wrong prices at checkout.
3
Reconcile
Match every account against the connected back-office systems so customer, pricing, order, and inventory identifiers resolve to the same records in the ERP, PIM, and CRM. Re-point each ERP feed and PunchOut relationship and confirm it returns the prices the buyer holds.
4
Test
Log in as real buyers from each pricing tier and place orders. Confirm the price, catalog, permissions, approval routing, ship-to, and ERP record all match the source. A parity test is falsifiable: the price either matches or it does not.

Pre-cutover validation checklist diagram showing a buyer login verified for correct price, visible catalog, permissions, hierarchy, and working reorder before go-live

The test stage is the difference between a migration you can defend and one you are hoping went well. Run these account-level checks while the old store is still live:

Log in under each pricing tier and compare displayed prices with the source pricing records.
Place an order through an account that requires approval and confirm it reaches the approver.
Check that ship-to and bill-to locations still belong to the correct company account.
Confirm restricted-catalog accounts see only their assigned products.
Confirm completed orders and customer identifiers land on the right records in the connected ERP.

This is how the Omnimax USA migration held: the five pricing tiers were validated against real account logins before launch, so dealers logged in to the pricing they already had. Two more Optimum7 migrations show the same discipline carrying across different source platforms.

Marine supply  ·  Migration
Marine Sanitation & Supply
Volusion to BigCommerce
+300%
organic revenue
+85%
conversion rate
+200%
return on investment
Supplements  ·  Migration
Wellness Partners
3dCart to BigCommerce
+238%
organic traffic
+85%
conversion rate
+180%
organic revenue

Optimum7 runs this class of move as an ecommerce migration engagement, with the account logic treated as the payload that has to survive intact. For the buying organizations on the other side of the login, our guides on building a B2B ecommerce platform for distributors and AI deployment for B2B ecommerce cover what comes after the move.


Part 5 · Cost and Timeline

What Drives B2B Migration Cost and Timeline

A B2B migration is priced on the complexity of the account logic and the integrations. Product count barely moves the number: two stores with the same catalog size can differ by an order of magnitude in effort based on the layers below. These are the drivers to scope against before asking for a price.

Number of distinct price lists, customer groups, and contract-price agreements to rebuild.
Depth and breadth of the account hierarchy, and the number of buyer roles to translate.
The number of PunchOut relationships, since each is reconfigured and tested individually.
The ERP integration: a re-point of an existing feed, or a fresh build.
How much approval-workflow and spending-limit logic must be custom-built because the platforms lack it natively.
Google treats a platform move as a site move: expect temporary ranking fluctuation while the site is recrawled and reindexed, which takes weeks and longer for large sites. Google Search Central. Source

Timeline follows the same logic. A store where price lives in the ERP and hierarchy is shallow can move in weeks; an enterprise with deep hierarchies, dozens of PunchOut buyers, and custom approval logic runs to a multi-month program with a stabilization window after launch. For a fuller treatment of the numbers, our guides on the complete ecommerce platform migration planning process and ecommerce platform migration and custom development cost break down scoping and budget. The one figure worth protecting at any budget is buyer trust, spent the first time a top account sees the wrong price.


Frequently Asked Questions

How is a B2B ecommerce migration different from a B2C one?

A B2C migration moves products, content, and redirects, and success is a clean catalog. A B2B migration also moves the account logic underneath: customer-specific pricing, company hierarchies, buyer permissions, payment terms, and ERP links. Those rules decide what each account can buy and at what price, and they carry the real risk.

Will B2B buyers need to reset their passwords after the move?

Yes. Platforms store password hashes that differ between systems and cannot be exported and reloaded, so every buyer sets a new password on the new store. Buyer accounts and their company associations do carry across, so a planned password-reset communication timed to launch keeps the reset from reading as a broken login.

Do PunchOut catalog connections survive a replatform?

Not on their own. A PunchOut connection points at specific URLs on your store and authenticates with a shared secret. When the platform and domain change, each buyer’s procurement system is reconfigured with the new endpoints and secrets, then tested in that buyer’s environment. Every relationship is handled individually, so PunchOut is scoped as its own workstream.

Should customer-specific pricing live in the store or the ERP?

For a large share of B2B sellers the ERP is already the system of record, holding negotiated prices in NetSuite, SAP, or Microsoft Dynamics. When that is the case, the store displays what the ERP returns, and the migration becomes a re-point of that integration; the prices never leave the ERP. Confirming where price truly originates is one of the first project decisions.

How long does a B2B ecommerce migration take?

It depends on the account logic more than the catalog. A store with shallow hierarchy and ERP-owned pricing can move in weeks. An enterprise with deep hierarchies, dozens of PunchOut buyers, and custom approval workflows runs to several months plus a stabilization window. The account inventory from stage one of the method is what tells you which end of that range you are on.

Which platform is best for a B2B migration?

There is no single answer, because each platform models B2B data differently and none has every advanced control native. BigCommerce B2B Edition carries the deepest native hierarchy and quoting; Shopify Plus is leaner and app-dependent for approvals; Adobe Commerce offers the finest-grained permission tree. The right choice depends on how much of your account logic is native versus custom on each.


About the author: Duran Inci is the CEO and Co-Founder of Optimum7, an ecommerce development and digital marketing agency. He helps mid-market and enterprise brands scale revenue through conversion optimization, SEO, and custom ecommerce solutions.

author avatar
Duran Inci CEO of Optimum7

Let's Talk

A digital marketing strategy is the path to profitability. Optimum7 can help you set the right goals, offer and implement creative and technical strategies, and use data and analytics to review and improve your business’s performance.

Share on Social Media
Your AI Visibility Report Awaits