Trade pricing as a first-class object
Not a Shopify plugin or a wholesale theme — a proper relational model: products × buyers × tiers × surcharges. Every number on screen has a clear origin in the database.
BM Bifolding Doors' trade business runs on quotes that change per buyer, per region, per finish, and per volume tier. The office team had been holding it together with a master price list in Excel and a lot of late phone calls. They wanted a portal that let their trade customers self-serve current pricing without losing the per-buyer customisation.
We tried the off-the-shelf options first — every wholesale plugin for Shopify and Woo. None could model the per-buyer rules without ten layers of workarounds. Custom Laravel was the boring, sustainable answer.
Not a Shopify plugin or a wholesale theme — a proper relational model: products × buyers × tiers × surcharges. Every number on screen has a clear origin in the database.
Trade buyers log in with the credentials they already use for support tickets. No separate portal account. Less friction, fewer "I forgot my password" tickets for the office team.
The hardest part of B2B is the admin side. We spent as much time on the back-office UI as the customer-facing portal — keyboard-first, table-dense, no meaningless dashboards.
Generated server-side with the brand's typography intact. Trade buyers print these. They go to procurement teams. They have to look like they came from BM.
Buyer-count and quote-volume numbers are theirs to share, not ours. We'll walk you through what shifted on a call.
The portal has been live for trade buyers for the better part of a year. Buyer-side time-to-quote dropped from "we'll get back to you" to instant. The office team got their afternoons back. Most importantly: the price model is now visible — every quote is inspectable, every discount has a documented origin.
The admin tool is the underrated win. It's the part the office team uses every day, and it's the part most agencies skip because it's not a portfolio piece. We treat it as the most important screen in the system.
One call. We'll dig into what you've got, where it's friction, and whether we're the right people to help. No deck, no pitch.