Skip to main content
Delivery Driver Operations — A build-to-order ERPNext app that turns Delivery Notes into planned trips with ordered stops, gi — 1/1Illustrative preview

A build-to-order ERPNext app that turns Delivery Notes into planned trips with ordered stops,

gives drivers a mobile task list, captures proof of delivery, and reconciles COD cash back into your ERPNext accounts. Built, installed and supported by

ECOSIRE after we scope your operation.

What is Delivery Driver Operations?

A build-to-order ERPNext app that turns Delivery Notes into planned trips with ordered stops, gives drivers a mobile task list, captures proof of delivery, and reconciles COD cash back into your ERPNext accounts. Built, installed and supported by ECOSIRE after we scope your operation. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Custom Frappe app with a `delivery_operations` module — installed on your bench beside `erpnext`, upgrade-safe, no fixture-level overrides of core DocTypes
Trip Run DocType with driver, vehicle, depot and run date, driven by a real Frappe Workflow (Draft, Dispatched, In Progress, Returned, Reconciled)
Trip Stop child table linking each drop to its source Delivery Note, with sequence number, planned time window, per-stop status and a configurable failure-reason link field
Mobile-first driver task view served from a whitelisted Frappe portal route — not Desk — usable one-handed on a phone in a loading bay
Delivery Proof DocType capturing recipient name, signature or photo as a Frappe File attachment, device geolocation and client-side capture timestamp
Offline-tolerant submission queue in the driver client: stops captured without signal replay to the Frappe REST API on reconnect, with idempotent server handling
Partial-delivery handling — per-item accepted and returned quantities that flow back to the Delivery Note instead of forcing an all-or-nothing outcome
Cash Reconciliation DocType that sums COD across completed stops, records cash actually handed in, and posts a Journal Entry through the standard ERPNext accounting API
`hooks.py` doc events on Delivery Note `on_submit` and on stop completion to auto-create trip stops and drive submission or invoicing per your agreed rules
Server-side validation gates: no reconciliation while a stop is open, no COD stop delivered without a proof record, no vehicle double-booked for the same slot
Permission query conditions plus Delivery Driver, Dispatcher and Depot Finance role profiles so drivers see only their own run and only finance can post cash entries
Scheduler event for the overnight roll-up: closes returned runs, flags cash variance beyond a configurable tolerance, and refreshes report data
Query Reports and a dashboard for on-time percentage by driver and route, ranked failure reasons, stops per run, cash variance trend and drop density by postcode
Whitelisted REST endpoints for the run and stop lifecycle so a future native mobile app or a telematics provider can integrate without touching the UI layer
Built and tested against Frappe/ERPNext v15 and v16, with `bench migrate` patches included

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

ERPNext already knows what should leave your warehouse — Delivery Notes are drawn from Sales Orders, stock moves post correctly, and Sales Invoices follow. What ERPNext core does not model is the day itself: which van a Delivery Note is loaded onto, in what order the twenty drops are sequenced, who signed for drop eleven, which customer refused half a pallet, and how much cash each driver is holding when he walks back into the depot at six in the evening. Most distributors bridge that gap with a WhatsApp group and a clipboard, then spend the following morning arguing over which delivery was actually completed and whether the cash count balances. The Delivery Trip DocType in ERPNext gives you a driver, a vehicle and a stop list with map-based optimisation — it does not give you a driver-facing task screen, structured proof of delivery, partial-delivery handling, or a cash reconciliation that closes against a Journal Entry.

ECOSIRE builds a proper Frappe app for this — its own app on the bench with a delivery_operations module, installed alongside erpnext, never a pile of Customize Form overrides that break on the next bench update. The core DocTypes are a Trip Run (driver, vehicle, depot, run date, status workflow of Draft to Dispatched to In Progress to Returned to Reconciled) with a child table of Trip Stops, each linked to the source Delivery Note and carrying its own sequence, planned window, status and outcome reason. A second document, Delivery Proof, is created per stop and holds the recipient name, the signature or photo attachment, geolocation and the client-side timestamp captured on the device. Cash Reconciliation closes the run: it sums the COD amounts of completed stops, records what the driver actually handed over, and posts a Journal Entry through the standard ERPNext accounting API so the depot cash account and the customer receivables move together rather than being patched in later.

