CASE 03 · BM TRADE HUBB2B trade pricing,modelled properly.A custom Laravel + React portal for a manufacturer's trade buyers — bespoke catalogue, dynamic trade-pricing engine, and an admin tool the office team actually uses.
YEAR2024PLATFORMCustom · Laravel + ReactCATEGORYB2B PortalSTATUSLIVE · PRODUCTIONVisit site
TRADE HUB · DASHBOARD
SECTION 01THE BRIEF · WHY IT EXISTED
01 / BRIEF

Spreadsheets stopped scaling.

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.

SECTION 02THE APPROACH · WHAT WE BUILT
02 / APPROACH

Custom because it had to be.

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.

01

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.

02

Auth tied to existing accounts

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.

03

An admin tool people actually use

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.

04

Quote PDFs that look right

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.

SECTION 03THE STACK · CUSTOM, NOT BLEEDING-EDGE
Frontend
REACTNEXTTAILWIND
Application
LARAVELPHP 8.3INERTIA
Data
POSTGRESREDIS
Documents
DOMPDFS3
Auth
SANCTUMSSO
Observability
SENTRYLOGTAIL
SECTION 04THE OUTCOME · WHERE IT LANDED
04 / OUTCOME

Live with trade buyers. Office hours back.

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.

09 / WORK WITH US

Show us your stack.
We’ll tell you exactly what we’d ship.

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.

Currently booked out 14 days · we reply within 4 working hours