Skip to Content
Back to All Guides Mobile & Field Apps
Mobile & Field Apps Practical Guide

Turn Every Delivery Van Into a Mobile Store, Warehouse & Billing Counter.

Give route sales teams one mobile workflow to sell products, print GST invoices, collect cash or UPI payments, track van stock and reconcile the entire route directly with Odoo.
Turn Every Delivery Van Into a Mobile Store, Warehouse & Billing Counter.
Share this guide:
Link copied to clipboard!
Chat with Team
September 5, 2026 by
Turn Every Delivery Van Into a Mobile Store, Warehouse & Billing Counter.
Direct Store Delivery (DSD) & Route Accounting

Turn Every Delivery Van Into a Mobile Store, Warehouse & Billing Counter.

Give route sales teams one mobile workflow to sell products, print GST thermal invoices, collect cash or UPI payments, track van inventory in real time, and reconcile every rupee and crate directly with Odoo ERP.

01. Central Depot (Load 05:00 AM)
02. Van Location (WH/VAN-04)
03. Retailer Delivery (42 Stops)
04. End-of-Day Settlement (₹0 Variance)
Offline Ready | SQLite Local
ESC/POS Paired
Stop #14 of 42 Geofence Matched
Shree General Store
Sanand Road, Ahmedabad • GSTIN: 24AAACS1421D1ZM
ITEM / SKU QTY TOTAL (INR)
Amul Cow Butter 500g
Van Stock: 36 units left
24 pcs
₹6,600.00
Parle-G Gold 1kg Carton
Van Stock: 18 cartons left
12 ctns
₹6,960.00
Coca-Cola 750ml (Case of 24)
Van Stock: 8 cases left
4 cases
₹3,360.00
Subtotal (Excl. Tax): ₹16,920.00
CGST (9%) + SGST (9%): ₹1,530.00
TOTAL BILL AMOUNT: ₹18,450.00
Dynamic Bharat UPI QR Ready
upi://pay?pa=arihant.dist@icici&am=18450.00&tn=INV-2026-09-418
Transaction logged to SQLite • Pending Odoo RPC auto-sync
The Reality of Indian Van Distribution

Your Van Is Moving Inventory and Money Every Day.
Can You Reconcile Both?

In direct store delivery (DSD), a delivery vehicle is not just transport. It is an autonomous commercial entity holding ₹2 Lakhs to ₹8 Lakhs of physical stock and tens of thousands of rupees in cash and store credit. When that vehicle operates on paper slips and phone calls, operational control collapses.

1. Van Stock Blind Spots

Morning loading counts rarely match evening returns. Damaged goods, opened carton samples, and unsold units get mixed together in the cargo hold without batch-level tracking or warehouse transfers.

2. Loose Cash Disputes

Drivers collect cash from dozens of retailers with different denomination bundles. By evening, tracing which store paid exact cash versus partial payment requires hours of manual slip cross-examination.

3. Unchecked Store Credit

Storekeepers demand 7-day or 15-day credit on the spot. Without real-time ERP access to outstanding balances and credit limits, drivers make ad-hoc credit commitments that lock up company working capital.

4. Disputed Returns & Expiry

Expired milk packets, dented beverage cans, or leaky pouches are handed back to drivers. Without photographic proof, timestamped return vouchers, and scrap categorization, distributors bleed margins.

5. Illegible Kachha Slips

Handwritten carbon-copy receipt books smudge in rain, tear in grease, and fail GST compliance audits. Retailers dispute quantities, tax percentages, and trade scheme deductions weeks after delivery.

6. 4-Day Posting Lag

Back-office accountants spend entire mornings manually keying hundreds of handwritten challans into the ERP. Stock balances remain permanently outdated, causing re-order delays and inventory stockouts.

Operational Vulnerability Audit

Where Route Distribution Loses Control

Control is not lost because drivers are dishonest; control is lost because traditional distribution systems force honest people to operate in the dark. These are the eight systematic failure points in conventional van sales:

1. Gate Dispatch Count Discrepancies

Warehouse loaders load the vehicle while the driver checks tyre pressure. If 50 cartons are loaded instead of 52, the shortfall is only discovered 12 hours later during evening settlement when it is impossible to verify.

2. Complete Route Blind Spots

Managers cannot tell whether an outlet was skipped because the store was closed, because the driver ran out of stock, or because the driver decided to cut the route short due to traffic.

3. Arbitrary Pricing & Scheme Errors

Trade schemes ("Buy 10 boxes, get 1 free" or "₹15 cashback per carton") are applied inconsistently from driver memory, leading to customer disputes and margin dilution.

4. Floating Cash in Driver Pockets

Physical cash remains uncounted in plastic pouches or vehicle glove boxes for 10 to 14 hours. Route collections are co-mingled with personal toll money and diesel cash.

5. Blind Extension of Store Credit

