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

85%of orders via the portal (previously 0%)
−70%rep time on admin tasks
+34%average order size
0pricing errors since launch

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.

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.

B2B portal diagram: middleware built on the Sfera API syncs products, stock, per-client contract prices and order history from the Subiekt GT ERP every 15 minutes into a Next.js backend with a Postgres (Supabase) database; the B2B client places orders in a panel with a catalogue, cart and PDF invoices; on confirmation a Furgonetka, DPD or InPost label is generated; the sales rep gets a Slack notification and the client gets email and SMS status updates.
How it works: Data flow: Subiekt GT ↔ B2B portal

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.

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.

MetricBefore4 months after launch
Orders via portal0%85%
Rep time on admina full-time role−70%
Average order sizebaseline+34%
Pricing errorsoccurred0

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.


ZG

Founder of FETCHER Solutions. Building automations and online stores for businesses since 2019. Łódź, Poland. LinkedIn →