ARTICLE

How to Build a B2B Ordering Portal with Customer-Specific Pricing That Actually Works at Scale

How to Build a B2B Ordering Portal with Customer-Specific Pricing That Actually Works at Scale

The single feature that separates a B2B eCommerce portal from a B2C storefront dressed up for business buyers is customer-specific pricing. Not tiered pricing where Gold customers get 10% off and Silver customers get 5% off. Real customer-specific pricing — where every account sees prices negotiated specifically for them, reflecting contract terms, volume commitments, product-level discounts, and payment term adjustments that are unique to each business relationship.

Getting this right is the difference between a B2B portal that buyers actually use and one they ignore in favor of calling their sales rep. Distributors who have watched their portal adoption stall at 15-20% of total orders almost always trace the problem back to pricing that does not match what the customer expects to pay. When the portal shows list price and the customer knows their negotiated price is 23% lower, they close the browser and pick up the phone.

Understanding B2B Pricing Complexity Before You Build

B2B pricing is not complicated because distributors enjoy making it complicated. It is complicated because the business relationships are complicated. A single distributor might manage pricing structures that include contract pricing (negotiated rates for specific products tied to annual purchase agreements), volume-based pricing (price breaks at quantity thresholds that differ by customer and product), cost-plus pricing (a markup percentage over the distributor's cost, which changes as supplier pricing changes), market-based pricing (prices that adjust based on commodity indices or competitive market conditions), and payment term adjustments (2% discount for net-10 payment versus standard net-30).

These pricing dimensions are not mutually exclusive. A customer might have a contract price on some products, cost-plus pricing on others, and volume breaks that apply on top of either base pricing method. The pricing engine needs to resolve all of these inputs into a single displayed price for each product in the customer's catalog — and it needs to do this in milliseconds, not seconds, because page load time directly impacts portal adoption.

Before writing a line of code, document every pricing scenario that exists in your current sales operation. Interview the sales team. Pull actual invoices for your top 50 accounts and identify every pricing variation. Bemeir has found that distributors typically underestimate their pricing complexity by 40-60% when relying on management descriptions rather than actual invoice analysis. The edge cases that the sales VP says "almost never happen" are often the cases that cause the most customer complaints when the portal gets them wrong.

Platform Architecture for Customer-Specific Pricing

The platform choice significantly affects how customer-specific pricing is implemented, maintained, and scaled.

Adobe Commerce (Magento) approach. Adobe Commerce provides the deepest native support for B2B pricing through its shared catalogs, customer group pricing, and tier pricing features. Shared catalogs allow administrators to create pricing structures assigned to specific company accounts, controlling both product visibility (which products each customer can see) and pricing (what price each customer pays). For distributors with under 500 accounts, Adobe Commerce's native shared catalogs can handle most pricing scenarios without custom development.

When pricing complexity exceeds native capabilities — which it does for most mid-to-large distributors — Bemeir builds custom pricing modules that extend Adobe Commerce's pricing resolution logic. The custom module intercepts the price calculation at the point where Adobe Commerce resolves the final price and injects additional pricing logic: contract lookups, cost-plus calculations, real-time ERP price queries, and multi-dimensional volume breaks. The key architectural decision is whether to calculate prices on the Adobe Commerce side or to delegate pricing to the ERP and retrieve prices via API.

ERP-delegated pricing versus platform-side pricing. This is the most consequential architectural decision in any B2B pricing implementation.

ERP-delegated pricing means the eCommerce platform queries the ERP for every price display. The ERP is the single source of truth. Prices are always current. But every product page load, every catalog browse, and every cart update requires an API call to the ERP. If the ERP is slow, the portal is slow. If the ERP is down, the portal cannot display prices.

Platform-side pricing means customer-specific prices are synchronized from the ERP to the eCommerce platform on a scheduled basis (hourly, nightly, or on-change). Prices display instantly from the local database. The portal functions independently of ERP availability. But prices may be stale between synchronization cycles, and the synchronization process itself must handle the volume of price records (number of customers multiplied by number of products multiplied by number of price dimensions).

Factor ERP-Delegated Pricing Platform-Side Pricing
Price accuracy Always current Current as of last sync
Page load speed Dependent on ERP response time Instant (local database)
ERP dependency Portal broken when ERP is down Portal functions independently
Data volume No local storage needed Can be massive (customers x products x dimensions)
Implementation complexity API integration + caching strategy Sync pipeline + conflict resolution
Best for Under 5,000 customer-product combinations Over 5,000 customer-product combinations

Bemeir's recommendation for most distributors is a hybrid approach: synchronize base contract pricing and customer-specific discounts to the eCommerce platform nightly, then query the ERP in real time only for pricing elements that change frequently (commodity-based pricing, spot pricing, promotional overrides). This provides fast page loads for the majority of pricing while maintaining accuracy for volatile price elements.

Building the Customer Account Structure

Customer-specific pricing requires a customer account structure that maps cleanly to how the distributor manages their business relationships. In B2B, a "customer" is rarely a single person. It is a company with multiple buyers, multiple ship-to locations, multiple payment methods, and potentially multiple pricing agreements.

Company hierarchy. Adobe Commerce's B2B module supports company accounts with parent-child relationships, roles, and permissions. Configure company hierarchies to mirror how the distributor's accounts are structured in the ERP. A national account might have a corporate parent with regional divisions, each with local branches — and pricing might be negotiated at the corporate level, the division level, or the branch level depending on the product category.

Role-based access and spending controls. Within each company account, different users need different capabilities. A purchasing manager might have full ordering authority with no spending limits. A field technician might be allowed to place orders under $500 for maintenance supplies only. A financial controller might have view-only access to order history and invoices without the ability to place orders. Configure roles and permissions before launching to any customer, because retroactively adding spending controls after buyers have been ordering without limits creates friction and complaints.

Account onboarding workflow. The process for creating a new customer account on the portal should integrate with the ERP account creation process. When a new customer is set up in the ERP with negotiated pricing, the portal account should be provisioned automatically with the correct pricing assignments. Manual account setup — where someone creates the ERP account and then separately configures the portal account — introduces human error and creates pricing mismatches that erode buyer trust.

Bemeir builds automated account provisioning pipelines that listen for new account creation events in the ERP and configure the corresponding Adobe Commerce company account, pricing assignments, catalog visibility rules, and credit terms without manual intervention.

Implementing Price Display and Cart Logic

How prices are displayed to B2B buyers differs fundamentally from B2C price presentation.

Authenticated-only pricing. Most B2B distributors do not display prices to unauthenticated visitors. Product catalogs are visible for SEO purposes, but price display requires login. Adobe Commerce supports this natively with the "hide prices" feature for non-logged-in visitors. Configure the catalog to show a "Login for Pricing" message rather than hiding products entirely — this preserves search engine indexing while protecting customer-specific pricing from public visibility and competitor scraping.

Multi-unit pricing display. B2B buyers often purchase in cases, pallets, or other units that differ from the base unit of measure. Display pricing in the unit the customer typically orders. If a customer buys electrical connectors by the box of 100, showing a per-piece price of $0.47 is less useful than showing a per-box price of $47.00. Map display units to customer purchasing patterns, and allow customers to toggle between unit-of-measure views where appropriate.

Cart pricing validation. The cart is where pricing problems become visible — and where buyer trust is won or lost. Every cart update should recalculate prices against the customer's current pricing agreement. If a customer adds 500 units and qualifies for a volume break, the price should adjust immediately in the cart without requiring a page reload. If a promotional price expires between when the customer added the item and when they check out, the cart should display the updated price with a clear notification explaining the change.

Build a cart pricing audit log that records every price change during the cart session. When a customer contacts their sales rep to dispute a price, the sales team needs to see exactly what price was displayed, when, and what pricing rules produced that price. This audit capability transforms pricing disputes from adversarial finger-pointing into transparent problem-solving.

Handling Quotes, Negotiation, and Custom Pricing Requests

Not every price can be predetermined. B2B purchasing frequently involves negotiation, especially for large orders, custom configurations, or products outside the customer's existing contract. The portal needs to support a quote workflow that brings the sales rep into the process without forcing the customer off the portal entirely.

Quote request from cart. Allow customers to convert their cart into a quote request. The quote lands in the sales team's queue with the customer's requested products, quantities, and any notes. The sales rep can adjust prices, add discounts, suggest alternatives, and return a formal quote — all within the platform. When the customer accepts the quote, it converts directly to an order with the negotiated pricing.

Adobe Commerce's native quote/negotiable quotes feature supports this workflow. Bemeir extends it for distributors who need multi-round negotiation (customer counters the sales rep's quote), quote expiration with configurable validity periods, and manager approval for discounts below threshold margins.

Quick order for repeat purchasing. B2B buyers place repeat orders far more frequently than B2C shoppers. Build a quick-order interface that lets buyers enter SKUs and quantities directly, upload a CSV or spreadsheet of items and quantities, re-order from a previous order with one click, and manage recurring order templates for items purchased on a regular schedule. Each of these entry methods must resolve customer-specific pricing accurately. When a buyer uploads a spreadsheet with 200 line items, every line needs to display the correct negotiated price within seconds.

Integration with ERP and Sales Systems

The B2B ordering portal does not replace the ERP — it extends it to the buyer. Every transaction on the portal must ultimately synchronize with the ERP for fulfillment, invoicing, and financial reporting.

Order synchronization. Orders placed on the portal should push to the ERP within minutes, not hours. Batch synchronization (nightly order exports) creates fulfillment delays that B2B buyers will not tolerate. Real-time or near-real-time order push, with confirmation acknowledgment from the ERP, ensures that orders enter the fulfillment pipeline immediately and that the portal can display accurate order status.

Credit limit enforcement. Most B2B customers have credit limits managed in the ERP. The portal should check available credit before allowing checkout. When a customer's order would exceed their credit limit, the portal should notify the customer and optionally route the order for credit approval rather than simply rejecting it. Integrate credit limit checks with the ERP's accounts receivable data, updated at least daily, to ensure the portal reflects current credit availability.

