Barcode Input for Inventories

stock_inventory_barcode
REPOSITORY
REPOSITORYOCA/stock-logistics-barcode
GIT
GIThttps://github.com/OCA/stock-logistics-barcode.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-barcode/tree/14.0/stock_inventory_barcode
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-barcode
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:52
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
stock_inventory_barcode_form stock.inventory.barcode.form stock.inventory.barcode form New
view_inventory_form stock.inventory.barcode.inventory.form stock.inventory button Inherits stock.view_inventory_form
Models touched (1)

New fields (16)
  • add_qty Float
    digits='Product Unit of Measure' string='Add to Real Quantity'
  • change_qty Float
    digits='Product Unit of Measure' string='Change Real Quantity'
  • company_id Many2one → res.company
    required=True string='Company' args: 'res.company'
  • inventory_id Many2one → stock.inventory
    required=True string='Inventory' args: 'stock.inventory'
  • inventory_line_id Many2one → stock.inventory.line
    string='Stock Inventory Line' args: 'stock.inventory.line'
  • location_id Many2one → stock.location
    domain=<expr> required=True string='Location' args: 'stock.location'
  • lot_id Many2one → stock.production.lot
    domain="[('product_id', '=', product_id), ('company_id', '=', company_id)]" string='Lot' args: 'stock.production.lot'
  • multi_stock_location Boolean
    readonly=True
  • note Text
  • product_code Char
    help='This field is designed to be filled with a barcode reader' string='Barcode or Internal Reference'
  • product_id Many2one → product.product
    domain=<expr> required=True string='Product' args: 'product.product'
  • product_qty Float
    readonly=True related='inventory_line_id.product_qty' string='Current Real Quantity'
  • product_tracking Selection
    required=True string='Tracking' args: [('serial', 'By Unique Serial Number'), ('lot', 'By Lots'), ('none', 'No Tracking')]
  • theoretical_qty Float
    readonly=True related='inventory_line_id.theoretical_qty'
  • uom_id Many2one → uom.uom
    required=True string='Unit of measure' args: 'uom.uom'
  • uom_name Char
    related='uom_id.name'
Public methods (6)
  • default_get(self, fields_list)
    @api.model
  • product_code_change(self)
    @api.onchange('product_code')
  • product_id_change(self)
    @api.onchange('product_id')
  • product_lot_loc_change(self)
    @api.onchange('product_id', 'location_id', 'lot_id', 'uom_id')
  • save(self)
  • update_wiz_screen(self, res)
REPOSITORY
REPOSITORYOCA/stock-logistics-barcode
GIT
GIThttps://github.com/OCA/stock-logistics-barcode.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-barcode/tree/12.0/stock_inventory_barcode
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Denis Roussel, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-barcode
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
stock_inventory_barcode_form stock.inventory.barcode.form stock.inventory.barcode form New
view_inventory_form stock.inventory.barcode.inventory.form stock.inventory button Inherits stock.view_inventory_form
Models touched (1)

New fields (16)
  • add_qty Float
    digits=dp.get_precision('Product Unit of Measure') string='Add to Real Quantity'
  • change_qty Float
    digits=dp.get_precision('Product Unit of Measure') string='Change Real Quantity'
  • inventory_id Many2one → stock.inventory
    required=True string='Inventory' args: 'stock.inventory'
  • inventory_line_id Many2one → stock.inventory.line
    string='Stock Inventory Line' args: 'stock.inventory.line'
  • inventory_location_id Many2one → stock.location
    required=True string='Root Inventory Location' args: 'stock.location'
  • location_id Many2one → stock.location
    required=True string='Location' args: 'stock.location'
  • lot_id Many2one → stock.production.lot
    string='Lot' args: 'stock.production.lot'
  • multi_stock_location Boolean
    readonly=True
  • note Text
  • product_code Char
    help='This field is designed to be filled with a barcode reader' string='Barcode or Internal Reference'
  • product_id Many2one → product.product
    domain=[('type', '=', 'product')] required=True string='Product' args: 'product.product'
  • product_qty Float
    readonly=True related='inventory_line_id.product_qty' string='Current Real Quantity'
  • product_tracking Selection
    required=True string='Tracking' args: [('serial', 'By Unique Serial Number'), ('lot', 'By Lots'), ('none', 'No Tracking')]
  • theoretical_qty Float
    readonly=True related='inventory_line_id.theoretical_qty'
  • uom_id Many2one → uom.uom
    required=True string='Unit of measure' args: 'uom.uom'
  • uom_name Char
    related='uom_id.name'
