Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX
App templateOdooNew

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.

No reviews yet0 salesby TAQNIXUpdated Oct 29, 2026

Description

A paperless warehouse on Odoo Community.

A complete mobile WMS: an Odoo module with the barcode engine, the operations, the waves and the counts, and the Flutter source of a rugged-scanner app for Zebra, Honeywell and Datalogic devices, with the phone camera as a fallback. It replaces the Enterprise Barcode app.

Wave pick path through the warehouse aisles in the Odoo back office

On the floor

  • Receipts: scan the staging bin, scan the products (a case barcode adds the whole case); lots, serials and expiry dates are asked only when needed
  • Deliveries and picking: lines sorted along the pick path, wrong product, expired lot or too much refused with a buzzer, bin check digits to prove you are at the right bin
  • Bin to bin and pallets: scan a pallet and its whole content moves in one scan
  • Wave picking: one picker serves many orders; a scan goes to the most urgent order first
  • Blind cycle counts: scan the shelf, scan the items; the expected quantity is never shown
  • Sound and vibration: high chime and short pulse for a good scan, deep buzzer and two long pulses for an error, an ascending double tone when the work is complete
  • Works offline with an outbox and idempotent operations
Blind cycle count with discrepancy review

In the office

  • GS1 and barcode engine: EAN-13, EAN-8, UPC-A, UPC-E, GTIN-14 cases, packaging, GS1-128 (lot, serial, expiry, count, weight, SSCC), weight and price barcodes; the server answers in a few milliseconds
  • Bins and addresses: aisle, bay, level, zone, check digits and a snake pick sequence generated for you; print bin and package labels with Code 128
  • Waves: create from a selection, follow the path, validate all or nothing
  • Cycle counts: blind or guided, by bin, aisle or zone, drift detection for moves made during the count, approval by a manager who is not the counter, booked once
  • Backorders and tolerance: create, none or ask; an excess within your tolerance is accepted and flagged
  • Audit: every scan in a log with the operator, the device and the answer time, analysis by hour and error rate
  • Normal Odoo documents: receipts, deliveries, internal transfers, backorders, lots, inventory adjustments
Scan, validate and backorder steps of a warehouse operation

Built for the real warehouse

The warehouse wins: a movement that already happened (another bin, a late sync, a small excess within tolerance) is accepted and flagged for the manager, never lost. Hard errors are refused with a clear code. Every operation has a unique ID, so a retry never counts twice, and validation is atomic.

Phone scan terminal with the bin target and picked versus target counter

Tested

241 automated tests of the module (barcode parsing, scans for every operation, backorders and reservations, waves and path order, counts and approval, API, security, labels) on a fresh database, and 346 Dart tests and 53 Kotlin tests of the app, which was also run end to end on the iOS simulator against the real module (receipts, deliveries with a backorder, moves, a wave, a blind count approved by a manager, an offline run).

Phone wave pick showing the next stop on the path

Documented

Illustrated guide in English and Arabic: install, set up Zebra DataWedge, Honeywell and Datalogic, bins and check digits, every operation, counts, labels, reports, API, security and an honest chapter on the limits.

Phone inventory count screen

What's included

  • taqnix_wms_barcode.zip: the Odoo 19 module (with Arabic translation)
  • flutter-app-source.zip: the Flutter source code of the scanner app
  • Documentation in English and Arabic (HTML and PDF), API reference, licence, changelog
Location and package labels with check digits

Requirements

Odoo 19.0 with Inventory (Community is enough), a public https address, Flutter 3.41 to build the app, and a Zebra, Honeywell or Datalogic scanner or an Android phone or iPhone.

Feature overview of the Mobile WMS bundle

Not verified

No real Zebra, Honeywell or Datalogic device was available: the DataWedge profile, the intents and the trigger key codes follow the vendor documentation and are unit tested on the parsing side only. The camera, the sounds, the vibration and the battery were not tried on a device, the app was not run on an Android emulator (the debug APK builds; it was run on the iOS simulator), the Honeywell code ids are mapped only for a few symbologies, and a weight barcode resolves offline only when the product has its code. Scanning a pack barcode during a count creates a separate line. There is no manufacturing-order picking and no automatic wave planning. The guide lists every limit.

What's in the download

The files in the archive you can download after you buy.

  • Full source code
  • Documentation
  • Installation guide
  • Automated tests
  • Licence file
  • Changelog

Customer reviews

Write a review

No reviews yet. Bought this item? Be the first to review it.

Usage

Install and use it in a few lines.

# is the server reachable? (no sign-in)
curl https://odoo.example.com/api/wms/v1/ping
# {"ok": true, "api_version": 1, "server_time": "2026-10-28T08:00:00Z"}

# sign in as a warehouse operator (returns a token, the configuration and the GS1 rules)
curl -X POST https://odoo.example.com/api/wms/v1/auth/login -H 'Content-Type: application/json' \
  -d '{"login": "omar", "password": "...", "device": {"id": "TC52-0147", "name": "TC52 dock 1", "platform": "android", "scanner": "zebra"}}'

