Plan a B2B order portal: prices, units and approval
Plan customer permissions, carton prices and approvals using an example order with a clear handover to the ERP.

Before designing the order portal, establish which company a person buys for, which unit a price covers and when an order may proceed. These rules need to remain consistent through the handover to the ERP.
A worked order example
All identifiers, prices and thresholds here are fictional. The approval threshold is an internal example rule, not a legal requirement. The calculations exclude tax and delivery.
Item | Example setting |
|---|---|
Customer account | C-10, separate from C-20 |
Product | B-6: one carton contains 6 units |
Price for C-10 | 18 EUR net per carton |
Price for C-20 | 21 EUR net per carton; 2 cartons = 42 EUR net goods value |
Basket | 2 cartons = 12 units = 36 EUR net goods value |
Approval | A net goods value of 500 EUR or more requires an authorised approver. |
For 28 cartons, the net goods value is 504 EUR. This order needs the additional approval. Show the carton quantity and contained unit count together; an unlabelled quantity field can turn two cartons into two individual items.
Keep company, location and person separate
The buyer at C-10 can create a draft. Another authorised person approves orders above the threshold. Delivery locations belong to the relevant company account. A shared login for all employees makes it harder to revoke one person's access.
B2B catalogues can define customer-specific products and prices; Shopify's documentation provides a product example. Test whether the selected system actually supports the company and location relationships you need.
Hiding a link does not protect another account. The server must check permissions on every request, as OWASP recommends. If a C-10 test user changes a customer identifier to C-20, neither that customer's prices nor addresses should become visible. Use separate test accounts for these checks.
Distinguish submission from ERP acknowledgement
One possible flow is: current price checked → draft → approval if needed → transfer pending → acknowledged by the ERP with an order ID. In this example, a change to quantity or price after approval triggers a new check. The point at which an order is legally accepted must also match your actual terms of business.
When the ERP is unavailable, the transaction stays open. Example message: “Your order is waiting to be transferred. No order confirmation is available yet.” Show the order ID only after processing has been acknowledged. Repeated transfers must be recognised as the same transaction to prevent a second order.
Checks before introduction
Verify that two cartons appear as 12 units and 36 EUR. Then test 28 cartons: transfer must wait for the required approval. Test access to C-20, a price change after approval and a lost ERP connection. Each check needs a visible, understandable status.
This defines the first release: customer permissions, price units, approval and traceable ERP transfer. You can then assess extra search filters or promotions with the ordering rules already settled.
Sources
Read more
All articles





E-Commerce with ASES
Online shops, marketplaces and B2B portals