Public methods (6)
  • default_get(self, fields_list)
    @api.model
  • product_code_change(self)
    @api.onchange('product_code')
  • product_id_change(self)
    @api.onchange('product_id')
  • product_lot_loc_change(self)
    @api.onchange('product_id', 'location_id', 'lot_id', 'uom_id')
  • save(self)
  • update_wiz_screen(self, res)
REPOSITORY
REPOSITORYOCA/stock-logistics-barcode
GIT
GIThttps://github.com/OCA/stock-logistics-barcode.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-barcode/tree/10.0/stock_inventory_barcode
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexandre Fayolle, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
stock_inventory_barcode_form stock.inventory.barcode.form stock.inventory.barcode form New
view_inventory_form stock.inventory.barcode.inventory.form stock.inventory button Inherits stock.view_inventory_form
Models touched (1)

New fields (7)
  • add_qty Float
    digits=dp.get_precision('Product Unit of Measure') string='Add to Real Quantity'
  • change_qty Float
    digits=dp.get_precision('Product Unit of Measure') string='Change Real Quantity'
  • inventory_line_id Many2one → stock.inventory.line
    string='Stock Inventory Line' args: 'stock.inventory.line'
  • product_code Char
    help='This field is designed to be filled with a barcode reader' string='Barcode or Internal Reference'
  • product_id Many2one → product.product
    required=True string='Product' args: 'product.product'
  • product_qty Float
    readonly=True related='inventory_line_id.product_qty' string='Current Real Quantity'
  • theoretical_qty Float
    readonly=True related='inventory_line_id.theoretical_qty'
Public methods (3)
  • product_code_change(self)
    @api.onchange('product_code')
  • product_id_change(self)
    @api.onchange('product_id')
  • save(self)
REPOSITORY
REPOSITORYOCA/stock-logistics-barcode
GIT
GIThttps://github.com/OCA/stock-logistics-barcode.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-barcode/tree/8.0/stock_inventory_barcode
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
    - procurement
    - board
    - web_kanban_gauge
    - web_kanban_sparkline
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds input fields to the inventory view
which allow to add products to the inventory list by a barcode scanner.
For this the barcode scanner must be configured as a keyboard that appends
a LF after the scan and the cursor must be in the barcode field.

The barcode input functionality is provided by a abstract model that can also
be used with other models.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
stock_inventory_barcode_form stock.inventory.barcode.form stock.inventory.barcode form New
view_inventory_form stock.inventory.barcode.inventory.form stock.inventory button Inherits stock.view_inventory_form
Models touched (1)

New fields (7)
  • add_qty Float
    digits=dp.get_precision('Product Unit of Measure') string='Add to Real Quantity'
  • change_qty Float
    digits=dp.get_precision('Product Unit of Measure') string='Change Real Quantity'
  • inventory_line_id Many2one → stock.inventory.line
    string='Stock Inventory Line' args: 'stock.inventory.line'
  • product_code Char
    help='This field is designed to be filled with a barcode reader' string='EAN13 or Internal Reference'
  • product_id Many2one → product.product
    required=True string='Product' args: 'product.product'
  • product_qty Float
    readonly=True related='inventory_line_id.product_qty' string='Current Real Quantity'
  • theoretical_qty Float
    readonly=True related='inventory_line_id.theoretical_qty'
Public methods (3)
  • product_code_change(self)
    @api.onchange('product_code')
  • product_id_change(self)
    @api.onchange('product_id')
  • save(self)
    @api.multi