The driver side is a mobile-first Frappe web page — a whitelisted controller under @frappe.whitelist() serving a lightweight portal route, not the Desk UI, because Desk on a five-inch screen in a loading bay is not a usable tool. The driver signs in as a real ERPNext User bound to a Delivery Driver role profile, sees only the stops on his own run through a permission query condition on the owning driver field, marks each stop delivered, partially delivered or failed with a reason from a configurable link field, and captures the signature straight into a File attached to the Delivery Proof. Submission goes over the Frappe REST API with an offline queue in the browser so a dead spot in a basement car park does not lose the drop, and the server handles a replayed stop idempotently — the same submission twice does not create two proofs.

Behind that, hooks.py doc events keep ERPNext consistent: on_submit of a Delivery Note can auto-create or attach a Trip Stop, and completing a stop can submit the Delivery Note and trigger invoicing according to the rules we agree during scoping. A scheduler event runs the overnight roll-up that closes returned runs, flags runs where cash collected does not match cash expected, and refreshes report data. Server scripts and controller validation enforce the rules that actually matter to you — a run cannot be reconciled while a stop is still open, a COD stop cannot be marked delivered without a proof record, a vehicle cannot be double-booked for the same slot. Reporting ships as real Query Reports and a dashboard: on-time percentage by driver and by route, failed-delivery reasons ranked, average stops per run, cash variance by driver over time, and drop density by postcode. Permissions are wired through role profiles so a dispatcher plans, a driver only executes, and only a finance role can post the reconciliation Journal Entry.

This is build-to-order, and we say so plainly: there is no instant download. You request a quotation, we run a scoping call of about thirty minutes on your actual routes, COD rules and existing ERPNext setup, and we come back with a fixed scope and price. Typical delivery is one working week from confirmed scope, depending on how much of the invoicing and cash-posting flow you want automated. We build against your Frappe and ERPNext version — v15 or v16 — deploy to your staging bench for UAT first, then to production with a documented rollback. You receive the full source in a git repository you own, so you are never locked to us for the next change.

What you get

  • Installable Frappe app source built for your exact Frappe/ERPNext version (v15 or v16), with a working `bench install-app` path
  • Installation and configuration on your bench, including role profiles, workflow states, permission query conditions and scheduler registration
  • Technical documentation: DocType reference, `hooks.py` doc events, whitelisted API endpoints with request and response shapes, and customisation notes
  • End-user guide for dispatchers, drivers and depot finance, plus one live training session with your team
  • UAT on a staging bench against a copy of your data, with an agreed acceptance checklist and a documented rollback plan
  • Production deployment window with monitoring of your first live delivery runs
  • Post-go-live support window for defect fixes on the delivered scope (duration fixed in your quotation)
  • Handover of the git repository — full history, branches and tags — to an account you own

Who this is for

Operations Director at a regional distributor

Runs six to thirty vans out of one or two depots and currently plans the day in a spreadsheet before typing Delivery Notes into ERPNext after the fact. Needs the plan and the execution record to be the same object, so on-time performance and failed-drop reasons become measurable rather than anecdotal.

Depot or fleet supervisor

Owns the morning dispatch and the evening cash count. Wants to sequence stops per van, see live which drops are done, and finish the day with a reconciliation that either balances or names exactly which driver and which stop it does not balance on.

Finance manager or controller

Cares that COD cash lands in the right account on the right day and that receivables clear against real proof of delivery. Needs the Journal Entry posted from a controlled document with an audit trail, not a manual entry keyed from a photo in a chat group.

ERPNext system owner or internal IT lead

Responsible for keeping the bench upgradable. Wants a separate app with its own module, patches and tests, source in a repository they control, and no undocumented Customize Form changes that break at the next `bench update`.