Retailers with overdue bills exceeding 45 days still receive fresh deliveries because the driver has no visibility into the customer's real-time credit ledger in Odoo.

6. Unrecorded Damage & Transit Breakage

Goods damaged in transit (broken seals, crushed cartons, melted confectionery) are either absorbed as driver deductions or written off as generic warehouse leakage without root-cause accountability.

7. Missing or Smudged Delivery Proof

When a retailer claims they only received 10 cases instead of 12, the distributor has no digital signature, no timestamped GPS audit log, and no printed thermal receipt duplicate to substantiate the delivery.

8. Multi-Day Accounting Bottlenecks

Invoices are created in the accounting system 3 to 5 days after physical delivery. Bank statements cannot be matched to specific sales, turning month-end reconciliation into an exhausting forensic audit.

Operational Sequence

Follow One Van From 5:00 AM Loading to End-of-Day Settlement

Here is how a delivery route actually runs when the driver’s mobile app, the physical van inventory, and the central Odoo ERP ledger are synchronized at every touchpoint:

1
05:00 AM Odoo Internal Transfer

Depot Loading & Digital Gate Check

The driver and warehouse dispatch supervisor inspect the van cargo. Stock is scanned via barcode into the driver's phone. An internal stock transfer moves 450 cases from WH/Stock to WH/VAN-04. Both sign off digitally on the loading manifest.

Odoo ERP Event: stock.picking confirmed; inventory ledger moves ownership to Van 04 location.
2
06:30 AM Offline SQLite Database

Route Dispatch & Offline Manifest Activation

The mobile app downloads the sequence of 42 retail outlets, customer GSTINs, active price lists, and store credit balances into local SQLite storage. Even if cellular connectivity fails along highway stretches, route sales proceed without interruption.

Device State: SQLite cache populated with 42 outlet profiles, 120 SKUs, and encrypted customer ledgers.
3
07:15 AM GPS Geofence Match

Outlet Arrival & Customer Verification

Van arrives at Stop #01 (Shree General Store). The app automatically confirms arrival via device GPS (within 50 meters of registered shop coordinates). Outstanding overdue balances and current credit limits are displayed immediately on the driver's screen.

Audit Log: Timestamped GPS entry recorded; retailer credit status verified as Active (₹12,400 outstanding of ₹25,000 limit).
4
07:30 AM Real-Time Van Stock

On-Spot Order Entry & Scheme Application

The driver enters order quantities directly in the app: Butter, Biscuits, and Soft Drinks. The app enforces approved trade schemes automatically (no manual rate tinkering) and validates that the requested quantity exists in Van 04's real-time inventory.

Validation Rule: System blocks order if requested quantity exceeds physical van stock. Zero overselling.
5
07:45 AM Dynamic UPI & Cash

Payment Collection: Dynamic Bharat UPI QR or Cash

The app generates a dynamic UPI QR code on the driver's phone with the exact invoice amount (₹18,450) and invoice reference embedded. The retailer scans with Google Pay, PhonePe, or Paytm. For cash payments, the driver enters currency denominations into the vault ledger.

NPCI Intent: upi://pay?pa=arihant.dist@icici&am=18450.00&tn=INV-2026-09-418
6
07:50 AM Bluetooth Thermal ESC/POS

Instant Physical GST Receipt Printing

Via Bluetooth 5.0, the mobile app sends raw ESC/POS byte commands to the driver's belt-clipped thermal printer. Within 3 seconds, a crisp 2-inch or 3-inch GST tax invoice is printed with tax breakups, HSN codes, and digital transaction verification hash.

Hardware Execution: Thermal print completed; retailer signs delivery copy; physical handover done in under 4 minutes.
7
07:55 AM Van Inventory Ledger

Immediate Van Stock Decrement

The moment the receipt prints, WH/VAN-04 inventory is decremented locally and staged in the sync queue. The driver’s screen updates instantly: butter stock drops from 60 to 36; biscuit cartons drop from 30 to 18.

Inventory State: Van 04 balance updated; next outlet cannot be sold goods that have already been handed over.
8
05:45 PM Depot Return

Depot Return & Physical Stock Count

After completing all 42 stops, the vehicle returns to the central warehouse. The warehouse supervisor performs a physical barcode count of unsold cases and inspects damaged returns. The app logs unsold units directly back to WH/Stock.

Physical Verification: 62 unsold cases counted; 6 damaged cases logged to WH/Scrap with supervisor confirmation.
9
06:30 PM Automated Shift Clearance

Automated Cash Reconciliation & Odoo Settlement

The cashier counts the driver's cash pouch (₹36,200). The app checks digital UPI payments (₹48,300). Total collections equal exactly ₹84,500.00 billed. Variance is ₹0.00. The driver clicks "Close Shift", and Odoo automatically generates the day's payment journal entries.

