- Industry
- Wholesale distribution · 400+ B2B clients
- Scope
- B2B client portal, Subiekt GT middleware, pricing configurator, logistics, roles, notifications
- Stack
- Next.js · Postgres (Supabase) · Subiekt GT Sfera API · Furgonetka · DPD · InPost · Slack
- Delivery time
- 6 weeks
- Results measured over
- 4 months after launch
Results
Who was this project for?
The client is a wholesale distributor serving 400+ B2B clients, running on Subiekt GT — an ERP widely used by Polish companies. Orders arrived by phone and email, and the sales team was flooded with product lists to retype by hand.
Before they came to us, 3 agencies had declined the Subiekt GT integration. That's not unusual: integrating with Subiekt requires knowing its specifics, not just knowing how to build an online shop.
What did manual order handling cost?
A wholesale client would phone or email a list of products. The rep checked stock and the contract price list in Subiekt, then keyed the order in manually. 20–30 orders a day at 15 minutes each meant a full-time rep consumed by admin — plus errors: wrong prices and stock shortages nobody flagged in advance.
- Time — reps were retyping instead of selling and looking after clients.
- Pricing errors — manually checking contract price lists is an easy route to mistakes.
- Stock shortages — clients found out after the fact.
- No self-service — without a portal, clients couldn't see stock, history or invoices.
What were the project goals?
The goal was to get clients off the phone: a portal where a B2B client sees their own contract prices and live stock, places orders, downloads invoices and tracks shipments — while Subiekt GT remains the single source of truth for products and prices.
The portal had to be an extension of the ERP, not a separate system requiring manual reconciliation. Deadline: 6 weeks.
How did we build the B2B portal, step by step?
The solution has seven parts: a Next.js front end for B2B clients, a Next.js backend with Postgres (Supabase) as the domain layer, middleware syncing Subiekt GT via the Sfera API, a pricing configurator, logistics integration, a role system and notifications. Subiekt stays the data source; the portal works on a synchronised copy.
1. Next.js front end
The B2B client panel: a catalogue with contract pricing, cart, order history and PDF invoices.
2. Next.js backend + Postgres (Supabase)
A domain layer on top of Subiekt. The portal doesn't query the ERP on every click; it works on its own database, which takes load off Subiekt and keeps the panel fast.
3. Subiekt GT middleware
A sync every 15 minutes via the Sfera API: products, stock levels, per-client contract prices and order history. Sfera is Subiekt GT's official programming interface.
4. Pricing configurator
Business rules: tiered discounts, bundles, logistics minimums. Each client sees the price that actually applies to them.
5. Logistics integration
Furgonetka, DPD and InPost — a shipping label is generated automatically once an order is confirmed.
6. Roles
Wholesaler admin, account manager, client owner and client user. The owner of a client business can give staff access while staying in control.
7. Notifications
Slack for the rep on a new order; email and SMS for the client on status changes.
Why Next.js, Supabase and the Sfera API?
Next.js gives a fast panel and backend in one stack, Postgres in Supabase provides a solid database for the domain layer, and the Sfera API offers stable, official access to Subiekt GT data. This split separates the portal's workload from the ERP and lets each system do what it's good at.
- Next.js — front end and backend together, fast catalogue loading.
- Postgres (Supabase) — roles, orders and pricing rules in a relational database.
- Sfera API — integration with Subiekt without working around the system.
- Furgonetka, DPD, InPost — carriers the wholesaler already used.
We also integrate Comarch and other ERPs — see our system integrations service.
What did the portal deliver after 4 months?
Four months after launch, 85% of orders go through the portal (previously 0%), reps spend 70% less time on admin tasks, average order size is up 34%, and there hasn't been a single pricing error since launch.
| Metric | Before | 4 months after launch |
|---|---|---|
| Orders via portal | 0% | 85% |
| Rep time on admin | a full-time role | −70% |
| Average order size | baseline | +34% |
| Pricing errors | occurred | 0 |
The order-size increase has a simple cause: clients see the full catalogue and recommendations, not just what they remembered on the phone. Zero pricing errors follow from prices coming straight from Subiekt and the configurator rules rather than from manual retyping.
Who is a similar project right for?
This makes sense for wholesalers and distributors running an ERP such as Subiekt or Comarch, with clients on individual price lists and orders still arriving by phone or email. If your reps spend their day retyping, a B2B portal gives that time back.
API integrations typically cost €1,400–9,500, and an ERP integration starts from €1,060. Fixed price after the brief. More on what drives cost in how much does a modern website cost.
„We had a very complex ERP + B2B portal integration. Three agencies gave up. FETCHER delivered in 6 weeks, exactly as promised.”
Thomas W. · Head of IT · wholesale distribution
Running an ERP and want a B2B portal?
We know Subiekt and Comarch — let's build an extension of your ERP that works for your sales team.
Book a free consultation →Frequently asked questions
How long does a B2B portal with ERP integration take?
In this project the B2B portal with Subiekt GT integration was delivered in 6 weeks. We work in two-week sprints with demos, and the timeline and fixed price are agreed in the brief before we start.
How much does an ERP integration cost?
An ERP integration starts from €1,060, and typical API integration projects fall in the €1,400–9,500 range. You get an exact quote after a 30-minute discovery call.
How often does the portal sync with the ERP?
The middleware syncs every 15 minutes via the Sfera API: products, stock levels, per-client contract prices and order history.
Will B2B clients see their individual prices?
Yes. Each client sees their own contract price list from Subiekt, with the configurator applying business rules: tiered discounts, bundles and logistics minimums. There have been no pricing errors since launch.