A build-to-order ERPNext app for FMCG distributors running van and route sales: beat planning, van stock load-in/load-out, on-the-road order taking and invoicing, and cash/credit collection. ECOSIRE scopes, builds, installs, and supports it on your bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $499.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext app for FMCG distributors running van and route sales: beat planning, van stock load-in/load-out, on-the-road order taking and invoicing, and cash/credit collection. ECOSIRE scopes, builds, installs, and supports it on your bench.
Sin pago ahora. Esto envía una solicitud de presupuesto a nuestro equipo; te responderemos por correo con precios y próximos pasos.
FMCG distributors and wholesalers live or die on the beat. Salesmen leave the depot with a van full of stock, cover a fixed route of retailers, sell and invoice on the doorstep, collect cash or extend credit, and reconcile the van at end of day. ERPNext ships strong native building blocks for this — Stock Entry, Sales Invoice, POS, Delivery Note, Warehouse, and Payment Entry — but it has no native concept of a route, a beat plan, a van as a mobile selling warehouse, or a salesman-facing app that works with intermittent connectivity. Distributors end up bolting spreadsheets and WhatsApp onto ERPNext, and van reconciliation becomes a nightly manual chore that hides shrinkage and unbilled stock.
Route/Beat DocTypes with planned customer sequences, visit frequency (daily/weekly cycles), and per-salesman day assignment driving the field worklist
Per-van Warehouse mapping so every van is a mobile stock location with a real, queryable book balance in native ERPNext ledgers
Van load-in generates a Stock Entry (Material Transfer) from depot warehouse to van warehouse on submit
Van unload/reconciliation compares physical returns against book stock and auto-posts the settlement Stock Entry, surfacing variance and shrinkage
On-route order taking and Sales Invoice creation against the beat's customer list, with van-stock availability enforced in validate/on_submit hooks.py events
Mobile salesman flows powered by the Frappe REST API and @frappe.whitelist() methods: pull today's beat, post orders, record collections
We build a proper Frappe app — installed on your own bench alongside ERPNext, not a hosted black box — that adds the distribution layer ERPNext core is missing. The app introduces first-class DocTypes such as Route/Beat, Route Visit, Van, Van Load (load-in), and Van Unload (load-out reconciliation), each mapped to a per-van Warehouse so stock movement flows through native ERPNext ledgers rather than around them. Load-in creates a Stock Entry (Material Transfer) from the depot warehouse to the van warehouse; every on-route sale draws down that van warehouse, so at any moment the van's book stock is a real, queryable balance. Salesmen take orders and cut invoices against the beat's planned customer list, and route/beat sequencing drives their daily worklist.
Technically, the moving parts are wired the ERPNext way. Business rules run in hooks.py document events — validate, on_submit, on_cancel — for example blocking a van sale that exceeds van stock, or auto-generating the reconciliation Stock Entry when a Van Unload is submitted. Server-side automation and heavier reconciliation logic live in whitelisted server methods and scheduler events (scheduler_events in hooks.py) — nightly route settlement, credit-limit sweeps, and unvisited-customer flags. The mobile salesman experience is driven through the Frappe REST API and custom @frappe.whitelist() methods so the field app can pull the day's beat, post orders, and record Payment Entry collections; client scripts enforce on-form rules (credit hold, price-list selection, minimum order) inside the Desk. Access is governed by ERPNext permissions and dedicated role profiles (Van Salesman, Route Supervisor, Distribution Manager) so a salesman only sees their own van, route, and customers. We target current Frappe/ERPNext v15 and forward-compatibility with v16.
Because this is build-to-order, nothing ships until we have agreed your exact scope. It starts with a short scoping call, after which we confirm the DocType model, your route/beat structure, pricing and credit rules, and the mobile flows you actually use. Typical delivery is 2 to 4 weeks from confirmed scope. We build on a staging bench, run UAT with your team, and hand over installable source, a git repository, and documentation — then support you through go-live. No fabricated benchmarks, no instant download: a real app, built for your distribution operation, installed and supported by ECOSIRE.
Runs a distribution house with multiple vans and beats. Wants van reconciliation to be automatic and honest, shrinkage visible, and every doorstep sale flowing into ERPNext ledgers instead of side spreadsheets.
Owns route and beat planning, salesman targets, and credit control. Needs a single ERPNext view of load vs. sales vs. returns per van, unvisited customers, and retailers breaching credit limits.
Spends the day on the beat. Needs a fast mobile flow to see today's customers, take orders, cut invoices, collect cash or credit, and post it all even where the signal drops.
Maintains the bench and integrations. Wants a clean, installable Frappe app with clear DocTypes, hooks, whitelisted APIs, role profiles, and a git repo they can audit and extend rather than a locked black box.
Compre la licencia en ecosire.com y descargue la aplicación ZIP de Distribution & FMCG Van Sales desde el panel de su cuenta.
Extraiga el ZIP en la carpeta de aplicaciones de su banco o ejecute `bench get-app` con la ruta a la aplicación extraída.
Ejecute `bench --site SITE_NAME install-app APP_NAME` seguido de `bench migrar` para instalar Distribution & FMCG Van Sales y aplicar su esquema.
Abra la configuración de licencia de ECOSIRE en su sitio y active su clave de licencia. Requiere las aplicaciones gratuitas ecosire_connect y ecosire_license_client.
| Criterio | ECOSIRE | Construcción personalizada | Competidor | Odoo Nativo |
|---|---|---|---|---|
| Van as stock location | Per-van warehouse; real stock ledger balance | Possible but you design and build it | Often a custom field, not true warehouse stock | |
| Route & beat planning | First-class Route/Beat DocTypes with visit cycles | Built from scratch to your spec | Basic route list, limited sequencing | |
| Van reconciliation | Auto settlement Stock Entry + variance report on unload | You build the reconciliation logic | Manual or partial reconciliation | |
| Mobile field app | REST API + whitelisted methods, offline-tolerant capture | Full mobile build is on you | Generic app, limited offline support | |
| Credit & collection control | Credit-limit/aging holds via client + server scripts, native Payment Entry | Rules coded per your policy | Basic credit checks, varies by app | |
| Fit to your operation | Scoped to your beats, pricing, and rules | Fully bespoke but slow and costly to build | One-size-fits-all listing | |
| Source & handover | Full source, git repo, docs, role profiles | You own it but own the whole build | Often closed or licensed per seat | |
| Delivery & support | 2-4 weeks build-to-order, post-go-live support | Months of in-house effort | Instant install, generic support only |
This is a build-to-order app, not an instant download. After a short scoping call and confirmed scope, typical delivery is 2 to 4 weeks. The exact timeline depends on how many route, pricing, credit, and reconciliation rules you need and how much mobile flow customization is involved. You get a firm estimate once scope is agreed.
Every engagement includes a post-go-live support window for defect fixes and configuration help. Because you receive the full git repository and installable source, your own team can maintain and extend the app. We also offer ongoing support and version-upgrade retainers to keep the app current as you move across Frappe/ERPNext releases.
We build against current Frappe/ERPNext v15 and design for forward-compatibility with v16. The app is pinned to your specific release during the build so it installs cleanly on your bench. If you are on an older version, we will confirm compatibility or scope an upgrade path during the scoping call.
No. It is custom-built by ECOSIRE and installed on your own bench. That is deliberate: distribution rules — beats, credit policy, van reconciliation tolerance, pricing schemes — differ per business, so we tailor the DocType model and logic to your operation rather than ship a one-size-fits-all listing.
Yes. Vans are modeled as ERPNext warehouses, so load-in, sales, returns, and reconciliation all flow through native Stock Entry and the stock ledger. Invoices are real Sales Invoices and collections are real Payment Entries, so your inventory valuation and accounts stay correct without a parallel system.
We build an offline-tolerant, queue-and-sync capture pattern so field order taking and collection survive intermittent connectivity, then sync to the server through the Frappe REST API when the connection returns. The exact offline behavior is confirmed during scoping based on your devices and route conditions.
Yes. You receive the full source and git repository, and the app follows standard Frappe conventions — DocTypes, hooks.py doc events, whitelisted methods, scheduler events, client scripts, and role profiles. Your ERPNext team or any Frappe developer can audit, extend, or integrate it without depending on us.
A build-to-order ERPNext app for FMCG distributors running van and route sales: beat planning, van stock load-in/load-out, on-the-road order taking and invoicing, and cash/credit collection. ECOSIRE scopes, builds, installs, and supports it on your bench.