Barcode - GS1 Nomenclature

barcodes_gs1_nomenclature
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/barcodes_gs1_nomenclature
VERSION
VERSION 1.0
CATEGORY
CATEGORYSupply Chain/Inventory
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Julien Castiaux, svs-odoo, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Louis Wicket (wil), Dylan Kiss (dyki), Ethan Vincent, Julien Carion (juca), nihp-odoo, dhha-odoo, Mohammad Abdulmoneim (abdu), khsr-odoo, Krzysztof Magusiak (krma), kkuj-odoo, shka-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:45
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - barcodes
    - web
    - base
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_barcode_gs1_nomenclature_form Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_form
view_barcode_gs1_nomenclature_tree Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_tree
view_barcode_gs1_rule_form Barcode Rule barcode.rule xpath Inherits barcodes.view_barcode_rule_form
Models touched (3)

New fields (2)
  • gs1_separator_fnc1 Char
    default='(Alt029|#|\\x1D)' help='Alternative regex delimiter for the FNC1. The separator must not match the begin/end of any related rules pattern.' string='FNC1 Separator' trim=False
  • is_gs1_nomenclature Boolean
    help='This Nomenclature use the GS1 specification, only GS1-128 encoding rules is accepted is this kind of nomenclature.' string='Is GS1 Nomenclature'
Public methods (4)
  • gs1_date_to_date(self, gs1_date)
    @api.model
    Converts a GS1 date into a datetime.date. :param gs1_date: A year formated as yymmdd :type gs1_date: str :return: converted date :rtype: datetime.date
  • gs1_decompose_extended(self, barcode)
    Try to decompose the gs1 extended barcode into several unit of information using gs1 rules. Return a ordered list of dict
  • parse_gs1_rule_pattern(self, match, rule)
  • parse_nomenclature_barcode(self, barcode)

