Skip to content

Repository files navigation

Odoo Warehouse Scanner

flutter odoo

An open-source, Android-first warehouse/inventory scanning app for Odoo — a FOSS alternative to Ventor Pro — plus a thin, OCA-candidate REST module that gives it a stable, versioned server contract.

See PLAN.md for the full architecture and roadmap.

Monorepo layout

Path What License
app/ Flutter app (odoo_scanner) — Riverpod, Drift offline mirror + op queue, mobile_scanner, Zebra DataWedge MIT
odoo/addons/stock_barcode_api/ Odoo 18 addon: /scanner/v1/ REST endpoints, Bearer API-key auth, idempotent ops AGPL-3

The two halves are deliberately decoupled: the app speaks raw JSON-RPC out of the box (no server module required), and upgrades to the stock_barcode_api endpoints when they're installed. The addon follows OCA conventions (manifest, readme fragments, oca-ci test workflow) so it can be proposed to OCA — likely stock-logistics-barcode — with a straight copy of the module directory.

App quick start

cd app
flutter pub get
dart run build_runner build   # drift + auto_route codegen
flutter test
flutter run                   # on an Android device/emulator

On first launch, enter your server URL, database, login, and an API key (Odoo → Preferences → Account Security → API Keys). The password never leaves Odoo; the key is stored in the Android keystore.

Scanning inputs (all active at once on the picking screen):

  • Camera (MLKit via mobile_scanner)
  • Zebra DataWedge — configure a DataWedge profile for the app with Intent output, action com.ledoweb.odoo_scanner.SCAN, delivery Broadcast intent
  • Keyboard-wedge scanners — scan into the barcode field

Offline-first: every mutation is appended to a local op queue (Drift) and applied optimistically; the sync engine drains the queue when connectivity returns. Server rejections are surfaced as conflicts for re-scan, never silently overwritten. See app/lib/data/sync/.

Addon quick start

# add odoo/addons to your addons_path, then
odoo -d yourdb -i stock_barcode_api
curl -H "Authorization: Bearer <api key>" https://your-odoo/scanner/v1/ping

Endpoint reference: readme/USAGE.md.

Development

  • Flutter CI (.github/workflows/flutter.yml): format, committed-codegen check, analyze, tests with coverage, release APK artifact.
  • Odoo CI (.github/workflows/odoo.yml): pre-commit (ruff + OCA odoo-module checks), then install + test against Odoo 18 in the official oca-ci container — the same job OCA repos run, so upstream CI holds no surprises.
  • Pre-commit locally: pipx install pre-commit && pre-commit run --all-files.

Status

Alpha — MVP flow is "receive a purchase order": list open receipts, scan product barcodes to count, validate (with backorder). Lots/serials, packages, and other operation types are on the roadmap.

About

FOSS Android warehouse scanner for Odoo (Flutter) + OCA-candidate stock_barcode_api REST addon

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages