Vendix SFA
Industries · FMCG

From van load to distributor claim, in one platform.

FMCG isn't one workflow - it's twenty workflows that have to interlock by 5 p.m. or the next day's load is wrong. Vendix runs the full chain end-to-end: NSM forecasts, RSM territories, ASM routes, distributor van loads, sales rep outlet visits, free-issue promos, returns, payments, and the principal claim that ties it all up.

5
Hierarchy levels
BXGY
Free issues
RPL
Distributor pricing

Indirect channel · sales hierarchy

NSM (National Sales Manager) Country
RSM (Regional Sales Manager) Region
ASM (Area Sales Manager) Area
Distributor Van fleet
Sales Rep Route

5 roles · territory-scoped · ManagerId ladder for approvals

A day in the life

Six a.m. start. Five p.m. close. Audited the whole way.

06:30

Day Start

Van stock loaded against route plan. SalesRep checks in at the depot - GPS-verified. Route downloaded to Android (works offline from this point on).

Day Start block · v1 shipped 2026-04-14

08:15

First outlet

Geofence triggers ENTER. Rep takes order via voice or Compose UI. Free-issue rules evaluate (BXGY mutual exclusion enforced). Invoice generated, GPS-stamped, written to Room as PENDING - instant UI.

Voice · Free Issues · Pipeline Engine

11:42

No coverage

6 invoices, 2 returns, 1 visit log all sit in Room. Status badge shows "Offline · 9 pending". Rep keeps working.

Offline-first · WorkManager queues

13:08

Coverage returns

WorkManager fires. 9 transactions push FIFO. Server pipeline runs (validate, allocate FEFO, persist, audit). Badge clears. Rep doesn't notice.

ClientTxnId idempotency · server-validated

17:00

Day End

Van Stock Reconciliation auto-runs. Daily Sales Report (DSR) auto-generated. Variances flagged for ASM review. Rep checks out.

Day End block · DSR auto-gen · v1 shipped 2026-04-14

02:30

ETL + claim

Hangfire ETL refreshes ReportDb. Distributor Claim worksheet rolls up the day's sales for the principal. Reports update themselves.

Reports · Claims · 15-min ETL

Modules built for FMCG

Every line item your team mentioned in the RFP.

Distributor hierarchy

Indirect channel with proper RPL/DPL pricing layers, distributor product mappings, sales-rep product mappings - both filters apply on every order.

Route plan + geofence

Routes assigned per rep, daily plan downloaded to Android, geofence ENTER/EXIT logged. Route compliance KPI per rep per day.

Free Issues (BXGY)

Plain-English rules compiled to a deterministic engine. Slabs, caps, mutual exclusion, cross-SKU, default products, season tags. All evaluated server-side.

Sales Order → Invoice

PickList, LoadSheet, DispatchNote, GatePass - full lifecycle with stock reservation. Or skip directly to invoice for van-sales.

Collection + aging

CustomerPayment with allocation, cheque Pending→Cleared/Bounced lifecycle, aging buckets (0-30/31-60/61-90/90+).

Returns + Claims

SalesReturn (post-delivery), CreditNote (auto-issued on approval), DistributorClaim (distributor → principal reimbursement).

Sales Targets

Per-rep monthly/weekly targets with achievement % live. Both indirect (rep) and direct (DS rep) channels.

Outlet GPS tagging

Pin exact store location during first visit. <50m accuracy gate. Variance reports for outlets that "moved".

Demo data on tap

20 product configs, 10 outlets, 3 routes, full credit-approval ladder, 4 price lists with 60 revisions, 2 free-issue schemas pre-activated. Idempotent.

15 min

Sales freshness

ETL refresh cadence. The dashboard at 9 a.m. shows data from 8:45.

100m

Geofence radius

Default per-outlet radius for visit verification. Tunable per outlet.

FEFO

Inventory allocation

First-Expiry-First-Out batch picking on every invoice. Quarantine for recalls.

See your van fleet on a sandbox tenant.

Bring a route plan, a price list, and a free-issue rule that broke your last system. We'll wire it in front of you and show you the audit trail.