Generate Barcodes for Products and Customers
This module expends Odoo functionnality, allowing user to generate barcode depending on a given barcode rule.
For exemple, a typical pattern for products is "23.....{NNNDD}" that means that: * the EAN13 code will begin by '23' * followed by 5 digits (named Barcode Base in this module) * and after 5 others digits to define the variable price * a 13 digit control
With this module, it is possible to:
- Affect a pattern (barcode.rule) to a product.product or a res.partner
- Generate the next Barcode base of a pattern. (to avoid duplicate barcode)
- Generate a barcode, based on a pattern and a barcode base
Installation
This module use an extra python librairy named 'pyBarcode' you should install to make barcode generation works properly.
sudo pip install pyBarcode
Configuration
To configure this module, you need to:
- Go to Point Of Sale / Configuration / Barcode Nomenclatures and select
- Select a Nomenclature
- Create or select a rule

- Check 'Available for Products', or 'Available for Partners' Checkbox.

Usage
To use this module, you need to:
- Go to a Product form (or a Partner Form):
- set a rule to the current object

- Click on 'Generate Base and Barcode'

Alternatively you can set manually a barcode base, and click only on Generate barcode.

Try this module on Runbot
Inheritance
If you want to generate barcode for another model, you can create a custom module that inherits on 'barcodes_generate' and inherit your model like that:
- class MyModel(models.Model):
- _name = 'my.model' _inherit = ['my.model', 'barcode.generate.mixin']
- class barcode_rule(models.Model):
-
_inherit = 'barcode.rule'
generate_model = fields.Selection(selection_add=[('my.model', 'My Model')])
Finally, you should inherit your model view adding buttons and fields.
Note
Your model should have a field 'barcode' defined.
Known issues / Roadmap
1. Dependency to point_of_sale is required because barcode field, defined in 'base' module (in the res.partner model), is defined in a 'point_of_sale' view. Furthermore, barcode nomenclature menu is available on Point Of Sale submenu.
It's a relative problem, because product barcodes generation will occures mostly in a Point of Sale context.
You could comment 'point_of_sale' dependencies if you want to use this module without point of sale installed.
2. On barcode.rule model, constraint and domain system could be set between 'type' and 'generate_model' fields.
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.
Credits
Images
- Odoo Community Association: Icon.
- Icon of the module is based on the Oxygen Team work and is under LGPL licence: http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html
Contributors
- Sylvain LE GAL (https://twitter.com/legalsylvain)
Maintainer

This module is maintained by the OCA.
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.
To contribute to this module, please visit https://odoo-community.org.