GS1 barcode nomenclature

GS1 nomenclature consolidates various product and supply chain data into a single barcode. Odoo takes in unique Global Trade Item Numbers (GTIN), purchased by businesses, to enable global shipping, sales, and eCommerce product listing.

Configure GS1 nomenclature to scan barcodes of sealed boxes and identify essential product information, such as GTIN, lot number, quantity information, and more.

Belangrijk

GTINs are unique product identification that must be purchased from GS1 to use GS1 barcodes.

Set up barcode nomenclature

To use GS1 nomenclature, navigate to the Inventory app ‣ Configuration ‣ Settings. Then under the Barcode section, check the Barcode Scanner box. Next, select Barcode Nomenclature ‣ Default GS1 Nomenclature from the default barcode nomenclature options.

Choose GS1 from dropdown and click the external link to see the list of GS1 rules.

The list of GS1 rules and barcode patterns Odoo supports by default is accessible by clicking the ➡️ (arrow) icon to the right of the Barcode Nomenclature selection.

In the Open: Nomenclature pop-up table, view and edit the GS1 Rule Names available in Odoo. The table contains all the information that can be condensed with a GS1 barcode, along with the corresponding Barcode Pattern.

Tip

After setting GS1 as the barcode nomenclature, the Barcode Nomenclatures settings can also be accessed by a hidden menu that’s discoverable after enabling developer mode. Once enabled, navigate to the Inventory app ‣ Configuration ‣ Barcode Nomenclatures menu and finally, select Default GS1 Nomenclature.

Use GS1 barcodes in Odoo

For product identification using GS1 barcodes in Odoo, businesses obtain a unique GTIN as an internationally distinct product identifier purchased from GS1. This GTIN is combined with specific product details following GS1’s designated barcode pattern. The barcode pattern’s arrangement of numbers and letters must adhere to GS1 conventions for accurate interpretation by global systems along the supply chain.

Every barcode starts with a 2-4 digit application identifier (A.I.). This required prefix universally indicates what kind of information the barcode contains. Odoo follows GS1 rules for identifying information, as detailed in the default GS1 rules list. Including the relevant A.I. from the list enables Odoo to correctly interpret GS1 barcodes. While most barcode patterns have a fixed length requirement, certain ones, such as lots and serial numbers, have flexible length.

Tip

For flexible-length barcode patterns not placed at the end of the GS1 barcode, use the FNC1 separator (\x1D) to end the barcode.

Example: The barcode pattern for lot numbers is 20 characters long. Instead of creating a 20-character lot number barcode, like LOT00000000000000001, use the FNC1 separator to make it shorter: LOT001x1D.

Refer to the GS1 nomenclature list to see a comprehensive list of all barcode patterns and rules to follow. Otherwise, refer to this GS1 usage doc for specific examples of combining GTIN to product information and configuring the workflow.

Create rules

GS1 rules are a specific format of information contained in the barcode, beginning with an A.I. and containing a defined length of characters. Scanning GS1 barcodes from the default GS1 list auto-fills corresponding data in the Odoo database.

Adding GS1 barcode rules in Odoo ensures accurate interpretation of unique, non-standard GS1 formats.

To do so, begin by turning on developer mode and navigating to the Barcode Nomenclatures list in Inventory app ‣ Configuration ‣ Barcode Nomenclatures. Then, select the Default GS1 Nomenclature list item.

On the Default GS1 Nomenclature page, select Add a line at the bottom of the table, which opens a window to create a new rule. The Rule Name field is used internally to identify what the barcode represents. The barcode Types are different classifications of information that can be understood by the system (e.g. product, quantity, best before date, package, coupon). The Sequence represents the priority of the rule; this means the smaller the value, the higher the rule appears on the table. Odoo follows the sequential order of this table and will use the first rule it matches based on the sequence. The Barcode Pattern is how the sequence of letters or numbers is recognized by the system to contain information about the product.

After filling in the information, click the Save & New button to make another rule or click Save & Close to save and return to the table of rules.

Barcode troubleshooting

