A mid-sized wholesale distributor might have 500 active accounts, each with a different negotiated price list, credit terms, minimum order quantity and catalogue access.
Implementing this complexity in a commerce platform is one of the most underestimated challenges in B2B digital transformation. This article explains the core pricing constructs in B2B commerce and how Commerce Engine models them.
Why B2B Pricing Is Fundamentally Different from B2C
B2C pricing is largely uniform: a product has a price, modified perhaps by a sale percentage or a promotional code. The same price applies to all customers.
B2B pricing is relational and contractual. Prices are negotiated. They depend on who the buyer is, how much they buy, what their payment terms are and what contract period they are in. Getting this wrong, showing the wrong price, allowing an order that violates credit limits or missing a contracted discount, has real commercial consequences.
Tiered Pricing
Tiered pricing (also called volume pricing) reduces the per-unit price as order quantity increases. It is the most fundamental B2B pricing mechanism rewarding customers who commit to larger orders.
Commerce Engine supports both quantity-break tiered pricing (price per unit changes at thresholds) and cumulative tiered pricing (total spend across a period determines the tier). The latter is common in annual trade agreements where a customer's price tier advances as they reach spend milestones throughout the year.
Minimum Order Quantity (MOQ)
MOQ rules prevent orders below a quantity threshold that would be unprofitable to fulfil. MOQ can be set at multiple levels:
Catalogue level: All products require a minimum of 10 units per order line
Product level: A specific SKU requires a minimum order of 24 (a full inner carton)
Account level: A specific customer account has negotiated an MOQ of 5 units for all products
Category level: All products in the 'Industrial Components' category require an MOQ of 50
Commerce Engine's MOQ engine evaluates these rules in priority order during cart validation, returning clear error messages that the storefront can surface to the buyer, preventing invalid orders before they reach checkout.
Customer-Specific Pricing and Price Lists
Many B2B relationships involve individually negotiated price lists. Account A gets standard trade pricing. Account B, a high-volume strategic partner, has a custom price list agreed during contract renewal. Account C, a new prospect on trial terms, has introductory pricing for the first six months.
Commerce Engine's pricing API resolves the correct price for a given customer and product through a hierarchy of price lists, applied in priority order:
Account-specific price list (highest priority)
Customer group price list
Contract price list (date-bounded)
Standard trade price list
Base price (lowest priority)
Credit Limits and Payment Terms
B2B commerce typically involves trade credit — customers place orders on account and pay within agreed terms (net 30, net 60, etc.). Credit limits define the maximum outstanding balance a customer can carry before new orders are blocked.
Commerce Engine's credit management API tracks outstanding balances in real time, considering:
Approved orders not yet shipped
Shipped orders not yet invoiced
Invoiced orders within payment terms
Overdue invoices (which may trigger stricter blocking rules)
Practical example: A customer with a $50,000 credit limit has $38,000 in outstanding orders and invoices. A new order for $15,000 would exceed their limit. Commerce Engine returns a credit_limit_exceeded error at cart validation, preventing the order from proceeding without manual credit approval.
Custom Catalogues
Not all B2B customers see the same product range. Distributors may sell a subset of the full catalogue. International accounts may only see products approved for their market. Specific product lines may be restricted to customers with required certifications.
Commerce Engine supports catalogue scoping at the account and customer group level. The product API respects these scopes, returning only products the authenticated account is permitted to see. This is enforced at the API layer, not just hidden in the UI, preventing catalogue bypass through direct API calls.
Putting It Together: A B2B Order Flow
A typical B2B order flow through Commerce Engine's pricing and credit systems looks like:
1. Customer authenticates — Commerce Engine resolves their account, customer group and active price list
2. Product browsing — API returns only catalogue-scoped products with account-specific pricing
3. Cart validation — MOQ rules are checked on add-to-cart and tiered pricing is applied based on quantity
4. Checkout — credit limit is evaluated against the current outstanding balance plus order total
5. Order submission — if within credit limit, order is created, if not, order is flagged for credit approval
Conclusion
B2B pricing complexity is not a problem to be simplified away it reflects real commercial relationships and contractual obligations. The right architecture embraces this complexity with a flexible, rules-based pricing engine rather than trying to force B2B commerce into a B2C model.
Commerce Engine's B2B pricing capabilities, including tiered pricing, MOQ, customer-specific price lists, credit limits and custom catalogues, are designed to model this complexity accurately, enabling B2B digital storefronts that reflect real trading relationships rather than approximating them.