Shift Status: Shift Cleared • ₹0 Variance • All Invoices Reconciled • Odoo Batch Posted
Architectural Foundation

Your Delivery Van Becomes an Odoo Warehouse Location

Most accounting mistakes happen because companies treat a delivery van as an expense center rather than an inventory location. In the Arihant AI architecture, every vehicle is configured as a native Odoo internal location:

MAIN GODOWN
WH/Stock
Central Warehouse Inventory
INTERNAL TRANSFER
WH/VAN-04
Mobile Van Inventory
CUSTOMER SALE
Customer / Retailer
Invoiced & Delivered
RETURN / SCRAP
WH/Scrap or Stock
Damaged / Unsold Units

Why This Model Eliminates Inventory Shrinkage:

  • No Imaginary Stock: When goods leave the warehouse, they don't vanish into a "Goods in Transit" black hole; they sit in WH/VAN-04.
  • Real-Time Stock Depletion: Every time the driver bills a carton, Odoo registers a stock move from WH/VAN-04 to Customer Location.
  • Zero Multi-Driver Borrowing: If Van 02 runs out of milk cartons and borrows 10 crates from Van 04 on the highway, a 2-second driver-to-driver mobile transfer preserves exact balance integrity.

Direct Accounting & Valuation Benefits:

  • Accurate Daily Valuation: The CFO can run an Odoo stock valuation report at 2:00 PM and see the exact rupee value of inventory currently rolling on Gujarat roads.
  • Definitive Audit Trail: Every damaged pouch returned by a storekeeper has an unbroken chain of custody from manufacturer batch to scrap ledger.
  • Automated Reorder Alerts: When van stock drops below safety thresholds, central dispatch receives automated replenishment suggestions.
Field Ergonomics

Inside the Route Sales App: 5 Purpose-Built Screens

Designed for speed, glare visibility on bright sunny afternoons, and one-thumb operation. Drivers never navigate deep ERP menus; every action is complete in 3 taps.

Screen 01 Sequence Engine

Today's Route & Store Manifest

ROUTE: SG HIGHWAY • 42 STOPS
#12. Mahadev Dairy (₹14,200)
#13. Krishna Provision (₹8,950)
#14. Shree General Store [CURRENT]
#15. Balaji Supermart (Pending)
#16. Jay Ambe Kirana (Pending)

Outlets are ordered by road proximity. GPS confirms shop arrival. Skipped outlets require a mandatory reason code (Shop Closed, Owner Unavailable, Stock Full).

Screen 02 Credit Guard

Retailer Profile & Credit Ledger

Shree General Store GST Active
CREDIT LIMIT
₹25,000
OUTSTANDING
₹12,400
Available Credit: ₹12,600.00
Last: ₹10,000 via UPI (14-Sep)

Eliminates blind credit sales. The app warns the driver if an order exceeds the authorized credit limit or if overdue bills exist beyond 30 days.

Screen 03 Cart & Scheme

One-Thumb Order Billing

Amul Butter 500g ₹275/pc
Van Stock: 36 Scheme: 10+1 Free
Order Qty: 24 (+2 Free)
Item Total: ₹6,600.00

Large touch targets for greasy or gloved hands. Scheme calculations are automatic. Drivers cannot edit base rates or apply unauthorized discounts.

Screen 04 Instant Digital Settlement

Dynamic Bharat UPI QR Code

EXACT AMOUNT: ₹18,450.00
Merchant: Arihant Dist. ICICI
INV-2026-09-418
Auto-verifies SMS / Webhook

The retailer scans the driver's phone with any UPI app. The amount is locked to prevent underpayment. Zero transaction typing errors.

Screen 05 Physical Compliance

Bluetooth ESC/POS Receipt Trigger

[BT PAIRED] PRINTER: RONGTA-RPP02 (MAC: 64:69:4E:22:A1:08)
STATUS: Battery 88% • 58mm Paper Roll Ready
DATA: 842 Bytes Encoded ESC/POS Payload • GST Format 2A

Prints in 3 seconds. The physical slip carries legal GST tax breakdowns, store GSTIN, driver code, and unique cryptographic transaction hash.

Hardware Integration

Why the Physical Bluetooth Receipt Still Rules Indian Retail

While digital PDFs are great for office procurement, Indian kirana storekeepers refuse to pay cash without a physical, printed paper bill in their hands. A paper slip on the counter means immediate verification, immediate payment, and zero post-delivery disputes.

Direct Raw ESC/POS Byte Streaming

The mobile app doesn't render bloated PDF print spoolers. It compiles lightweight ESC/POS bytecode natively and transmits via Bluetooth 5.0 in milliseconds. Prints reliably even on low-cost ₹4,000 thermal printers.

All-Day Vehicle Battery Endurance

Paired thermal printers operate on rechargeable 2000mAh lithium batteries, delivering 300+ printed bills on a single morning charge. In-van 12V DC charging ensures zero battery downtime.

Cryptographic Audit Hash on Paper

Every printed thermal slip features an 8-character verification hash generated from the invoice timestamp, driver ID, and total value. Disputed slips can be matched immediately against the Odoo database.

ARIHANT DISTRIBUTION LLP
Plot 42, Sanand Industrial Area, Ahmedabad
GSTIN: 24AAACS9821F1ZV • Phone: 079-2991-4400
TAX INVOICE / CASH MEMO
INV NO: INV/2026/09/0418 DATE: 18-SEP-26
VAN: WH/VAN-04 (GJ-01-ET-8921) TIME: 07:50 AM
DRIVER: Rajesh Parmar STOP: #14 of 42
CUSTOMER: SHREE GENERAL STORE
Sanand Road, Ahmedabad • GSTIN: 24AAACS1421D1ZM
ITEM / HSN QTY RATE AMT
AMUL BUTTER 500G
(HSN: 0402)
24 275.00 6,600.00
PARLE-G GOLD 1KG
(HSN: 1905)
12 580.00 6,960.00
COCA-COLA 750ML
(HSN: 2202 - Case 24)
4 840.00 3,360.00
TAXABLE VALUE: 16,920.00
CGST @ 9%: 765.00
SGST @ 9%: 765.00
NET TOTAL: INR 18,450.00
PAYMENT MODE: BHARAT UPI (CONFIRMED)
UPI TXN ID: UPI/626290142981
AUDIT HASH: #A9F2-418C
Goods once sold will not be exchanged.
Generated via Arihant Van Distribution System.
Treasury & Reconciliation

Every Rupee Accounted For: Cash, UPI, and Controlled Credit

Route sales fail when drivers become informal bankers. The Arihant AI system segregates collections into three tamper-proof financial streams:

Denomination Count

1. On-Spot Cash Handling

For cash transactions, the driver logs physical notes into the app (e.g., 20x ₹500, 30x ₹200, 40x ₹100). The app generates a cash receipt and updates the van's rolling cash float.

Vault Rule: Cash amounts above ₹20,000 trigger an in-app prompt to deposit funds into partner bank drop boxes or company cash lockers.
Direct Bank Credit

2. Dynamic Bharat UPI

The driver displays a QR code with the exact bill amount. Funds credit directly into the distributor’s current account (ICICI, HDFC, SBI). The app captures the NPCI reference automatically.

Auto-Match: Odoo matches the UPI transaction reference against the bank statement line automatically. Zero cashier typing.
ERP Credit Guard

3. Controlled Store Credit

Credit is only allowed if the retailer has an active credit tier in Odoo. If outstanding dues exceed limits, the sale is hard-blocked until the owner or sales manager approves an override via OTP.

Risk Control: Eliminates unauthorized field credit extensions that inflate distributor DSO (Days Sales Outstanding).
Financial Transparency

"Where Did the Money Go?" The Evening Cash Balancing Sheet

At 6:30 PM, the driver stands before the cashier. There is no guessing, no disputed chits, and no missing change. The system balances every paisa:

VAN 04 RECONCILIATION SUMMARY 18-SEP-2026
Billed Route Invoices (42 Stops): ₹84,500.00
Less: Authorized Store Credit: (-) ₹0.00
Total Collections Expected: ₹84,500.00
1. Direct UPI Bank Collections: ₹48,300.00
2. Physical Cash Deposited: ₹36,200.00
NET RECONCILIATION VARIANCE: ₹0.00 (EXACT)

Shift Approved & Locked

Odoo automatically creates the account.payment entries and posts them against the respective customer invoices.

Cash Entry:
CSH1/2026/09/0092
UPI Bank Entry:
BNK1/2026/09/0142
Cashier Sign-off:
Mahesh S. (18:32 PM)
Inventory Integrity

"Where Did the Stock Go?" The Physical Inventory Equation

A route is never reconciled until the physical units match the financial records. The Arihant AI system balances physical carton counts against the opening gate load:

Product / SKU Morning Load Delivered / Billed Damaged Returns Unsold Physical Variance Status
Amul Cow Butter 500g 60 units 48 units 0 units 12 units 0 Balanced
Parle-G Gold 1kg Carton 30 ctns 22 ctns 1 ctn (Crushed) 7 ctns 0 Balanced
Coca-Cola 750ml (Case 24) 20 cases 16 cases 0 cases 4 cases 0 Balanced
Britannia Good Day 120g 40 ctns 34 ctns 0 ctns 6 ctns 0 Balanced
TOTAL OPENING VALUE
₹4,12,000.00
TOTAL GOODS DELIVERED
₹3,54,400.00
PHYSICAL RETURNED TO DEPOT
₹57,600.00
Zero Connectivity Dependency

Works in Highway Dead Zones and Basement Kiranas

