Shopify B2B Catalogs and Pricing: What to Define Before Buyers See a Price
By Lake House Group · Shopify B2B catalogs, price lists, company locations, quantity rules, volume pricing, and wholesale QA
Key takeaways
- Give every catalog a clear commercial purpose, owner, effective date, and fallback rule.
- Map catalogs to company locations only after buyer, market, currency, tax, and checkout contexts are defined.
- Name the source of truth for base prices, adjustments, fixed prices, quantity rules, and exceptions.
- Test product publication and pricing together across buyer-facing pages and downstream systems.
- Launch with exception reporting so wrong assignments, stale prices, and failed syncs are visible quickly.
A Shopify B2B catalog can show a buyer a different product range and price from the public storefront. That does not mean the pricing model is ready.
The hard part is deciding which products each account can buy, which company location gets which catalog, where the source price lives, how quantity rules interact with negotiated exceptions, and what happens when an ERP or product feed changes. A catalog that looks correct in the admin can still show the wrong price to the wrong buyer or hide a product that sales promised.
Treat Shopify B2B catalogs as commercial rules expressed through product data. Before launch, define the catalog, assignment, pricing, integration, approval, and QA decisions that make those rules safe to operate.
Start with a catalog purpose, not a discount
Shopify describes B2B catalogs as a way to control which products business buyers can access and the prices they receive. That combines two decisions that teams often manage separately: product eligibility and commercial pricing.
Write the purpose of each catalog in plain language before building it. Examples include a distributor assortment for Canada, a hospitality replacement-parts catalog, a key-account price agreement, or a wholesale launch range. The name should tell an operator why the catalog exists, not only who created it.
- The buyer segment, company, market, or company locations it serves.
- The products and variants that are intentionally included or excluded.
- The pricing method and source of truth.
- The currency, tax, quantity, and volume-pricing context.
- The commercial owner, technical owner, effective date, and review date.
- The fallback when the catalog or its upstream data is unavailable.
This record prevents a catalog from becoming an undocumented discount container. It also gives sales, ecommerce, finance, merchandising, and support the same explanation when a buyer questions a price.
Map catalogs to company locations deliberately
Shopify's current `CompanyLocation` documentation explains that a company location can have catalogs that determine product publication and pricing. The location also carries billing, shipping, tax, and checkout context. The buyer selects the location they are purchasing for, and that context helps determine what they see.
That makes company-location design part of pricing design. A national account might have one location buying in Canadian dollars, another using a restricted assortment, and a third with a negotiated replacement-parts list. Assigning one catalog at the parent-company level can be too broad; creating a unique catalog for every branch can become impossible to maintain.
Build an assignment matrix with one row per company location. Include the location identifier, buyer group, market, currency, applicable catalog, pricing owner, effective date, exception status, and last validation date. Group locations only when the underlying rules are truly the same.
Then test identity. A buyer connected to the wrong company location may receive the wrong catalog even when the catalog itself is correct. Include login, location selection, permissions, and checkout context in pricing QA.
Decide what owns the price
Shopify's `PriceList` reference describes fixed prices and percentage-based adjustments associated with a catalog. Both are useful, but they solve different problems.
A percentage adjustment is easier to maintain when the commercial rule is consistently relative to the store price. A fixed price is clearer when a specific variant has a negotiated amount that should not move with the public price. Many wholesale programs need both, which creates an ownership question: which layer wins when the base price changes, a fixed price exists, and an account also has a manual exception?
- Record the base product or variant price.
- Apply the catalog-level adjustment, if used.
- Identify fixed variant prices that intentionally override the adjustment.
- Add quantity rules and volume price breaks.
- Name contract or account exceptions and their owners.
- Reconcile tax, currency, shipping, and payment effects later in the order path.
Name the system of record for every layer. If the ERP owns contract prices, Shopify should not become a second editable master without a reconciliation rule. If Shopify owns the storefront price, define how the ERP receives the final amount and how disagreements are surfaced.
Separate quantity rules from volume prices
Quantity rules answer how buyers are allowed to order. Volume pricing answers what they pay after reaching a threshold. Those rules are related, but they are not interchangeable.
For each variant, define any minimum quantity, maximum quantity, and ordering increment in the units the buyer understands. Then define each price break. Shopify's `QuantityPriceBreak` reference ties a new variant price to a minimum quantity, which means variant identity and unit-of-measure decisions need to be stable before price breaks are loaded.
A case of 12, a single item, and a pallet are different commercial units even if an upstream system stores them under one product family. If the storefront says the minimum is 12 but the warehouse reads the order as 12 cases, the pricing calculation can be correct while the shipment is wrong.
Test the boundary values: one unit below the minimum, exactly at the minimum, one increment above it, exactly at each price break, one unit below a break, and above the maximum. Repeat the test for variants with fixed prices, sale prices, bundle logic, and negotiated exceptions when those paths apply.
Define product publication before importing prices
A correct price is useless if the product is not published to the buyer. Shopify's B2B catalog developer guide separates the catalog's price list from its publication. The publication decides which products are visible in that context.
Start with product eligibility. Decide whether the catalog includes all current products, a governed collection, or an explicit list. Record why a product is excluded, such as a regulatory restriction, territory agreement, inventory policy, contract scope, product lifecycle, or incomplete data.
Shopify warns in its developer guide that changing catalog associations can leave a catalog without the intended price list or leave an old publication orphaned. Even when changes happen through the admin instead of an app, the operating lesson is the same: catalog updates need before-and-after checks.
Do not bulk-import prices and assume publication followed. Validate products that should be visible, products that should be hidden, new products, archived products, and variants with different price rules.
Keep ERP, PIM, and Shopify responsibilities clear
Wholesale catalog data often crosses a PIM, ERP, integration platform, spreadsheet, and Shopify. The architecture can work, but only when each system owns a defined field.
- Product and variant identifiers, publication eligibility, and effective dates.
- Base price, adjustment, fixed price, and currency.
- Minimum, maximum, increment, and price-break values.
- Company and company-location assignments.
- Market, tax, contract, and account references.
- Sync status, source timestamp, and error reason.
Use stable identifiers rather than product titles or company names as join keys. Make updates idempotent so a retry does not duplicate a price break or assignment. Keep a change log that can answer who changed the commercial rule, which source value changed, what reached Shopify, and whether the buyer-facing result was checked.
When a sync fails, preserve the last approved commercial state where possible and route the exception to an owner. Replacing a known price with a blank or default value can be more damaging than delaying an update.
Put approval around high-risk changes
Not every price update needs formal approval. High-risk changes do need a controlled path.
Require approval when a change adds or removes a large product set, affects many company locations, changes currency, replaces fixed prices with percentage adjustments, modifies a major volume break, or bypasses the commercial source of truth. The approval record should show the scope, effective date, sample accounts, rollback plan, and owner.
Use scheduled activation when a new contract starts on a known date. If the platform or integration does not support the exact activation model, stage the inputs, define the cutover sequence, and keep the previous values available for comparison.
Test the buyer path, not only the admin
Catalog QA is not complete when the price list looks right in Shopify admin. The buyer sees search, collections, product pages, cart, checkout, order confirmation, customer accounts, invoices, and reorder paths. Internal teams see order records, ERP data, margin reports, support screens, and fulfillment instructions.
- Two locations under one company with different catalogs.
- One product published to one location and hidden from another.
- A percentage-adjusted product and a fixed-price exception.
- A variant at every quantity-rule and volume-price boundary.
- A buyer changing company location during a session.
- A public storefront price change that should or should not affect B2B.
- A new, archived, or temporarily unavailable product.
- An ERP price update, failed sync, retry, and rollback.
- A quote, reorder, draft order, or saved cart using an older price.
For each scenario, compare the buyer-facing product and cart price with the Shopify record, integration payload, ERP amount, invoice, and reporting output. A test passes only when product access, unit, quantity, currency, price, and source reference agree.
Launch with a catalog exception report
The first control report should surface company locations without an expected catalog, catalogs without an owner, products with no approved price source, fixed prices older than their contract, quantity breaks with missing units, failed syncs, orphaned associations, and buyer orders whose final price differs from the expected rule.
Review exceptions daily during launch, then move to a cadence that matches catalog volume and change frequency. Sample both large accounts and edge cases. A clean average discount can hide one buyer receiving a public price and another receiving a contract price meant for someone else.
The objective is not to make every catalog identical. It is to make every difference intentional, traceable, and testable.
Where Lake House Group fits
Lake House Group treats Shopify B2B catalogs as part of the commerce operating layer. We connect company-location design, product publication, pricing rules, ERP and PIM ownership, checkout behaviour, reporting, and team approvals so wholesale pricing works beyond the admin screen.
If your wholesale operation is moving to Shopify or replacing spreadsheets and manual price lists, talk to Lake House Group about Shopify migration and unified Shopify operations.
Related reading:
- Shopify B2B Customer Migration: What to Map Before Import
- Shopify B2B Customer Portal: What to Test Before Buyers Self-Serve
- Shopify B2B Payment Terms: What to Define Before Offering Net 30
- Shopify B2B Unified Commerce: What to Decide Before Wholesale and Retail Share One Store
Frequently asked questions
- What does a Shopify B2B catalog control?
- A Shopify B2B catalog can control which products are published in a buyer context and which prices apply. The operating team still needs to define company-location assignments, price ownership, quantity rules, integrations, approvals, and exceptions.
- Should Shopify or the ERP own B2B prices?
- Either can be the source of truth, but ownership must be explicit. If an ERP owns contract prices, define how Shopify receives them, how sync errors are handled, and how final order amounts are reconciled. Avoid allowing both systems to edit the same rule without a conflict policy.
- What is the difference between B2B quantity rules and volume pricing?
- Quantity rules define how much a buyer may order, such as a minimum, maximum, or increment. Volume pricing changes the variant price when the ordered quantity reaches a defined break. Test the boundary values and the unit of measure for both.
- What should be tested before a B2B catalog goes live?
- Test company-location identity, product visibility, fixed and adjusted prices, quantity boundaries, volume breaks, currencies, tax and payment context, ERP or PIM sync, buyer-facing pages, orders, invoices, reorders, failed updates, and rollback paths.