Odoo Van Sales & DSD – Offline Flutter Salesman App with Bluetooth Receipt Printing, Routes, Credit Control & Settlement for Odoo 19 Community
Sell from the van with an offline-first Flutter app: geofenced route visits, barcode scanning, cases and units, pricelist tiers, cash, digital and post-dated check collection, returns, credit limits, Bluetooth ESC/POS receipts and end-of-day van settlement. Odoo Community module included.
A complete Van Sales and Direct Store Delivery system: an Odoo module for the depot and the office and an offline-first Flutter app for iPhone and Android, with Bluetooth receipt printing, in one package.
In the street
Route of the day with the customers in order, their balance and a progress bar; a visit starts only inside the geofence
Sell from the van: barcode scan, cases and units, tier prices of the customer's pricelist, taxes and fiscal positions, live van stock on the phone
Collect: cash, digital/QR and post-dated checks with a photo; credit on soft or hard credit limits
Returns: resellable goods back to the van, damaged and expired goods to quarantine, with credit notes
Print on 58 mm and 80 mm ESC/POS Bluetooth printers: header with tax ID, lines, tax, payments, outstanding balance and a verification QR code; Arabic, logo and QR as an image
End of day: stock count, cash handover and signature
Works without a network: outbox, immutable local sequence numbers, idempotent sync
At the depot
Load the van with a wizard that fills the stock levels; the salesman reviews and signs the loading
Supervisor map with vans, today's customers by status and the route of the day
Flagged sales (price mismatch, credit exceeded, outside the radius, negative stock) with to-dos
Settlement approval: stock adjustment, return of unsold goods, cash handover booked with shortages and surpluses
Normal Odoo documents: sale orders, deliveries, invoices, payments, credit notes
Built for trust
Every operation has a unique ID, so a retry never invoices twice. The receipt number comes from an unchangeable local sequence. Receipts carry a QR code that opens a public page proving the invoice is genuine. Tokens are hashed, every payload is validated on the server.
Tested
110+ automated tests of the module (sales, units and taxes, returns, collections, checks, credit, visits, loading, settlement, API, security) and unit tests of the app.
Documented
Illustrated guide in English and Arabic: install, configure by business, load, sell, print, settle, build and publish the app, troubleshoot. API reference for developers.
What's included
taqnix_van_sales.zip: the Odoo 19 module (with Arabic translation)
flutter-app-source.zip: the Flutter source code of the salesman app
Documentation in English and Arabic (HTML and PDF), API reference, licence, changelog
Requirements
Odoo 19.0 with Sales, Inventory and Invoicing and a chart of accounts (Community is enough), Python libraries PyJWT and requests, a public https address, Flutter 3.41 and a Mac to build the iPhone app, and an ESC/POS Bluetooth printer.
What's in the download
The files in the archive you can download after you buy.
Odoo module: vans with stock locations, routes with weekdays and odd/even weeks, geofenced visits, ex-van sales (order, delivery from the van, posted invoice, payments), orders for later, returns to the van or quarantine with credit notes, collections, post-dated checks, soft and hard credit control, van loading with signature, end-of-day settlement, supervisor map, receipt and settlement reports, public verification page
REST API with idempotent sync and immutable local sequence numbers, pricelist tiers, taxes and fiscal positions, push notifications (Firebase)
Flutter salesman app for Android and iOS, offline-first, with barcode scanner, units and cases, credit checks, ESC/POS Bluetooth printing (58 and 80 mm, image and text modes), receipt preview, GPS tracking
English and Arabic app, module and documentation; 110+ automated tests
Frequently asked questions
What do I get?+
The Odoo 19 module (vans, routes, visits with geofence, ex-van sales, returns, collections and post-dated checks, credit control, loading, settlement, supervisor map, the API) and the complete Flutter source code of the offline-first salesman app for Android and iOS with ESC/POS Bluetooth printing, a setup script, documentation in English and Arabic and automated tests.
Does it need Odoo Enterprise?+
No. It works on Odoo 19 Community and uses only Sales, Inventory and Invoicing. The supervisor map uses OpenStreetMap and Leaflet; no Enterprise app is needed.
Which printers work?+
Portable 58 mm (2 inch) and 80 mm (3 inch) ESC/POS thermal printers with Bluetooth. On Android the common Bluetooth Classic models work; on iPhone only printers with Bluetooth Low Energy do (the guide explains it). Receipts print as an image, so Arabic, logos and QR codes work.
Does the app work without internet?+
Yes. Every visit, sale, payment, return and settlement is saved on the phone with an unchangeable sequence number and sent later with safe retries; prices, taxes, customers, the van stock and the route are on the phone.
Can a customer be invoiced twice if the signal drops?+
No. Every operation has a unique ID; Odoo applies each ID once and returns the stored result when it is sent again.
How do prices and cases work?+
Prices come from the customer's Odoo pricelist, with quantity breaks, and are converted per unit of measure; a case barcode adds a case. Percentage taxes and fiscal positions are applied per line and match the invoice.
How is credit controlled?+
Soft or hard limits per customer or for the company, overdue days, and post-dated checks counted as exposure. The phone checks before a credit sale; Odoo flags the exceptions for the credit controller.
Is it available in Arabic?+
Yes. The app, the module and the documentation come in English and Arabic, and the app supports right to left, including Arabic receipts.
More from TAQNIX
App templateNew
Taqnix POS Terminal – Offline-First Point of Sale PWA for Odoo 19: Next.js Source Code with Restaurant Tables, Kitchen Tickets, Loyalty and Arabic
A point of sale for Odoo 19 that runs in the browser as an installable app and keeps selling when the network is gone: every order is saved on the device first and sent to Odoo once, with the same call Odoo's own POS uses. Variants and combos, split payments, receipts with barcode and QR, restaurant tables and kitchen tickets, dashboard, stock lookup, layaway, loyalty, English and Arabic. Full Next.js source code; no Odoo module to install.
UAE E-Invoicing (PINT AE) for Odoo 19 Community – PINT AE XML for Your ASP, Readiness Checks, UBL XSD and Schematron Validation, E-Invoice Outbox
Prepare UAE e-invoices and credit notes in the PINT AE format (Peppol PINT AE Billing 1.0.4, UBL 2.1) for your Accredited Service Provider: TIN, TRN and tax categories, readiness checks per invoice and per batch, validation against the official XSD and Schematron, an outbox with statuses, a log and XML / ZIP export. It does not send anything. Arabic included.
AI Support Reply Drafts for WooCommerce – Order-Aware Customer Reply Drafts with Fact Checks
Draft replies to customer messages on the WooCommerce order screen with your AI model, from the order facts and your own shop texts only. Missing facts become [CHECK] placeholders; nothing is sent without a click and a confirmation.
AI Product Recommender and Bundles for WooCommerce – Related Products, Complete the Look & Add All to Cart
Related products and “complete the look” bundles ranked by AI meaning similarity and what your customers bought together, with Add all to cart, a preview with the reasons, pins and exclusions.
Taqnix POS Terminal – Offline-First Point of Sale PWA for Odoo 19: Next.js Source Code with Restaurant Tables, Kitchen Tickets, Loyalty and Arabic
A point of sale for Odoo 19 that runs in the browser as an installable app and keeps selling when the network is gone: every order is saved on the device first and sent to Odoo once, with the same call Odoo's own POS uses. Variants and combos, split payments, receipts with barcode and QR, restaurant tables and kitchen tickets, dashboard, stock lookup, layaway, loyalty, English and Arabic. Full Next.js source code; no Odoo module to install.
Odoo ePOD & Last-Mile Dispatch – Offline Flutter Driver App with Photo, Signature, OTP & GPS Proof of Delivery, Route Optimizer and COD Settlement for Odoo 19 Community
Plan daily delivery runs, optimize the stop order, and get a complete electronic proof of delivery from an offline-first Flutter driver app: geofenced arrival, GPS and time stamp, watermarked photos, signature, customer one-time code and failure reasons. Deliveries validate automatically with backorders, and cash on delivery is settled and reconciled. Odoo Community module included.
Odoo Mobile WMS & Barcode Scanner (Paperless Warehouse) – GS1 Engine, Wave Picking, Cycle Counts and Rugged-Scanner Flutter App for Zebra, Honeywell and Datalogic on Odoo 19 Community
Replace the Enterprise Barcode app on Odoo Community: a GS1-aware barcode engine, receipts, deliveries and bin-to-bin moves with lots, serials and expiry, wave picking along a snake path with bin check digits, blind cycle counts with manager approval, labels, an audit log, and the Flutter scanner app source for Zebra DataWedge, Honeywell and Datalogic with camera fallback.
Odoo Construction Daily Site Diary & Punch List – Flutter Offline Jobsite App, Subcontractor Manpower, Blueprint Pins, Delivery GRN and Budget vs Actual for Odoo 19 Community
The foreman writes the daily log, drops defect pins on the blueprints and receives deliveries against purchase orders, on a phone, with or without signal. The project office sees labor, equipment and material against the budget the same day. Odoo Community module plus an offline-first Flutter app.