# what is this barcode? (GS1-128 with GTIN, lot and expiry; the answer says which product, which lot and which date)
curl -X POST https://odoo.example.com/api/wms/v1/resolve -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"barcode": "010629105000040710L2610A\u001d17261118", "context": {"picking_id": 12}}'

# push the queued operations: every operation has a uuid and a local_seq, a repeat changes nothing
curl -X POST https://odoo.example.com/api/wms/v1/sync -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"device_id": "TC52-0147", "ops": [{"uuid": "9d1c...", "type": "scan", "local_seq": 41, "device_time": "2026-10-28T08:01:00Z",
        "payload": {"picking_id": 12, "barcode": "6291050000407", "qty": 6, "location_id": 31}}]}'

Documentation

Setup, settings and troubleshooting, written by the author.

Open the documentation

Changelog

Every release, newest first.

v1.0.0

1.0.0 – Initial release

  • Odoo module: server barcode resolver (GS1-128, EAN-13, EAN-8, UPC-A, UPC-E, GTIN-14, packaging, weight and price barcodes, SSCC), scan engine for receipts, deliveries and internal moves with lots, serials, expiry, packages and tolerance, atomic validation with backorder create, none or ask, claim of transfers, waves with a snake pick path and all-or-nothing validation, blind and guided cycle counts with drift, missing items and manager approval, bin check digits, aisle, bay, level and pick sequence, bin and package labels, scan log with answer times, idempotent sync API with master data paging, devices
  • Flutter scanner app: scanner layer for Zebra DataWedge (profile TaqnixWMS created through SET_CONFIG), Honeywell, Datalogic, custom intents, keyboard wedge bursts, trigger keys and a camera fallback, one scan bus, offline-first engines with a local database and an outbox, sounds and haptics, screens for receipts, deliveries, moves, waves and blind counts with start and manager review, a scanner test screen, English and Arabic, 346 Dart tests and 53 Kotlin tests
  • Arabic translation and documentation, 241 automated tests of the module

Frequently asked questions

What do I get?

The Odoo 19 module (barcode resolver, scan engine, receipts, deliveries, internal and pallet moves, waves, cycle counts, bin check digits and pick sequence, labels, scan log, the API of the app) and the complete Flutter source code of the scanner app for Android and iOS, documentation in English and Arabic and automated tests.

Does it need Odoo Enterprise?

No. It works on Odoo 19 Community and depends only on Inventory, Barcodes and the GS1 nomenclature that Community already includes. It replaces the Enterprise Barcode app (stock_barcode) without using it.

Which scanners work?

Zebra devices through DataWedge broadcast intents, Honeywell through Data Collection intents, Datalogic through DecodeWedge intents, any Android scanner that can send an intent or keys, and the camera of any phone. The intent settings follow the vendor documentation; they were not run on a physical device by the author (the guide says so). The app itself ran end to end on the iOS simulator against the module.

What barcodes does it read?

EAN-13, EAN-8, UPC-A, UPC-E, GTIN-14 cases, packaging barcodes, GS1-128 with lot, serial, expiry, best-before, count, weight and SSCC, weight and price EAN-13 codes, and the barcodes of bins, pallets, lots and documents. The server answers in a few milliseconds.

Is the stock safe if two people scan at once?

A transfer belongs to the operator who claims it, every operation has a unique ID so a retry never counts twice, validation is atomic, and a cycle count can only be applied once by a manager who is not the counter.

What happens when the warehouse does something the system did not expect?

The movement is accepted and flagged for the manager: another bin, a small excess within your tolerance, a lot substituted, a sync that arrives late. Only hard errors are refused: closed transfer, missing lot, duplicate serial, expired lot, over-pick beyond the tolerance.

Can I use it without lots or packages?

Yes. Lots, serials, expiry, packages, multi-step locations and several warehouses work when you use them and stay out of the way when you do not.

Is it available in Arabic?

Yes. The module and the documentation come in English and Arabic.

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.

    by TAQNIX
    No reviews yet
    Sales:0$399.00
  • ModuleNew

    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.

    by TAQNIX
    No reviews yet
    Sales:0$149.00
  • PluginNew

    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.

    by TAQNIX
    No reviews yet
    Sales:0$49.00
  • PluginNew

    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.

    by TAQNIX
    No reviews yet
    Sales:0$49.00

Similar items

  • 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.

    by TAQNIX
    No reviews yet
    Sales:0$399.00
  • App templateNew
    42% off

    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.

    by TAQNIX
    No reviews yet
    Sales:0$199.00was $349.00
  • App templateNew
    42% off

    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.

    by TAQNIX
    No reviews yet
    Sales:0$199.00was $349.00
  • App templateNew
    50% off

    Odoo Restaurant Waiter App & Kitchen Display (KDS) – Flutter Table-Side Ordering, Hold & Fire Courses, Split Bills, QR Payment and Recipe Stock for Odoo 19 Community

    Take orders at the table and show them on the kitchen screens in milliseconds: live floor map, forced modifiers and add-ons, hold and fire courses, station routing with SLA timers, split bills, QR payment, ESC/POS receipts and automatic recipe consumption. Odoo Community module plus one Flutter app for waiters and kitchen tablets.

    by TAQNIX
    No reviews yet
    Sales:0$149.00was $299.00