Invoice and payment history. Buyers expect to view and pay invoices through the portal. Synchronize invoice data from the ERP to the portal, and provide online payment options that record payments back to the ERP. For distributors using Adobe Commerce's company credit feature, the payment-on-account workflow should deduct from available credit and reconcile with ERP credit management.

Measuring Portal Success

The metrics that determine whether the B2B portal is delivering value go beyond standard eCommerce KPIs.

Portal adoption rate is the percentage of total order volume placed through the portal versus phone, email, and fax. Target 40-50% within six months and 65-75% within eighteen months. If adoption stalls below 30%, the problem is almost always pricing accuracy or ordering workflow friction — not awareness.

Pricing dispute rate should trend toward zero. Track how often customers contact sales to dispute a portal price. Every dispute represents a trust failure. Bemeir targets under 1% pricing dispute rate within 90 days of launch for accounts that have been properly configured.

Reorder frequency measures whether the portal is making it easier for customers to buy more often. If customers who use the portal order more frequently than those who do not, the portal is delivering value. If order frequency is the same or lower, something in the ordering experience is creating friction.

Building a B2B ordering portal with customer-specific pricing is not a technology project with a launch date and a "done" milestone. It is an ongoing operation that requires continuous price synchronization, account management, and buyer experience optimization. Bemeir approaches these implementations as partnerships rather than projects — because the distributor that gets customer-specific pricing right does not just have a better website, they have a competitive advantage that makes it harder for customers to leave and easier for them to buy.

Let us help you get started on a project with How to Build a B2B Ordering Portal with Customer-Specific Pricing That Actually Works at Scale and leverage our partnership to your fullest advantage. Fill out the contact form below to get started.

more articles about ecommerce

Read on the latest with Shopify, Magento, eCommerce topics and more.