Cellular networks in India are unpredictable. Delivery vans operate in basement supermarket docks, remote rural mandi areas, and highway corridors where 4G signals disappear completely.

Our Flutter mobile client uses a local-first architecture powered by SQLite. The driver never waits for a network spinner to complete a sale:

  • Full Offline Invoicing: Calculate taxes, apply discounts, generate bills, and print thermal slips with zero internet access.
  • Deterministic UUID Invoices: Every invoice is generated with an immutable client UUID, guaranteeing zero duplicate entries when data synchronizes.
  • Auto-Sync Queue: When 4G or Wi-Fi reconnects, transactions sync to Odoo in the background without freezing the driver's interface.
SQLite Offline Sync Pipeline Queue: Active
// Step 1: Device captures transaction offline
LOCAL_INSERT("van_invoices", payload={
uuid: "8f2a1b90-4e12-4a7b-b38d-0a8114f29104",
outlet: "Shree General Store",
amount: 18450.00,
sync_status: "PENDING"
});
// Step 2: Signal restored on highway
SYNC_TRIGGER: Network ping OK (LTE 4G)
POST /api/v2/vansales/sync-batch [HTTP 200]
UPDATE "van_invoices" SET sync_status="CONFIRMED";
Conflict Resolution: Idempotent Event Sourcing
Fleet Command Center

While Your Drivers Sell, Management Sees the Whole Route

Owners and route distribution managers no longer wait for evening phone calls. The live Odoo management board monitors every vehicle across Gujarat in real time:

ACTIVE VANS
32
100% Deployed
BILLED TODAY
₹8.42 L
Target: ₹9.00 L (93.5%)
OUTLETS VISITED
428
Of 480 planned
CASH COLLECTED
₹3.14 L
In Van Safes
UPI / DIGITAL SETTLED
₹5.28 L
Credited to Bank
Live Vehicle Route Status
VAN-04 Driver: Rajesh Parmar • Route: Sanand Highway
Sales: ₹84,500 Stops: 42/42 Completed Balanced (₹0 Variance)
VAN-12 Driver: Vikram Solanki • Route: Naroda GIDC
Sales: ₹68,200 Stops: 38/38 Completed Balanced (₹0 Variance)
VAN-07 Driver: Sanjay Prajapati • Route: Gandhinagar Sector 21
Sales: ₹52,100 Stops: 34/36 (2 Skipped) Cash Short: ₹450 (Under Review)
Managerial Efficiency

The Exception-First Management Model: Inspect 2 Vans, Not 32

A business owner or distribution head with 30+ vans cannot inspect 30 settlement sheets every night. The Arihant AI system auto-clears balanced vans and flags only true operational exceptions:

Status: Auto-Cleared 29 Vans

Zero-Variance Routes

Stock returns match perfectly. Cash and UPI payments equal exact invoice totals. Odoo clears these routes automatically without requiring manager intervention.

Status: In Progress 2 Vans

Late Routes in Transit

Vans delayed by traffic or servicing remote retail outlets. The system monitors live battery and GPS pings; warehouse intake teams prepare for arrival.

Status: Audit Flagged 1 Van

Actionable Exception

VAN 07 has a cash discrepancy of ₹450 and 2 skipped stops. The manager investigates only this one vehicle, resolving the issue in 5 minutes instead of 2 hours.

Transformation Matrix

Traditional Van Sales vs. Arihant AI Connected System

See the operational differences between manual paper route distribution and an integrated mobile ERP workflow:

Operational Aspect Traditional Paper Route Arihant AI Connected Architecture
Morning Loading Paper gate passes; stock discrepancies detected hours later during evening return. Digital barcode sign-off; instant transfer from WH/Stock to WH/VAN.
Invoicing Speed Handwritten carbon copy books taking 8 to 12 minutes per store stop. One-thumb app billing; Bluetooth thermal GST printout in under 60 seconds.
Payment Collection Loose cash co-mingled in glove box; vague phone UPI transactions without invoice link. Dynamic Bharat UPI QR code + cash denomination counter matching exact bill value.
Customer Credit Driver memory and guesswork; overdue customers continue receiving fresh stock. Real-time ERP credit check; automated blocking when credit limit or aging threshold exceeded.
Damaged Returns Handwritten notes on torn paper; damaged goods disputed between driver and warehouse. Mobile photographic audit; automated credit note and scrap ledger transfer.
Route Settlement 2 to 3 hours of exhausting evening paperwork per vehicle; permanent loose cash leaks. 8-minute automated settlement; zero-variance check clears shift directly to Odoo journals.
ERP Integration 3 to 5-day lag while clerks re-type carbon slips into desktop accounting software. Instant background synchronization; live stock depletion and bank reconciliation.
Network Reliability Cloud-only apps crash in basement stores and rural dead zones. 100% offline-durable local SQLite database; seamless idempotent background queue.
Business Outcomes