Since GS1 barcodes are challenging to work with, here are some checks to try when the barcodes are not working as expected:

  1. Ensure that the Barcode Nomenclature setting is set as Default GS1 Nomenclature. Jump to the nomenclature setup section for more details.

  2. Ensure that the fields scanned in the barcode are enabled in Odoo. For example, to scan a barcode containing lots and serial numbers, make sure the Lots & Serial Numbers feature is enabled in Odoo’s settings and on the product.

  3. Omit punctuation such as parentheses () or brackets [] between the A.I. and the barcode sequence. These are typically used in examples for ease of reading and should not be included in the final barcode. For more details on building GS1 barcodes, go to this section.

  4. When a single barcode contains multiple encoded fields, Odoo requires all rules to be listed in the barcode nomenclature for Odoo to read the barcode. This section details how to add new rules in the barcode nomenclature.

  5. Test barcodes containing multiple encoded fields, piece by piece, to figure out which field is causing the issue.

    Example

    When testing a barcode containing the GTIN, lot number, and quantity, start by scanning the GTIN alone. Then, test the GTIN with the lot number, and finally, try scanning the whole barcode.

  6. After diagnosing the encoded field is unknown, add new rules to Odoo’s default list to recognize GS1 barcodes with unique specifications.

    Belangrijk

    While the new field will be read, the information won’t link to an existing field in Odoo without developer customizations. However, adding new rules is necessary to ensure the rest of the fields in the barcode are interpreted correctly.

GS1 nomenclature list

The table below contains Odoo’s default list of GS1 rules. Barcode patterns are written in regular expressions. Only the first three rules require a check digit as the final character.

Regelnaam

Soort

Barcode patroon

GS1 inhoud type

Odoo field

Serial Shipping Container Code

Pakket

(00)(\d{18})

Numeric identifier

Package name

Global Trade Item Number (GTIN)

Producteenheid

(01)(\d{14})

Numeric identifier

Barcode field on product form

GTIN of contained trade items

Producteenheid

(02)(\d{14})

Numeric identifier

Verpakking

Ship to / Deliver to global location

Bestemmingslocatie

(410)(\d{13})

Numeric identifier

Bestemmingslocatie

Ship / Deliver for forward

Bestemmingslocatie

(413)(\d{13})

Numeric identifier

Afzender

I.D. of a physical location

Locatie

(414)(\d{13})

Numeric identifier

Locatie

Batch or lot number

Partij

(10) ([!”%-/0-9:-?A-Z_a-z]{0,20})

Alpha-numeric name

Partij

Serienummer

Partij

(21) ([!”%-/0-9:-?A-Z_a-z]{0,20})

Alpha-numeric name

Serienummer

Packaging date (YYMMDD)

Verpakkingsdatum

(13)(\d{6})

Datum

Pack date

Best before date (YYMMDD)

Tenminste houdbaar tot datum

(15)(\d{6})

Datum

Best before date

Expiration date (YYMMDD)

Vervaldatum

(17)(\d{6})

Datum

Expiry date

Variable count of items

Hoeveelheid

(30)(\d{0,8})

Eenheid

UoM: Units

Count of trade items

Hoeveelheid

(37)(\d{0,8})

Eenheid

Qty in units for containers (AI 02)

Net weight: kilograms (kg)

Hoeveelheid

(310[0-5])(\d{6})

Eenheid

Qty in kg

Length in meters (m)

Hoeveelheid

(311[0-5])(\d{6})

Eenheid

Qty in m

Net volume: liters (L)

Hoeveelheid

(315[0-5])(\d{6})

Eenheid

Qty in L

Net volume: cubic meters (m3)

Hoeveelheid

(316[0-5])(\d{6})

Eenheid

Qty in m3

Length in inches (in)

Hoeveelheid

(321[0-5])(\d{6})

Eenheid

Qty in inches

Net weight/volume: ounces (oz)

Hoeveelheid

(357[0-5])(\d{6})

Eenheid

Qty in oz

Net volume: cubic feet (ft3)

Hoeveelheid

(365[0-5])(\d{6})

Eenheid

Qty in ft3

Packaging type

Verpakkingssoort

(91) ([!”%-/0-9:-?A-Z_a-z]{0,90})

Alpha-numeric name

Verpakkingstype