Home>Migrations & Replatforming>NetSuite SuiteCommerce>SuiteCommerce Bulk Pricing to Shopify B2B Rules

Do SuiteCommerce's bulk-pricing tables (common in B2B/wholesale setups) migrate to Shopify B2B's volume-pricing rules, or do they need rebuilding?

SuiteCommerce bulk-pricing tables need rebuilding, though not for the reason most teams expect. Shopify allows up to 10 price breaks per product, while a NetSuite quantity pricing schedule allows only 4 non-zero quantity levels (Shopify Help Center and Oracle NetSuite docs, September 2026). The break count fits. The calculation basis does not.

The capacity worry is the wrong worry

The first question everyone asks is whether Shopify holds enough tiers. It does. Shopify states "You can add up to 10 price breaks per product which are applied to each variant" (per Shopify Help Center, September 2026). NetSuite's quantity pricing schedules state the opposite constraint: "You can only have 4 non-zero quantity levels" (per Oracle NetSuite documentation, September 2026).

Ten is more than four. The tier table fits with room. Then the real differences begin.

Four mismatches, in the order they will hurt

1. What quantity the discount is calculated against. This is the big one. A NetSuite quantity pricing schedule carries a Calculate Quantity Discounts setting with four options: By Line Quantity, By Overall Item Quantity, By Overall Parent Quantity, and By Overall Schedule Quantity (per Oracle NetSuite documentation, September 2026). Only the first has a Shopify equivalent.

Shopify quantity rules and volume pricing apply at the variant level within the order. Shopify's own example is unambiguous: "Customers can't combine 5 gray hats and 5 blue hats to meet an increment of 10 hats" (per Shopify Help Center, September 2026). A buyer who earns a tier in NetSuite by ordering 500 units across a schedule of items earns nothing in Shopify unless 500 of one variant are in the cart.

If your wholesale customers buy assortments, this is not a data-mapping problem. It is a commercial-terms problem, and somebody on the business side has to decide what the new offer is before anybody writes a mapping.

2. Marginal rates. NetSuite's Use Marginal Rates option applies each discount only to the units inside its bracket, so the first 100 units bill at list and the next 50 at 5% off. Shopify's break model applies the qualified break's price to the qualifying units in that line. Graduated and flat tier pricing produce different invoice totals from the same tier table, and the difference grows with order size. Reprice a sample of last year's real orders both ways before committing.

3. Schedules are shared templates; Shopify breaks are per product. A NetSuite quantity pricing schedule is "applied to as many items as you want," so a single schedule can govern thousands of SKUs and one edit changes all of them. Shopify holds breaks on the product inside a price list. Migrating 1 schedule across 4,000 items produces 4,000 break tables, and a future change to that one schedule becomes a bulk operation rather than one edit. Plan for how you will maintain it, not just how you will load it.

4. Price levels far exceed catalogs. SuiteCommerce documents "up to 1,000 price levels, enabling you have to granular control over the level of discounting," and NetSuite supports up to 1,000 active price level records (per SuiteCommerce developer docs and Oracle NetSuite documentation, September 2026). Shopify gives you 3 active catalogs on Basic, Grow and Advanced, unlimited on Plus, and 25 per company location either way. That is the collapse exercise described on this page's parent, and it is where most of the work lives.

A migration order that works

  1. Export the schedules with their settings, not just the tiers. Capture Use Marginal Rates and Calculate Quantity Discounts for each.
  2. Segregate by calculation basis. By Line Quantity schedules are portable. The other three need a commercial decision, and that decision is the long pole.
  3. Reprice a sample of historical orders under the proposed Shopify model. Compare invoice totals. Show the delta to whoever owns wholesale margin.
  4. Collapse price levels into catalogs using the effective-price hash from the parent page.
  5. Load the breaks. Admin CSV import handles quantity rules and volume pricing, and priceListFixedPricesAdd accepts a maximum of 250 prices per request for API-driven loads (per Shopify developer docs, September 2026).
  6. Reconcile. Re-export from Shopify and diff against the source. A pricing migration signed off on spot checks is one that gets discovered by a customer.

When NOT to migrate the tables as they are

  • When any schedule uses a non-line calculation basis. Porting the tiers without porting the basis silently changes what customers pay.
  • When tiers exist that nobody has qualified for in two years. Migration is the cheapest moment to retire them.
  • When the schedule is really a contract. Named-account pricing belongs in fixed prices, not in a volume table.

The Deploi point of view

Our own position, from building on Shopify. Separate from the facts above.

  • Our take: The tier numbers port. The pricing logic does not, and the gap is a commercial decision rather than a technical one. Get the wholesale margin owner to sign off on the repriced sample before an engineer builds anything, because this is the mapping that changes what customers are charged.
  • What we’ve seen: Assortment-based volume discounting is the most under-documented requirement in NetSuite-to-Shopify wholesale work. It rarely appears in the requirements document because on the source platform it is a checkbox, and a checkbox does not read like a feature.
  • Where we disagree: Migration guides answer this question with a field map, which implies the job is translation. For two of the four NetSuite calculation bases there is no target field, so there is nothing to translate. Presenting this as a mapping task is how a repricing decision ends up being made by whoever writes the import script.
  • What this page adds: that Shopify's 10 breaks exceed NetSuite's 4 quantity levels so capacity is not the constraint, that the four NetSuite calculation bases collapse to one on Shopify, that marginal-rate pricing changes invoice totals from an identical tier table, and that a shared schedule becomes thousands of per-product break tables.

Reviewed by Martin Dejnicki, Director of SEO & AI Search. Facts verified 2026-09-14.