Name Last update
..
demo
i18n
models
security
static/description
views
README.rst
__init__.py
__openerp__.py
License: AGPL-3

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
/barcodes_generate/static/description/barcode_rule_tree.png
  • Check 'Available for Products', or 'Available for Partners' Checkbox.
/barcodes_generate/static/description/barcode_rule_form.png

Usage

To use this module, you need to:

  • Go to a Product form (or a Partner Form):
  • set a rule to the current object
/barcodes_generate/static/description/product_product_form_generate_base_barcode.png
  • Click on 'Generate Base and Barcode'
/barcodes_generate/static/description/product_product_form_generated.png

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

/barcodes_generate/static/description/product_product_form_generate_barcode.png

Try this module on Runbot

Try me 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

Contributors

Maintainer

Odoo Community Association

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.