How Delivery Driver Operations Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Fit to your delivery processBuilt to your routes, COD rules and depot workflow after a scoping callFits perfectly if your team gets the requirements right first timeFits the author's original customer; you adapt your process to itDelivery Trip covers driver, vehicle and stop list only
Driver mobile experienceMobile-first portal task view with offline queue and signature captureDepends entirely on the front-end skill available in-houseUsually Desk on a phone or a stripped-back list viewDesk UI, not designed for a phone in a loading bay
Proof of deliveryDelivery Proof DocType: signature or photo, recipient, geolocation, device timestampAchievable, but signature capture and file handling are the slow partsOften a single attachment field with no structured recordNo proof-of-delivery model in core
COD cash reconciliationRun-level reconciliation posting a Journal Entry via the ERPNext accounting APICorrect accounting posting is where most in-house builds stallRarely included; usually left to manual Journal EntriesManual Journal Entry keyed from the depot's own cash count
Upgrade safetySeparate Frappe app with its own module and patches; v15/v16 testedOften Customize Form overrides that break at the next bench updateDepends on the author's appetite for maintaining your versionCore, so upgrade-safe by definition
Delivery performance reportingQuery Reports and dashboard: on-time by driver and route, failure reasons, cash varianceBuildable, usually deprioritised once the core flow worksTypically one or two fixed reportsNo delivery KPI reporting beyond generic list views
Source code ownershipFull git repository handed to an account you own, no licence keyYou own it outrightOften obfuscated or licence-key gated per siteOpen source under the ERPNext licence
Time and cost to productionTypically one working week from confirmed scope at a fixed quoted priceLongest path: hiring, ramp-up on Frappe internals, then iterationImmediate install, then weeks of gap-filling custom workAvailable today, but the daily operation stays on spreadsheets

Frequently Asked Questions about Delivery Driver Operations

How long does delivery take, and can I download this today?

No — this is build-to-order, not a marketplace download. You request a quotation, we hold a scoping call of about thirty minutes on your routes, COD rules and current ERPNext setup, and we return a fixed scope and price. Typical delivery is one working week from confirmed scope. Wider scope — deep telematics integration, a native mobile app, multi-depot cash hierarchies — extends that, and we give you the revised range before you commit.

Why not just use the Delivery Trip DocType that ships with ERPNext?

Use it if it fits. Delivery Trip gives you a driver, a vehicle, a stop list and map-based route optimisation. It does not give a driver a usable mobile task screen, does not capture structured proof of delivery with signature and geolocation, has no partial-delivery outcome model, and has no cash reconciliation that posts a Journal Entry. This app adds those and keeps working alongside core ERPNext documents rather than replacing them.

Which Frappe and ERPNext versions do you support?

We build against Frappe and ERPNext v15 and v16 and target the exact version running on your bench. If you are on an older release we say so during scoping and either quote the upgrade separately or build to your current version with the constraints spelled out in the proposal.

Do drivers need a user account, and what can they see?

Each driver signs in as a real Frappe User bound to a Delivery Driver role profile, so seat counts follow whatever your hosting arrangement is — we confirm the number during scoping. A permission query condition restricts them to stops on their own run for the current day; they do not get the Desk UI, other drivers' runs, customer pricing or accounting documents.

What happens to a delivery when the driver has no mobile signal?

The driver client queues captured stops and proof records locally in the browser and replays them to the Frappe REST API when connectivity returns. Server handling is idempotent — the same stop replayed twice does not create a duplicate Delivery Proof or a duplicate Journal Entry line. Timestamps are captured on the device, so the record reflects when the drop actually happened, not when it synced.

How does support and updates work after go-live?

Your quotation includes a defined post-go-live support window covering defect fixes on the delivered scope, and we monitor your first live runs. After that window, support and version-upgrade work is available as a separate agreement — annual maintenance or ad-hoc per change. You hold the git repository throughout, so your own team or another firm can also continue the work.

Do we own the code, and can we modify it later?

Yes. We hand over the full git repository — history, branches and tags — to an account you own, along with technical documentation of the DocTypes, doc events and API endpoints. There is no licence key, no phone-home check and no obfuscation. Your team can extend it, and when you run the next `bench update` that is your call, not ours.

Request a quote

Delivery Driver Operations

A build-to-order ERPNext app that turns Delivery Notes into planned trips with ordered stops, gives drivers a mobile task list, captures proof of delivery, and reconciles COD cash back into your ERPNext accounts. Built, installed and supported by ECOSIRE after we scope your operation.

  • Custom Frappe app with a `delivery_operations` module — installed on your bench beside `erpnext`, upgrade-safe, no fixture-level overrides of core DocTypes
  • Trip Run DocType with driver, vehicle, depot and run date, driven by a real Frappe Workflow (Draft, Dispatched, In Progress, Returned, Reconciled)
  • Trip Stop child table linking each drop to its source Delivery Note, with sequence number, planned time window, per-stop status and a configurable failure-reason link field
  • Mobile-first driver task view served from a whitelisted Frappe portal route — not Desk — usable one-handed on a phone in a loading bay

Request a Quotation

Tell us about your Delivery Driver Operations requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.