Skip to content
ADF Foods

ERP-Integrated Distributor Management System for ADF Foods

16

Distributors ordering on the portal.

8

Countries those orders ship to.

439K+

Units ordered since go-live.

About this engagement

Industry
Retail and distribution
Users
Distributors, sales heads, country managers and admins
Timeline
About ten weeks, a four-person team

ADF Foods sells packaged Indian food into export markets. Its distributors order container loads weeks ahead, in US dollars, across dry and frozen lines. Every one of those orders used to arrive as a phone call or an email, for a sales representative to key into the ERP by hand.

SoluteLabs built a distributor management system on top of that ERP rather than in place of it. Distributors place their own export orders and follow them from departure to arrival. Sales heads and country managers read revenue and volume as the orders land, instead of waiting for a spreadsheet that somebody has to assemble first.

The system is live in production and SoluteLabs still supports it.

Two things moved while we built it. Analytics grew past the admin view once sales heads and country managers saw the first demo and asked for targets, drill-downs and trends over time. Role scoping got more granular than the first design assumed. Both stayed configuration changes rather than rewrites, because role-based access went in first.

Solution

One portal over the ERP, not a replacement for it. A distributor signs in, places an export order against the live catalogue and follows it from departure to arrival. A manager signs into the same system and reads revenue by distributor and volume against target.

It runs on Google Cloud. Kinde handles sign-in, and its role claims map straight onto the permission model, so what a person can see is a configuration question rather than an architectural one.

Self-service export ordering

Role-scoped live analytics

Architecture

Four roles sign in once and their claims decide what they are shown. Three modules sit between them and the existing ERP, which keeps processing orders and keeps owning the record. The surface between the two is deliberately narrow, and it stops there.

Architecture diagram: distributors, sales heads, country managers and admins sign in through an access layer whose role claims map onto the permission model, so a distributor sees only their own orders and a country manager a whole geography; three modules sit under it, export order placement with a container calculator, destination port and dry or frozen lines, tracking and replenishment with departure to arrival status, safety stock by product code and a suggested order, and role-scoped sales analytics with revenue by distributor, volume over time and performance against targets; below them orders are pushed into the existing ERP on submission and fulfilment status is pulled back, the ERP stays the system of record and a failed push surfaces as an order error with retry guidance; the platform runs on Google Cloud with Kubernetes Engine, Cloud Storage with signed URLs, Monitoring, Logging, Secret Manager and Artifact Registry, and an invalid role request returns a 403 with no information leakage

Deliverables

Export order placement

  • A distributor works down the catalogue, sets quantities and submits, with nobody to ring first.
  • The order is pushed into the existing ERP on submission, so it enters processing the same way it always did.
  • Every order carries a timestamp and an author, which is a record on the distributor's side for the first time.
  • If the push into the ERP fails, the distributor gets an order submission error with retry guidance rather than silence.

Tracking and replenishment

  • Each order shows the date it leaves, the date it lands and the lead time between them, with its current status beside it.
  • Safety stock sits per SKU at three and six months, so a distributor reorders before running out rather than after.
  • A suggested order and a repeat-order prompt cover the reorder a distributor was going to place anyway.

Role-scoped sales analytics

  • Sales heads, country managers and admins open the same system and each see the slice of the network their role covers.
  • Revenue by distributor, volume over time and performance against target, live as the orders land rather than assembled at the end of a week.
  • A request for a view outside a role returns a 403 that leaks nothing about what sits behind it.

Outcomes

Three workflows, before and after, counted from the system's own record since go-live. Nothing here is an estimate and nothing is a projection.

Phone and email orders became self-service, with a record attached

  • An order used to reach a sales representative as a call or an email and get keyed into the ERP by hand.

  • 155+ orders have been confirmed through the portal since go-live, each one timestamped and attributable.

Assembled weekly spreadsheets became live role-scoped dashboards

  • Revenue and distributor performance were put together by hand, arrived late and drifted between versions.

  • The same managers now read 2,864 line items across 550+ SKUs as the orders land, in the view their role scopes them to.

No fulfilment visibility became departure to arrival tracking

  • Once an order was placed, a distributor had no way of seeing where it had got to.

  • 189 orders now carry their departure date, their arrival date and their status in the portal, visible to the distributor who placed them.

Build the Interface Layer Your Systems Are Missing

Your ERP, CRM and internal tools already hold the data. The gap is access: the right workflow, the right dashboard and the right permissions for the people who have to act on it. Let us look at yours.

Prakash
Karan
Mitali
Talk to us