What the Business Can Measure: Tangible Operational ROI

We do not promise vague buzzwords. We build systems to deliver specific, measurable improvements to distribution cash flow and labor productivity:

8 Mins
Settlement Time per Van

Reduced from 90–120 minutes of manual slip matching down to under 8 minutes per vehicle.

< 0.05%
Route Cash Discrepancy

Elimination of untracked loose currency and disputed payment claims across the entire fleet.

+4 to 6
Extra Stops per Day

Fast 60-second billing frees up 40 to 60 minutes per shift, allowing drivers to service additional retail counters.

-9 Days
DSO Reduction

Enforced credit checks and automated UPI receipts accelerate receivable cycles by over a week.

Self-Assessment

Does Your Distribution Operation Look Like This?

This architecture is engineered specifically for companies with direct-to-retail distribution fleets. If you recognize these patterns, this system fits your operation:

Active Fleet of 5 to 100+ Vehicles: You operate delivery vans, mini-trucks, or three-wheelers serving retail counters on designated routes.
High-Frequency FMCG, Dairy or Beverages: Fast-moving goods (milk, bread, biscuits, snacks, bottled drinks, lubricants) with daily or weekly route cycles.
Mixed Payment Realities: Customers pay through a combination of Cash on Delivery, Bharat UPI QR codes, and 7-to-30 day trade credit.
Damaged Goods & Expiry Returns: Your drivers regularly collect expired or transit-damaged items that must be credited and scrapped.
Evening Settlement Bottlenecks: Your cashiers and accountants spend 2+ hours every evening reconciling paper books and cash bags.
Evaluating or Running Odoo ERP: You want field sales to connect directly with Odoo Community or Enterprise without third-party middleware silos.
Stakeholder Value

Built for the Entire Distribution Team

Every role in your distribution business gets clarity, speed, and protection from human error:

Business Owner / MD

"I finally know exactly how much cash and stock is on the road right now. Night settlement finishes by 7:00 PM, and margin leakage has dropped to virtually zero."

Key Value: Zero cash leaks & real-time capital visibility.

Route Sales Manager

"I don't call drivers all day asking where they are. The live dashboard shows skipped stores and delayed routes so I can support the team before the day is lost."

Key Value: Route completion tracking & exception alerts.

Head of Accounts

"No more deciphering wet, smudged carbon copies. Bank UPI receipts match automatically, cash bags match denomination slips, and journal entries post in one click."

Key Value: Automated journal posting & clean GST audits.

Warehouse Manager

"Every van is treated as its own stock location. When a van loads or unloads, barcode scans verify counts immediately. We don't argue about missing cartons."

Key Value: Discrepancy-free gate checks & scrap accountability.
Engineering Blueprint

The 5-Tier Mobile Distribution Architecture

Built on battle-tested enterprise components designed for high transaction volume, zero network dependency, and native Odoo integration:

TIER 01: HARDWARE
Peripherals
  • Android Smartphones / Rugged Handhelds
  • Bluetooth 5.0 Thermal Printers (58mm / 80mm)
  • 1D/2D Hardware Barcode Scanners
  • In-Vehicle 12V High-Amperage Fast Chargers
TIER 02: CLIENT
Mobile App
  • Flutter Cross-Platform Engine
  • Encrypted SQLite Local Database
  • Raw ESC/POS Bytecode Generator
  • Reactive In-Memory State Manager
TIER 03: SYNC
Sync Engine
  • Idempotent UUID Queue
  • Background Cellular Auto-Sync
  • AES-256 Payload Encryption
  • Network Disconnect Fault-Tolerance
TIER 04: CORE
Odoo 18 Core
  • Van Warehouse Locations (WH/VAN)
  • Point of Sale & Sales Invoicing
  • Trade Scheme & Pricing Engine
  • Automated Payment Reconciliation
TIER 05: LEDGER
General Ledger
  • Automated Payment Journal Entries
  • Bank Statement Auto-Matching
  • GST E-Way & E-Invoice Filing
  • Real-Time CFO Cash Telemetry
Technical Implementation

Under the Hood: Odoo Van Settlement Architecture

For IT directors, solutions architects, and ERP developers: inspect the production-grade Odoo Python ORM extension powering vehicle shift settlement and automated inventory reconciliation:

View Production Odoo ORM Extension: van.sales.shift.settlement (Click to Expand)
# -*- coding: utf-8 -*-
# Arihant AI - Mobile Van Sales & Route Distribution Settlement Module
# Models the van as an active stock location with automated reconciliation.

from odoo import models, fields, api, _
from odoo.exceptions import ValidationError

class VanSalesShiftSettlement(models.Model):
    _name = 'van.sales.shift.settlement'
    _description = 'Van Sales Shift Settlement & Financial Reconciliation'
    _inherit = ['mail.thread', 'mail.activity.mixin']
    _order = 'date_settlement desc, id desc'

    name = fields.Char(
        string='Settlement Ref', 
        required=True, 
        copy=False, 
        readonly=True, 
        default=lambda self: _('New')
    )
    vehicle_id = fields.Many2one('fleet.vehicle', string='Delivery Vehicle', required=True, tracking=True)
    driver_id = fields.Many2one('res.partner', string='Route Driver', required=True, tracking=True)
    van_location_id = fields.Many2one(
        'stock.location', 
        string='Van Stock Location', 
        required=True,
        domain=[('usage', '=', 'internal')]
    )
    depot_location_id = fields.Many2one(
        'stock.location', 
        string='Central Depot Location', 
        required=True,
        default=lambda self: self.env.ref('stock.stock_location_stock', raise_if_not_found=False)
    )
    scrap_location_id = fields.Many2one(
        'stock.location', 
        string='Scrap/Damaged Location', 
        required=True,
        default=lambda self: self.env.ref('stock.stock_location_scrapped', raise_if_not_found=False)
    )
    date_settlement = fields.Date(string='Settlement Date', default=fields.Date.context_today, required=True)
    
    # Financial Ledgers
    total_billed_amount = fields.Monetary(string='Total Route Sales', compute='_compute_totals', store=True)
    total_cash_expected = fields.Monetary(string='Cash Expected', compute='_compute_totals', store=True)
    total_cash_deposited = fields.Monetary(string='Cash Deposited (Vault)', required=True, tracking=True)
    total_upi_settled = fields.Monetary(string='UPI Bank Verified', compute='_compute_totals', store=True)
    cash_variance = fields.Monetary(string='Cash Discrepancy', compute='_compute_variance', store=True)
    
    state = fields.Selection([
        ('draft', 'In Transit'),
        ('verify', 'Under Verification'),
        ('reconciled', 'Balanced & Reconciled'),
        ('discrepancy', 'Discrepancy Audit')
    ], string='Status', default='draft', tracking=True)

    invoice_ids = fields.One2many('account.move', 'van_settlement_id', string='Route Invoices')
    currency_id = fields.Many2one('res.currency', default=lambda self: self.env.company.currency_id)

    @api.depends('invoice_ids.amount_total', 'invoice_ids.payment_state')
    def _compute_totals(self):
        for record in self:
            billed = sum(record.invoice_ids.mapped('amount_total'))
            record.total_billed_amount = billed
            # Compute based on captured payment method tags
            cash_inv = record.invoice_ids.filtered(lambda i: i.payment_method_code == 'cash')
            upi_inv = record.invoice_ids.filtered(lambda i: i.payment_method_code == 'upi')
            record.total_cash_expected = sum(cash_inv.mapped('amount_total'))
            record.total_upi_settled = sum(upi_inv.mapped('amount_total'))

    @api.depends('total_cash_expected', 'total_cash_deposited')
    def _compute_variance(self):
        for record in self:
            record.cash_variance = record.total_cash_deposited - record.total_cash_expected

    def action_reconcile_shift(self):
        """Validates zero cash variance and closes warehouse location stock moves."""
        self.ensure_one()
        if abs(self.cash_variance) > 50.0:  # Enforce threshold limit
            self.state = 'discrepancy'
            raise ValidationError(_(
                "Cash variance exceeds allowable limit: ₹%s. Shift marked for audit." % self.cash_variance
            ))
        
        # Post Odoo payment entries and close van shift
        self.state = 'reconciled'
        self.message_post(body=_("Van shift reconciled successfully. Variance: ₹0.00. Payment journals created."))
Architectural Note: The model handles bi-directional Odoo stock.picking generation, validates NPCI UPI transaction references against bank statement lines, and locks van shifts to prevent post-settlement modification.
Frequently Asked Questions

Enterprise Field Operations & Accounting FAQ

Direct answers to the most common questions raised by business owners, distribution heads, and IT directors:

The mobile app functions 100% offline. All retailer profiles, price lists, trade schemes, and active van inventory are stored in an encrypted local SQLite database. The driver can create invoices, collect cash or display UPI QRs, and print Bluetooth receipts without any cellular signal. When the vehicle regains network connectivity on the highway, all transactions synchronize automatically using idempotent UUID queues.

The app pairs with standard 2-inch (58mm) or 3-inch (80mm) ESC/POS Bluetooth printers (e.g., Rongta, TVS, Epson, Rugged Handhelds). These printers feature 2000mAh lithium-ion batteries that deliver 300+ full-length customer receipts on a single charge. Drivers can also recharge the printer directly from the vehicle’s 12V cigarette lighter charger or USB port.

The billing screen supports multi-tender split payments natively. For example, on an ₹18,450 bill, the retailer can pay ₹8,450 via Cash and ₹10,000 via dynamic Bharat UPI. The thermal receipt itemizes both payment methods separately, and Odoo generates distinct journal entries for the Cash Vault and Bank Ledger upon shift settlement.