New fields (6)
  • associated_uom_id Many2one → uom.uom
    args: 'uom.uom'
  • encoding Selection
    default=_default_encoding ondelete={'gs1-128': 'set default'} selection_add=[('gs1-128', 'GS1-128')]
  • gs1_content_type Selection
    help="The GS1 content type defines what kind of data the rule will process the barcode as: * Date: the barcode will be converted into a Odoo datetime; * Measure: the barcode's value is related to a specific unit; * Numeric Identifier: fixed length barcode following a specific encoding; * Alpha-Numeric Name: variable length barcode." string='GS1 Content Type' args: [('date', 'Date'), ('measure', 'Measure'), ('identifier', 'Numeric Identifier'), ('alpha', 'Alpha-Numeric Name')]
  • gs1_decimal_usage Boolean
    help='If True, use the last digit of AI to determine where the first decimal is' args: 'Decimal'
  • is_gs1_nomenclature Boolean
    related='barcode_nomenclature_id.is_gs1_nomenclature'
  • type Selection
    ondelete={'quantity': 'set default', 'location': 'set default', 'location_dest': 'set default', 'lot': 'set default', 'package': 'set default', 'use_date': 'set default', 'expiration_date': 'set default', 'package_type': 'set default', 'pack_date': 'set default'} selection_add=[('quantity', 'Quantity'), ('location', 'Location'), ('location_dest', 'Destination location'), ('lot', 'Lot number'), ('package', 'Package'), ('use_date', 'Best before Date'), ('expiration_date', 'Expiration Date'), ('package_type', 'Package Type'), ('pack_date', 'Pack Date')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/barcodes_gs1_nomenclature
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Xavier Morel, Odoo Online, Christophe Monniez, svs-odoo, Vincent Larcin, Louis Wicket (wil), Dylan Kiss (dyki), Antoine (ande), Zachary Hanham, Ethan Vincent, Louis (wil), dhha-odoo, khsr-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - barcodes
    - web
    - base
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_barcode_gs1_nomenclature_form Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_form
view_barcode_gs1_nomenclature_tree Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_tree
view_barcode_gs1_rule_form Barcode Rule barcode.rule xpath Inherits barcodes.view_barcode_rule_form
Models touched (3)

New fields (2)
  • gs1_separator_fnc1 Char
    default='(Alt029|#|\\x1D)' help='Alternative regex delimiter for the FNC1. The separator must not match the begin/end of any related rules pattern.' string='FNC1 Separator' trim=False
  • is_gs1_nomenclature Boolean
    help='This Nomenclature use the GS1 specification, only GS1-128 encoding rules is accepted is this kind of nomenclature.' string='Is GS1 Nomenclature'
Public methods (4)
  • gs1_date_to_date(self, gs1_date)
    @api.model
    Converts a GS1 date into a datetime.date. :param gs1_date: A year formated as yymmdd :type gs1_date: str :return: converted date :rtype: datetime.date
  • gs1_decompose_extanded(self, barcode)
    Try to decompose the gs1 extanded barcode into several unit of information using gs1 rules. Return a ordered list of dict
  • parse_gs1_rule_pattern(self, match, rule)
  • parse_nomenclature_barcode(self, barcode)

New fields (6)
  • associated_uom_id Many2one → uom.uom
    args: 'uom.uom'
  • encoding Selection
    default=_default_encoding ondelete={'gs1-128': 'set default'} selection_add=[('gs1-128', 'GS1-128')]
  • gs1_content_type Selection
    help="The GS1 content type defines what kind of data the rule will process the barcode as: * Date: the barcode will be converted into a Odoo datetime; * Measure: the barcode's value is related to a specific UoM; * Numeric Identifier: fixed length barcode following a specific encoding; * Alpha-Numeric Name: variable length barcode." string='GS1 Content Type' args: [('date', 'Date'), ('measure', 'Measure'), ('identifier', 'Numeric Identifier'), ('alpha', 'Alpha-Numeric Name')]
  • gs1_decimal_usage Boolean
    help='If True, use the last digit of AI to determine where the first decimal is' args: 'Decimal'
  • is_gs1_nomenclature Boolean
    related='barcode_nomenclature_id.is_gs1_nomenclature'
  • type Selection
    ondelete={'quantity': 'set default', 'location': 'set default', 'location_dest': 'set default', 'lot': 'set default', 'package': 'set default', 'use_date': 'set default', 'expiration_date': 'set default', 'package_type': 'set default', 'pack_date': 'set default'} selection_add=[('quantity', 'Quantity'), ('location', 'Location'), ('location_dest', 'Destination location'), ('lot', 'Lot number'), ('package', 'Package'), ('use_date', 'Best before Date'), ('expiration_date', 'Expiration Date'), ('package_type', 'Package Type'), ('pack_date', 'Pack Date')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/barcodes_gs1_nomenclature
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Odoo Online, Christophe Monniez, William Henrotin, Joseph Caburnay, svs-odoo, Adrien Widart, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, pedrambiria, Yolann Sabaux, Pedram (PEBR), Adrien Widart (awt), Dylan Kiss (dyki), Antoine (ande), Michael (mcm), Renilkumar Kajavadra, Zachary Hanham, Ethan Vincent, Louis (wil), khsr-odoo, Pierre Pulinckx (pipu)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - barcodes
    - web
    - base
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_barcode_gs1_nomenclature_form Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_form
view_barcode_gs1_nomenclature_tree Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_tree
view_barcode_gs1_rule_form Barcode Rule barcode.rule xpath Inherits barcodes.view_barcode_rule_form
Models touched (3)

New fields (2)
  • gs1_separator_fnc1 Char
    default='(Alt029|#|\\x1D)' help='Alternative regex delimiter for the FNC1. The separator must not match the begin/end of any related rules pattern.' string='FNC1 Separator' trim=False
  • is_gs1_nomenclature Boolean
    help='This Nomenclature use the GS1 specification, only GS1-128 encoding rules is accepted is this kind of nomenclature.' string='Is GS1 Nomenclature'
Public methods (4)
  • gs1_date_to_date(self, gs1_date)
    @api.model
    Converts a GS1 date into a datetime.date. :param gs1_date: A year formated as yymmdd :type gs1_date: str :return: converted date :rtype: datetime.date
  • gs1_decompose_extanded(self, barcode)
    Try to decompose the gs1 extanded barcode into several unit of information using gs1 rules. Return a ordered list of dict
  • parse_barcode(self, barcode)
  • parse_gs1_rule_pattern(self, match, rule)

New fields (6)
  • associated_uom_id Many2one → uom.uom
    args: 'uom.uom'
  • encoding Selection
    default=_default_encoding ondelete={'gs1-128': 'set default'} selection_add=[('gs1-128', 'GS1-128')]
  • gs1_content_type Selection
    help="The GS1 content type defines what kind of data the rule will process the barcode as: * Date: the barcode will be converted into a Odoo datetime; * Measure: the barcode's value is related to a specific UoM; * Numeric Identifier: fixed length barcode following a specific encoding; * Alpha-Numeric Name: variable length barcode." string='GS1 Content Type' args: [('date', 'Date'), ('measure', 'Measure'), ('identifier', 'Numeric Identifier'), ('alpha', 'Alpha-Numeric Name')]
  • gs1_decimal_usage Boolean
    help='If True, use the last digit of AI to determine where the first decimal is' args: 'Decimal'
  • is_gs1_nomenclature Boolean
    related='barcode_nomenclature_id.is_gs1_nomenclature'
  • type Selection
    ondelete={'quantity': 'set default', 'location': 'set default', 'location_dest': 'set default', 'lot': 'set default', 'package': 'set default', 'use_date': 'set default', 'expiration_date': 'set default', 'package_type': 'set default', 'pack_date': 'set default'} selection_add=[('quantity', 'Quantity'), ('location', 'Location'), ('location_dest', 'Destination location'), ('lot', 'Lot number'), ('package', 'Package'), ('use_date', 'Best before Date'), ('expiration_date', 'Expiration Date'), ('package_type', 'Package Type'), ('pack_date', 'Pack Date')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/barcodes_gs1_nomenclature
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Christophe Monniez, Victor Feyens, svs-odoo, Adrien Widart, Tiffany Chang (tic), pedrambiria, yhu-odoo, Yolann Sabaux, Pedram (PEBR), Adrien Widart (awt), Antoine (ande), Renilkumar Kajavadra, Zachary Hanham, Ethan Vincent
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - barcodes
    - web
    - base
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_barcode_gs1_nomenclature_form Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_form
view_barcode_gs1_nomenclature_tree Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_tree
view_barcode_gs1_rule_form Barcode Rule barcode.rule xpath Inherits barcodes.view_barcode_rule_form
Models touched (3)

New fields (2)
  • gs1_separator_fnc1 Char
    default='(Alt029|#|\\x1D)' help='Alternative regex delimiter for the FNC1. The separator must not match the begin/end of any related rules pattern.' string='FNC1 Separator' trim=False
  • is_gs1_nomenclature Boolean
    help='This Nomenclature use the GS1 specification, only GS1-128 encoding rules is accepted is this kind of nomenclature.' string='Is GS1 Nomenclature'
Public methods (4)
  • gs1_date_to_date(self, gs1_date)
    @api.model
    Converts a GS1 date into a datetime.date. :param gs1_date: A year formated as yymmdd :type gs1_date: str :return: converted date :rtype: datetime.date
  • gs1_decompose_extanded(self, barcode)
    Try to decompose the gs1 extanded barcode into several unit of information using gs1 rules. Return a ordered list of dict
  • parse_barcode(self, barcode)
  • parse_gs1_rule_pattern(self, match, rule)

New fields (6)
  • associated_uom_id Many2one → uom.uom
    args: 'uom.uom'
  • encoding Selection
    default=_default_encoding ondelete={'gs1-128': 'set default'} selection_add=[('gs1-128', 'GS1-128')]
  • gs1_content_type Selection
    help="The GS1 content type defines what kind of data the rule will process the barcode as: * Date: the barcode will be converted into a Odoo datetime; * Measure: the barcode's value is related to a specific UoM; * Numeric Identifier: fixed length barcode following a specific encoding; * Alpha-Numeric Name: variable length barcode." string='GS1 Content Type' args: [('date', 'Date'), ('measure', 'Measure'), ('identifier', 'Numeric Identifier'), ('alpha', 'Alpha-Numeric Name')]
  • gs1_decimal_usage Boolean
    help='If True, use the last digit of AI to determine where the first decimal is' args: 'Decimal'
  • is_gs1_nomenclature Boolean
    related='barcode_nomenclature_id.is_gs1_nomenclature'
  • type Selection
    ondelete={'quantity': 'set default', 'location': 'set default', 'location_dest': 'set default', 'lot': 'set default', 'package': 'set default', 'use_date': 'set default', 'expiration_date': 'set default', 'package_type': 'set default', 'pack_date': 'set default'} selection_add=[('quantity', 'Quantity'), ('location', 'Location'), ('location_dest', 'Destination location'), ('lot', 'Lot number'), ('package', 'Package'), ('use_date', 'Best before Date'), ('expiration_date', 'Expiration Date'), ('package_type', 'Package Type'), ('pack_date', 'Pack Date')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/barcodes_gs1_nomenclature
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Christophe Monniez, Xavier-Do, Julien Mougenot, svs-odoo, Tiffany Chang (tic), Pedram (PEBR)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - barcodes
    - web
    - base
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_barcode_gs1_nomenclature_form Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_form
view_barcode_gs1_nomenclature_tree Barcode Nomenclatures barcode.nomenclature xpath Inherits barcodes.view_barcode_nomenclature_tree
view_barcode_gs1_rule_form Barcode Rule barcode.rule xpath Inherits barcodes.view_barcode_rule_form
Models touched (2)

New fields (2)
  • gs1_separator_fnc1 Char
    help='Alternative regex delimiter for the FNC1 (by default, if not set, it is <GS> ASCII 29 char). The separator must not match the begin/end of any related rules pattern.' string='FNC1 Separator' trim=False
  • is_gs1_nomenclature Boolean
    help='This Nomenclature use the GS1 specification, only GS1-128 encoding rules is accepted is this kind of nomenclature.' string='Is GS1 Nomenclature'
Public methods (4)
  • gs1_date_to_date(self, gs1_date)
    @api.model
    Converts a GS1 date into a datetime.date. :param gs1_date: A year formated as yymmdd :type gs1_date: str :return: converted date :rtype: datetime.date
  • gs1_decompose_extanded(self, barcode)
    Try to decompose the gs1 extanded barcode into several unit of information using gs1 rules. Return a ordered list of dict
  • parse_barcode(self, barcode)
  • parse_gs1_rule_pattern(self, match, rule)

New fields (6)
  • associated_uom_id Many2one → uom.uom
    args: 'uom.uom'
  • encoding Selection
    default=_default_encoding ondelete={'gs1-128': 'set default'} selection_add=[('gs1-128', 'GS1-128')]
  • gs1_content_type Selection
    help="The GS1 content type defines what kind of data the rule will process the barcode as: * Date: the barcode will be converted into a Odoo datetime; * Measure: the barcode's value is related to a specific UoM; * Numeric Identifier: fixed length barcode following a specific encoding; * Alpha-Numeric Name: variable length barcode." string='GS1 Content Type' args: [('date', 'Date'), ('measure', 'Measure'), ('identifier', 'Numeric Identifier'), ('alpha', 'Alpha-Numeric Name')]
  • gs1_decimal_usage Boolean
    help='If True, use the last digit of AI to dertermine where the first decimal is' args: 'Decimal'
  • is_gs1_nomenclature Boolean
    related='barcode_nomenclature_id.is_gs1_nomenclature'
  • type Selection
    ondelete={'quantity': 'set default', 'location': 'set default', 'location_dest': 'set default', 'lot': 'set default', 'package': 'set default', 'use_date': 'set default', 'expiration_date': 'set default', 'package_type': 'set default', 'packaging_date': 'set default'} selection_add=[('quantity', 'Quantity'), ('location', 'Location'), ('location_dest', 'Destination location'), ('lot', 'Lot number'), ('package', 'Package'), ('use_date', 'Best before Date'), ('expiration_date', 'Expiration Date'), ('package_type', 'Packaging Type'), ('packaging_date', 'Packaging Date')]
Public methods (0)

No public methods.