Skip to main content

It provides read barcode on stock operations.

Project description

Beta License: AGPL-3 OCA/stock-logistics-barcode Translate me on Weblate Try me on Runbot

This module provides a barcode reader interface for stock module.

This module contains a base wizard read barcode that can be extended by other modules.

This module also makes use of this wizard for providing barcode support for doing inventories and picking operations.

Table of contents


Barcode interface for inventory operations

To use the barcode interface on inventory:

  1. Go to Inventory > operations > Inventory Adjustments.

  2. Create new inventory with “Select products manually” option.

  3. Start inventory.

  4. Click to “Scan barcodes” smart button.

  5. Start reading barcodes.

Barcode interface for picking operations

You can use the barcode interface in a picking or an operation type, the main difference is that if you open the barcode interface from a picking, this picking is locked and you read products for it.

To use the barcode interface on picking operations:

  1. Go to Inventory.

  2. Click on scanner button on any operation type.

  3. Start reading barcodes.

To use the barcode interface on a picking:

  1. Go to Inventory > Transfers.

  2. Click to “Scan barcodes” smart button.

  3. Start reading barcodes.

The barcode scanner interface has two operation modes. In both of them user can scan:

  1. Warehouse locations with barcode.

  2. Product packaging with barcode.

  3. Product with barcode.

  4. Product Lots (The barcode is name field in this case).

Automatic operation mode

This is the default mode, all screen controls are locked to avoid scan into fields.

The user only has to scan barcode in physical warehouse locations with a scanner hardward, the interface read the barcode and do operations in this order:

  1. Try search a product, if found, is assigned to product_id field and creates or update inventory line with 1.0 unit. (If product has tracking by lots the interface wait for a lot to be scanned).

  2. Try search a product packaging, if found, the product_id related is set, product quantities are updated and create or update inventory line with product quantities defined in the product packaging.

  3. Try search a lot (The product is mandatory in this case so you first scan a product and then scann a lot), this lot field is not erased until that product change, so for each product scann the interface add or update a inventory line with this lot.

  4. Try to search a location, if found the field location is set and next scan action will be done with this warehouse location.

If barcode has not found, when message is displayed you can create this lot scanning the product.

Manual entry mode

You can change to “manual entry” to allow to select data without scanner hardware, but hardward scanner still active on, so a use case would be when user wants set quantities manually instead increment 1.0 unit peer scan action.

Scan logs

All scanned barcodes are saved into model. Barcode scanning interface display 10 last records linked to model, the goal of this log is show to user other reads with the same product and location done by other users. User can remove the last read scan.

Known issues / Roadmap

  • Excute action_done() method outside onchange environment.

  • Allow create product when a barcode has not been found.

  • Allow to select picking reading its barcode.

  • Allow to select multiple pickings to process scanned products.

Changelog (2019-09-24)

  • [ADD] New feature. User can uses barcode interface in picking operations. (2021-02-06)

  • [ADD] New feature. Add option to get lots automatically based on removal strategy in inventory.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • Tecnativa


  • Tecnativa:

    • Sergio Teruel

    • Carlos Dauden

    • Pedro M. Baeza

    • Alexandre D. Díaz

  • Onestein:

    • Andrea Stirpe


This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/stock-logistics-barcode project on GitHub.

You are welcome to contribute. To learn how please visit

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page