No. Base rates, slab discounts, and active trade schemes (e.g., "Buy 10, Get 1 Free") are controlled strictly by Odoo ERP price lists. The driver cannot edit unit prices unless granted specific managerial override permissions. Any ad-hoc discount requires a real-time OTP confirmation from the sales manager.

The driver opens a "Product Return / Damage" entry in the app, scans the product barcode, enters the batch number, and takes a photo of the damaged package. An instant credit voucher is printed for the storekeeper. Upon evening depot arrival, the warehouse supervisor confirms the count, and Odoo transfers the units from WH/VAN-04 to WH/Scrap or the vendor return quarantine location.

All local data in the SQLite database is encrypted with AES-256 and tied to the driver's biometric PIN. If a phone is lost or damaged, the dispatcher can remotely revoke access from Odoo. The driver can log into any backup Android device; the app downloads the latest synchronized route state from Odoo, allowing deliveries to resume immediately.

Yes. If Van 02 runs out of butter cartons while Van 04 has surplus stock, Driver 02 can initiate a "Van-to-Van Inter-Transfer" by scanning Driver 04's mobile screen. An Odoo internal transfer from WH/VAN-04 to WH/VAN-02 is registered immediately, preserving exact inventory balancing for both vehicles at evening settlement.

Yes. A single order can contain 0% GST items (fresh milk, unprocessed staples), 5% GST items, 12% GST items, and 18% or 28% items (confectionery, soft drinks). The tax engine calculates CGST, SGST, and compensation cess per line item, printing legally compliant GST tax breakups on both thermal slips and electronic invoices.

The system supports Odoo 16, Odoo 17, and Odoo 18 across both Community and Enterprise editions. It connects via standard JSON-RPC and RESTful endpoints, requiring zero proprietary or closed third-party middleware.

Most drivers learn the complete workflow in less than 30 minutes. The user interface is designed with large high-contrast buttons, regional language support (Hindi, Gujarati, Marathi), and visual status badges. No computer literacy or ERP knowledge is required.

Yes. The app can enforce geofencing rules ensuring an order cannot be punched unless the vehicle is physically within 50 to 100 meters of the registered retail outlet. Skipped outlets require driver photographic proof (e.g., photo of a closed shop shutter).

A typical rollout takes 2 to 4 weeks. We configure your Odoo warehouse locations, import customer routes and price lists, test Bluetooth printer pairings, and conduct hands-on driver training at your central depot. We offer on-site operational reviews across Ahmedabad, Sanand, Changodar, Naroda, Halol, Vadodara, Surat, Pune, and Mumbai.
Distribution Consultation

Map Your Van Sales Workflow With Arihant AI

Tell us about your distribution fleet. Our ERP systems architects will prepare a tailored workflow diagram showing how your vehicles, warehouse locations, and driver settlements will map directly into Odoo:

Regional Deployment Coverage

On-site route observation, hardware testing, and warehouse integration available across Western India:

  • Ahmedabad & Gandhinagar (Sanand, Changodar, Naroda)
  • Kheda, Anand & Nadiad (Dairy Corridors)
  • Vadodara, Halol & Bharuch
  • Surat & South Gujarat Industrial Belts
  • Mumbai MMR & Pune Industrial Hubs
Typical implementation timeline: 2 to 4 weeks from pilot van to full fleet rollout.
The Complete Operational Loop

From Morning Dispatch to General Ledger in One Unbroken Chain

WH/Stock WH/VAN-04 Offline Mobile App Retailer Delivery Thermal ESC/POS Bill Cash / UPI Van Return ₹0 Variance Settlement Odoo General Ledger
H
Harsh — Solutions & ERP Lead
Specializing in Field Operations, Mobile Warehousing, and Odoo Enterprise Integrations at Arihant AI.
Turn Every Field Visit Into a Completed, Signed & Billable Work Order.
Give field technicians a mobile workflow that works online or offline — capture service notes by voice, scan consumed spares, collect customer signatures and sync completed work directly into Odoo.
H

Harsh

ERP & Solutions Lead

Helps businesses migrate to cloud ERP, streamline factory operations, and cut manual data entry.

Direct Advice & Support · Ahmedabad Team

Planning to Upgrade Your Factory, Warehouse, or Accounts to Cloud ERP?

Talk directly with our ERP team in Ahmedabad. We will review how your business works, show you live screens tailored to your work, and give you a clear plan without any sales pressure.

Smooth Tally to Cloud Setup
Chemical, Packaging & Factory Systems
Direct Solutions Architect Response

Talk to Our Ahmedabad Team

Choose how you want to connect:

100% Private & Confidential

Subscribe to Our Daily Digest

Get the latest insights on AI Agents, Odoo 19 implementation, CRM scaling, and workflow automations delivered straight to your inbox daily.