account managers spending half their day manually processing orders that customers email in because the website cannot show account-specific pricing?
large orders delayed by days because the approval workflow runs by email rather than through a system that routes the order to the right approver automatically?
B2B Ecommerce Portal Development
Custom B2B ecommerce portal for manufacturers, distributors, and wholesalers whose account customers need a self-service ordering channel with their specific pricing, credit terms, and approval workflow -- not a consumer checkout with a discount code applied.
Built for B2B sellers where account customers still order by phone or email because the website cannot show their contracted price, cannot accept a purchase order, and cannot route a large order through the buyer's internal approval process.
Account-based pricing with customer-specific price lists, discount tiers, and contract terms applied automatically at login
Quote request workflow for non-catalogue and large orders with operator response and buyer acceptance
Purchase order payment with net terms, credit limit enforcement, and invoice generation
Multi-user account management with buyer roles, spending limits, and order approval routing
RaftLabs builds custom B2B ecommerce portals for manufacturers, distributors, and wholesalers moving from phone and email ordering to a self-service online channel. A B2B portal covers account-based pricing with customer-specific price lists, quote request and approval workflow for large or custom orders, purchase order payment with net-30 and net-60 terms, multi-user account management with buyer roles and approval limits, minimum order quantities, and ERP integration for inventory and order data. Most B2B ecommerce portal projects deliver in 10 to 14 weeks at a fixed cost.
100+Products shipped
·24+Industries served
·FixedCost delivery
·10-14Week delivery for B2B ecommerce portal
Why B2B ordering cannot run on a consumer ecommerce platform
Consumer ecommerce platforms are built around a single pricing model visible to all visitors, a payment flow that collects money at checkout, and an individual buyer who makes and authorises their own purchase. B2B commerce operates on none of those assumptions. Account customers expect to see the contracted price their sales team negotiated, not the public list price. They expect to pay on invoice with the net terms their account is set up on, not by card at checkout. A large order may need to pass through an internal approval chain before the buyer can commit -- a constraint the consumer checkout has no mechanism to accommodate.
When a manufacturer or distributor tries to run B2B ordering through a consumer platform, the gaps become operational overhead. The sales team receives orders by email and enters them manually into the ERP because the website could not show the account price. The credit controller chases payment against invoices that were generated outside the ordering system because the platform could not accept a purchase order. Account managers field calls from buyers who could not find their products because the catalogue was not filtered to their account's contracted range. Each workaround adds headcount cost that a purpose-built B2B portal removes.
Multi-user account management is the structural feature that separates B2B portals from consumer platforms with extra configuration. A B2B account typically has multiple buyers -- a procurement officer who can place orders without approval, a department head whose orders above a threshold need sign-off, and a viewer who can see order history but cannot place orders. These roles and the approval routing between them are a data model requirement, not a configuration option. ERP integration closes the loop: inventory availability shown in real time, orders written to the ERP on placement, and payment data flowing back from the ERP to enforce credit limits and update account balances without manual reconciliation.
What we build
Account-based pricing
Each account is assigned a price list at login, drawn from the pricing configuration in the portal or synchronised from the ERP as the system of record. The price list applies across every product the account is contracted to buy, so a buyer logging in sees their negotiated price on every line without the seller needing to apply a discount code or have a sales rep intervene. Discount tier configuration allows quantity-break pricing to be set per account or per product category -- a buyer purchasing above a threshold quantity sees the lower unit price automatically applied in the cart. Contract pricing overrides are available for specific products or categories where a bespoke negotiated price sits outside the standard tier structure. Price list effective dates handle contract renewal periods, so a new contract price can be loaded in advance and activated on the start date without a manual price update on the day. Price visibility rules ensure each account sees only their own pricing -- no buyer can view another account's price list, and public pricing is suppressed entirely for logged-in account buyers.
Quote request and approval
The quote workflow covers situations where the standard catalogue price is not the right starting point -- non-catalogue items, custom configurations, or orders above a value threshold where the buyer's internal policy requires a formal quote before commitment. The buyer initiates a quote request from within the portal, specifying products, quantities, and any relevant configuration or delivery requirements. The request routes to the operator's sales or pricing team, who review the request, calculate pricing, and respond with a line-item quote including delivery timeline and an expiry date. The quote is presented to the buyer in their portal account with full line-item detail -- they can review, query through a messaging thread on the quote record, and accept when ready. Acceptance converts the quote to an order, inheriting the agreed pricing, and the order enters the standard fulfilment workflow. Quote history is accessible to both buyer and operator so the record of agreed pricing is available for future reference without searching email threads.
Purchase order and credit terms
Purchase order payment allows the buyer to enter their internal PO number at checkout and optionally attach the PO document, replacing the card payment step with a credit-based order commitment. Net payment terms -- net-30, net-60, or net-90 -- are configured per account and enforced by the portal, so a buyer on net-30 terms cannot exceed their credit limit without the system flagging the issue and holding the order for review. Credit limit enforcement is real-time: as the buyer adds items to the cart, the outstanding balance on their account is checked against their credit limit, and the checkout surfaces a clear message if the order would breach the limit. Invoice generation happens at dispatch, with the invoice delivered to the buyer's configured billing contact and stored in the portal for the buyer to access. Payment is recorded against the invoice in the portal as payments are received -- either entered by the accounts receivable team or synchronised from the ERP -- and the account balance visible to the buyer reflects settled and outstanding invoices. A statement of account is available to the buyer in the portal covering the current period without requiring a call to the credit controller.
Multi-user account management
A B2B account can have multiple user logins under the same account record, each with an individually assigned role that determines what they can do in the portal. The buyer role carries full ordering capability -- they can browse, add to cart, and complete checkout up to their individual spending limit. The requester role can create orders and add items to a cart but cannot complete checkout without approval -- their order is submitted as a pending order and routed to the configured approver before it is placed with the seller. The viewer role provides read-only access to order history, invoices, and account balance for finance or logistics contacts who need visibility without ordering access. Spending limits per user role trigger the approval routing -- a buyer below their limit can place the order directly, while the same buyer above their limit generates an approval request to the account administrator or the configured approver for that threshold. The account administrator manages their own users -- adding new buyers, adjusting roles, updating spending limits -- without requiring the seller's support team to make account-level changes.
Catalogue and ordering
Account-specific product visibility means each buyer sees only the products their account is contracted to purchase -- not the full catalogue, and not the products of other accounts' contracted ranges. This is enforced at the data level, not by hiding categories in the navigation, so a buyer cannot access a product outside their contracted range by direct URL either. Minimum order quantities are configured per product and enforced at the cart level with a clear message explaining the minimum before the buyer attempts checkout. Bulk add-to-cart from a CSV order file covers the common B2B workflow where a buyer has a known reorder list and wants to add it to cart without clicking through a catalogue -- the buyer uploads a file with product codes and quantities, and the cart is populated from it, with any items outside their contracted range or below minimum order quantities flagged before submission. Saved order templates allow buyers to store a standard order list for recurring purchases and populate a new cart from the template in a single action. Order history with reorder capability allows any previous order to be added to the current cart with current pricing applied, covering the case where the buyer wants to repeat a previous purchase without reconstructing the order from memory.
ERP and system integration
Two-way ERP integration is the operational foundation that makes a B2B portal a real ordering system rather than a frontend that creates a parallel data entry burden. Inventory availability is pulled from the ERP in real time and shown to the buyer at the product level, so they can see whether a product is in stock before adding it to the order rather than placing an order that then requires a back-order conversation. Order data is written to the ERP when an order is placed in the portal -- no manual entry, no CSV import, no data reconciliation between two systems at end of day. Customer account data and contracted pricing are synchronised from the ERP as the system of record, so a pricing change made in the ERP propagates to the portal on the next sync without a separate update step in the portal admin. Dispatch and tracking data from the ERP update the buyer's order status in the portal -- the buyer sees when their order has been picked, dispatched, and delivered without contacting the seller. Accounts receivable data feeds the credit limit and payment terms enforcement in real time, so an account whose balance changes during the business day -- a payment received, a credit limit adjustment -- is reflected in the portal without a nightly batch job.
Frequently asked questions
A B2B ecommerce portal is a self-service ordering channel built for account-based buying relationships rather than anonymous consumer transactions. The structural differences are account-specific pricing where each customer sees their contracted rates rather than a public price list, purchase order payment with net credit terms rather than card payment at checkout, multi-user account management where multiple buyers operate under one account with individual roles and spending limits, and approval routing where orders above a threshold require internal sign-off before they are committed to the seller. These are not features that can be bolted onto a consumer platform with plugins -- they require a data model where pricing, credit, and approval logic are first-class properties of the account relationship rather than workarounds applied at the transaction level. A B2B portal also integrates differently: the connection to the ERP for inventory, order data, and credit terms is a core requirement rather than an optional enhancement.
Yes, and this is a specific design requirement we build to. The sales team needs to be able to create a new account, assign or create a price list for that account, set effective dates for contract renewals, and update individual product prices within a contracted range -- all through the admin interface without raising a development ticket. For businesses where the ERP is the system of record for pricing, the synchronisation from the ERP means the pricing team manages prices in one place and the portal reflects those prices automatically. The admin-managed approach suits businesses where pricing is managed outside the ERP or where the sales team needs to be able to create or adjust prices on a shorter cycle than the ERP synchronisation supports. Both approaches are scoped during the project discovery phase and the admin interface is built to match the actual workflow the sales team runs rather than a generic price management tool.
ERP integration is scoped as a defined part of the project rather than an afterthought. The first step is documenting what data needs to flow in each direction -- inventory availability from ERP to portal, orders from portal to ERP, pricing and account data from ERP to portal, and payment and dispatch data from ERP to portal. The second step is assessing the integration options the ERP exposes: REST API, SOAP web service, database connection, or file-based exchange. Most modern ERPs including SAP Business One, Microsoft Dynamics, NetSuite, and Sage publish APIs that support real-time integration. Legacy systems may require a middleware layer or a scheduled sync rather than real-time events. The integration scope, data mapping, and sync frequency are agreed during discovery and priced as part of the fixed cost. We have integrated B2B portals with ERP systems across manufacturing, distribution, and wholesale and the integration pattern is a standard part of the project rather than an unknown.
A B2B ecommerce portal covering account-based pricing, purchase order payment with net terms, multi-user account management with approval routing, account-specific catalogue visibility, and ERP integration for inventory and order data typically runs $80,000 to $150,000. A full portal adding quote request and approval workflow, advanced credit limit management with real-time ERP balance synchronisation, CSV bulk ordering, and multi-location account structures typically runs $160,000 to $280,000. The main cost variables are the number of ERP and payment integrations in scope, the complexity of the approval routing logic, and whether a custom quote workflow is required alongside the standard order flow. Every project is scoped before pricing and delivered at a fixed cost.
Talk to us about your B2B ecommerce portal project.
Tell us your current ordering process, the account types you serve, the pricing structures you need to support, and which ERP or back-office system the portal needs to connect to. We will scope the right build.