[IMP] barcode: split docs + hone in on language

closes odoo/documentation#6492

X-original-commit: e7cd792466
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
This commit is contained in:
Felicious 2023-08-23 20:52:57 +00:00
parent 1a32165180
commit 9081e45aab
15 changed files with 318 additions and 210 deletions

View File

@ -13,3 +13,4 @@ Daily operations
operations/transfers_scratch operations/transfers_scratch
operations/barcode_nomenclature operations/barcode_nomenclature
operations/gs1_nomenclature operations/gs1_nomenclature
operations/gs1_usage

View File

@ -2,11 +2,24 @@
GS1 barcode nomenclature GS1 barcode nomenclature
======================== ========================
`GS1 nomenclature <https://www.gs1us.org/>`_ consolidates multiple pieces of information in a single .. _barcode/operations/gs1:
barcode. Each piece needs to follow a specific barcode pattern—which is a defined format of numbers,
letters, special characters, and character length—to ensure proper interpretation of the barcode. By .. |AI| replace:: :abbr:`A.I. (Application Identifier)`
scanning the barcode on an unopened box, GS1 nomenclature can identify the product, lot number, .. |GTIN| replace:: :abbr:`GTIN (Global Trade Item Number)`
number of units contained, and more. .. |GTINs| replace:: :abbr:`GTINs (Global Trade Item Numbers)`
`GS1 nomenclature <https://www.gs1us.org/>`_ consolidates various product and supply chain data into
a single barcode. Odoo takes in `unique Global Trade Item Numbers
<https://www.gs1.org/standards/get-barcodes>`_ (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.
.. important::
|GTINs| are unique product identification that **must** be `purchased from GS1
<https://www.gs1.org/standards/get-barcodes>`_ to use GS1 barcodes.
.. seealso:: .. seealso::
- `All GS1 barcodes <https://www.gs1.org/standards/barcodes/application-identifiers>`_ - `All GS1 barcodes <https://www.gs1.org/standards/barcodes/application-identifiers>`_
@ -25,233 +38,74 @@ barcode nomenclature options.
.. image:: gs1_nomenclature/setup-gs1-nomenclature.png .. image:: gs1_nomenclature/setup-gs1-nomenclature.png
:align: center :align: center
:alt: Choose GS1 from dropdown and click the internal link to see the list of GS1 rules. :alt: Choose GS1 from dropdown and click the external link to see the list of GS1 rules.
To view and edit a list of GS1 *rules* and *barcode patterns* Odoo supports by default, click the The list of GS1 *rules* and *barcode patterns* Odoo supports by default is accessible by clicking
:guilabel:`➡️ (External link)` icon to the right of the :guilabel:`Barcode Nomenclature` selection. the :guilabel:`➡️ (arrow)` icon to the right of the :guilabel:`Barcode Nomenclature` selection.
Opening the pop-up table provides an editable view of GS1 :guilabel:`Rule Names` available in Odoo. In the :guilabel:`Open: Nomenclature` pop-up table, view and edit the GS1 :guilabel:`Rule Names`
The table contains all the information that can be condensed with a GS1 barcode, along with the available in Odoo. The table contains all the information that can be condensed with a GS1 barcode,
corresponding :guilabel:`Barcode Pattern`. along with the corresponding :guilabel:`Barcode Pattern`.
.. tip:: .. tip::
After setting GS1 as the barcode nomenclature, :menuselection:`Barcode Nomenclatures` can also be After setting GS1 as the barcode nomenclature, the :menuselection:`Barcode Nomenclatures`
accessed by first enabling :ref:`developer mode <developer-mode>`. Navigate to settings can also be accessed by a hidden menu that's discoverable after enabling :ref:`developer
:menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures` and finally, select mode <developer-mode>`. Once enabled, navigate to the :menuselection:`Inventory app -->
:guilabel:`Default GS1 Nomenclature`. Configuration --> Barcode Nomenclatures` menu and finally, select :guilabel:`Default GS1
Nomenclature`.
.. _barcode/operations/create-GS1-barcode: .. _barcode/operations/create-GS1-barcode:
Use GS1 barcode Use GS1 barcodes in Odoo
=============== ========================
To build GS1 barcodes in Odoo, combine multiple pieces of information using the specified barcode For product identification using GS1 barcodes in Odoo, businesses obtain a `unique GTIN
pattern. The `application identifier <https://www.gs1.org/standards/get-barcodes>`_ as an internationally distinct product identifier
<https://www.gs1.org/standards/barcodes/application-identifiers>`_ (A.I.) serves as the universal purchased from GS1. This |GTIN| is combined with specific product details following GS1's designated
prefix for GS1 for barcode identification. Odoo uses regular expressions to describe barcode *barcode pattern*. The barcode pattern's arrangement of numbers and letters must adhere to GS1
patterns concisely. Each barcode pattern begins with a required 2-4 digit :abbr:`A.I. (application conventions for accurate interpretation by global systems along the supply chain.
identifier)`, which corresponds to the rule defined in the system's :ref:`barcode nomenclature list
<barcode/operations/set-up-barcode-nomenclature>`. By including the appropriate :abbr:`A.I. Every barcode starts with a 2-4 digit `application identifier
(application identifier)` from the list, Odoo can accurately interpret GS1 barcodes. While most <https://www.gs1.org/standards/barcodes/application-identifiers>`_ (A.I.). This required prefix
barcode patterns have a flexible length, some specific patterns, such as barcodes for dates, have universally indicates what kind of information the barcode contains. Odoo follows GS1 rules for
defined length requirements. identifying information, as detailed in the :ref:`default GS1 rules list
<barcode/operations/default-gs1-nomenclature-list>`. Including the relevant |AI| 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:: .. tip::
Use the FNC1 separator (`\x1D`) to end the barcode without needing to reach the maximum character For flexible-length barcode patterns not placed at the end of the GS1 barcode, use the FNC1
length. 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: `LOT001\x1D`.
Refer to the :ref:`GS1 nomenclature list <barcode/operations/default-gs1-nomenclature-list>` to see Refer to the :ref:`GS1 nomenclature list <barcode/operations/default-gs1-nomenclature-list>` to see
a comprehensive list of all barcode patterns and rules to follow. Otherwise, the following section a comprehensive list of all barcode patterns and rules to follow. Otherwise, refer to :ref:`this
contains examples of how to generate a barcode for common items in a warehouse. GS1 usage doc <barcode/operations/gs1_usage>` for specific examples of combining |GTIN| to product
information and configuring the workflow.
Product + quantity + lot
------------------------
To build a GS1 barcode for a box that contains a product, number of units in it, and the lot number,
the following barcode patterns are used:
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+============+==========================+======+==================================+==========================================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field on product form|
| | (GTIN) | | | |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Quantity | Variable count of items | 30 | (30)(\\d{0,8}) | :guilabel:`Units` field on transfer form |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Lot Number | Batch or lot number | 10 | (10)([!"%-/0-9:-?A-Z_a-z]{0,20}) | :guilabel:`Lot` on Detailed Operations |
| | | | | pop-up |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
.. _barcode/operations/lot-setup:
Configuration
~~~~~~~~~~~~~
To track products using lots, first enable the :ref:`Lots and Serial Numbers
<inventory/management/track_products_by_lots>` feature. To do so, navigate to
:menuselection:`Inventory app --> Configuration --> Settings`. Next, under the
:guilabel:`Traceability` heading, check the box for :guilabel:`Lots & Serial Numbers`.
Then, set up the product barcode by navigating to the intended product form in
:menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product
form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the
:guilabel:`Barcode` field with the 14-digit `Global Trade Item Number (GTIN)
<https://www.gs1.org/standards/get-barcodes>`_, which is a universal and unique identifying number
from GS1.
.. important::
On the product form, omit the :abbr:`A.I. (application identifier)` `01` for GTIN product barcode
pattern, as it is only used to encode multiple barcodes into a single barcode that contains
detailed information about the package contents.
.. example::
To create a barcode for the product, `Fuji Apple`, enter the 14-digit GTIN `12345678901231` in
the :guilabel:`Barcode` field on the product form.
.. image:: gs1_nomenclature/barcode-field.png
:align: center
:alt: Enter 14-digit GTIN into the Barcode field on product form.
.. tip::
It is also possible to view a list of all products and barcodes. To access this list, go to
:menuselection:`Inventory --> Configuration --> Settings`. Under the :guilabel:`Barcode` heading,
click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode Scanner`
section. Enter the 14-digit GTIN into the :guilabel:`Barcode` column, then click
:guilabel:`Save`.
.. image:: gs1_nomenclature/product-barcodes-page.png
:align: center
:alt: View the Product Barcodes page from inventory settings.
.. _barcode/operations/lot-setup-on-product:
Next, enable lots and serial number tracking on the product. Select the :guilabel:`Inventory` tab on
the product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button.
.. image:: gs1_nomenclature/track-by-lots.png
:align: center
:alt: Enable product tracking by lots in the "Inventory" tab of the product form.
Scan barcode on receipt
~~~~~~~~~~~~~~~~~~~~~~~
To ensure accurate lot interpretation in Odoo on product barcodes scanned during a receipt
operation, navigate to the :menuselection:`Barcode` app to manage the :ref:`receipt picking process
<barcode/operations/scan-received-products>`.
From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the
:guilabel:`Receipts` button to view the list of vendor receptions to process. Receipts generated
from :abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created
directly through the :menuselection:`Barcode` app using the :guilabel:`Create` button.
On the list of receipts, click on the warehouse operation (`WH/IN`) and scan product barcodes and
lot numbers with a barcode scanner. The scanned product then appears on the list. Use the
:guilabel:`✏️ (pencil)` button to open a window and manually enter quantities for specific lot
numbers.
.. example::
After placing a :abbr:`PO (Purchase Order)` for 50 apples, navigate to the associated receipt.
Scan the product barcode, and Odoo will prompt for the lot number.
.. image:: gs1_nomenclature/receive-50-apples.png
:align: center
:alt: Scan the barcode for a product on the reception picking page in the *Barcode* app.
Scan the lot number to process 1 of 50 apples. To avoid scanning 49 remaining barcodes, click
the :guilabel:`✏️ (pencil)` button next to the desired lot number.
.. image:: gs1_nomenclature/scan-apple-lot-number.png
:align: center
:alt: Scan lot number and click the pencil to edit quantities.
Doing so opens a mobile-friendly keypad page to specify received quantities. Use the keypad to
specify the :guilabel:`Units` for the lot number. When finished, click :guilabel:`Confirm`.
.. image:: gs1_nomenclature/edit-lot-quantities.png
:align: center
:alt: Change scanned quantities using pencil button.
Repeat this process to specify additional lot numbers and quantities in this receipt. Once the
:guilabel:`Units` are all accounted for, finish the reception by clicking the :guilabel:`Validate`
button.
Alternatively, scan the barcode containing the product, lot number, and quantity to complete the
receipt operation in fewer steps.
Product + non-unit quantity
---------------------------
To build a GS1 barcode that contains products measured in a non-unit quantity, like kilograms, for
example, the following barcode patterns are used:
+-------------+--------------------------+----------+--------------------+----------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+=============+==========================+==========+====================+============================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field |
| | (GTIN) | | | on product form |
+-------------+--------------------------+----------+--------------------+----------------------------+
| Quantity in | Variable count of items | 310[0-5] | (310[0-5])(\\d{6}) | :guilabel:`Units` field on |
| kilograms | | | | transfer form |
+-------------+--------------------------+----------+--------------------+----------------------------+
Scan barcode on receipt
~~~~~~~~~~~~~~~~~~~~~~~
To confirm that quantities are correctly interpreted in Odoo, place an order in the *Purchase* app
using the appropriate unit of measure (:guilabel:`UoM`) for the quantity of products to be
purchased.
.. seealso:: .. seealso::
:ref:`Simplify vendor unit conversions with UoMs <inventory/management/uom-example>` - :ref:`Lots workflow <barcode/operations/gs1-lots>`
- :ref:`Non-unit quantities workflow <barcode/operations/quantity-ex>`
After the order is placed, navigate to the :menuselection:`Barcode` app to :ref:`receive the vendor
shipment <barcode/operations/scan-received-products>`.
.. example::
On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the
barcode. If `52.1 / 52.1` :guilabel:`kg` appears on the page, this means the reception was
processed without issue. Finally, press :guilabel:`Validate`.
Note: the :abbr:`A.I. (application identifier)` for kilograms, `310` + `1`, was used to represent
`52.1` kg as a barcode: `000521`. This is because the `1` represents how many digits from the
right to place the decimal point.
.. image:: gs1_nomenclature/scan-barcode-peaches.png
:align: center
:alt: Scan barcode screen for a reception operation in the Barcode app.
For additional verification purposes, the quantities of received products are also recorded on the
:guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app -->
Reporting --> Product Moves`.
The items on the :guilabel:`Product Moves` report are grouped by product by default. To confirm the
received quantities, click on a product line to open its collapsible drop-down menu, which displays
a list of *stock move lines* for the product. The latest stock move matches the warehouse reception
reference number (e.g. `WH/IN/00013`) and quantity processed in the barcode scan, demonstrating that
the records processed in the *Barcode* app were properly stored in *Inventory*.
.. image:: gs1_nomenclature/stock-moves-peach.png
:align: center
:alt: Reception stock move record for 52.1 kg of peaches.
.. _barcode/operations/create-new-rules: .. _barcode/operations/create-new-rules:
Create rules Create rules
------------ ------------
If a supplier uses a GS1 barcode with a field not supported by Odoo's :ref:`default GS1 list GS1 rules are a specific format of information contained in the barcode, beginning with an |AI| and
<barcode/operations/default-gs1-nomenclature-list>`, Odoo will fail to interpret the entire barcode. containing a defined length of characters. Scanning GS1 barcodes from the :ref:`default GS1 list
To ensure the complete reading of the barcode, it is necessary to add the missing barcode to Odoo's <barcode/operations/default-gs1-nomenclature-list>` auto-fills corresponding data in the Odoo
list. database.
.. important:: Adding GS1 barcode rules in Odoo ensures accurate interpretation of unique, non-standard GS1
While the new field will be read, the information won't link to an existing field in Odoo without formats.
developer customizations. However, adding new rules is still useful to ensure the rest of the
fields in the barcode are interpreted correctly.
Begin by turning on :ref:`developer mode <developer-mode>` and navigating to the :guilabel:`Barcode To do so, begin by turning on :ref:`developer mode <developer-mode>` and navigating to the
Nomenclatures` list in :menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures`. :guilabel:`Barcode Nomenclatures` list in :menuselection:`Inventory app --> Configuration -->
Then, select the :guilabel:`Default GS1 Nomenclature` list item. Barcode Nomenclatures`. Then, select the :guilabel:`Default GS1 Nomenclature` list item.
On the :guilabel:`Default GS1 Nomenclature` page, select :guilabel:`Add a line` at the bottom of the On the :guilabel:`Default GS1 Nomenclature` page, select :guilabel:`Add a line` at the bottom of the
table, which opens a window to create a new rule. The :guilabel:`Rule Name` field is used internally table, which opens a window to create a new rule. The :guilabel:`Rule Name` field is used internally
@ -289,6 +143,23 @@ not working as expected:
the barcode nomenclature for Odoo to read the barcode. :ref:`This section the barcode nomenclature for Odoo to read the barcode. :ref:`This section
<barcode/operations/create-new-rules>` details how to add new rules in the barcode nomenclature. <barcode/operations/create-new-rules>` details how to add new rules in the barcode nomenclature.
#. 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.
#. After diagnosing the encoded field is unknown, :ref:`add new rules
<barcode/operations/create-new-rules>` to Odoo's default list to recognize GS1 barcodes with
unique specifications.
.. important::
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.
.. _barcode/operations/default-gs1-nomenclature-list: .. _barcode/operations/default-gs1-nomenclature-list:
GS1 nomenclature list GS1 nomenclature list

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,236 @@
=================
GS1 barcode usage
=================
.. _barcode/operations/gs1_usage:
.. |AI| replace:: :abbr:`A.I. (Application Identifier)`
.. |GTIN| replace:: :abbr:`GTIN (Global Trade Item Number)`
GS1 barcodes provide a standardized format that barcode scanners can interpret. They encode
information in a :ref:`specific structure recognized globally <barcode/operations/gs1>`, allowing
scanners to understand and process supply chain data consistently.
Odoo *Barcode* interprets and prints GS1 barcodes, automating product identification and tracking
in warehouse operations such as receiving, picking, and shipping.
The following sections contain examples of how Odoo uses GS1 barcodes provided by the business to
identify common warehouse items and automate certain warehouse workflows.
.. important::
Odoo **does not** create GS1 barcodes. Businesses must purchase a unique Global Trade Item Number
(GTIN) from GS1. Then, they can combine their existing GS1 barcodes with product and supply chain
information (also provided by GS1) to create barcodes in Odoo.
.. seealso::
- `Purchase GTINs <https://www.gs1.org/standards/get-barcodes>`_
- :ref:`GS1 nomenclature <barcode/operations/gs1>`
.. _barcode/operations/gs1-lots:
Configure barcodes for product, quantity, and lots
==================================================
To build a GS1 barcode that contains information about a product, its quantities, and the lot
number, the following barcode patterns and Application Identifiers (A.I.) are used:
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+============+==========================+======+==================================+==========================================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field on product form|
| | (GTIN) | | | |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Quantity | Variable count of items | 30 | (30)(\\d{0,8}) | :guilabel:`Units` field on transfer form |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Lot Number | Batch or lot number | 10 | (10)([!"%-/0-9:-?A-Z_a-z]{0,20}) | :guilabel:`Lot` on Detailed Operations |
| | | | | pop-up |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
.. _barcode/operations/lot-setup:
Configuration
-------------
First, :ref:`enable product tracking using lots <inventory/management/track_products_by_lots>` by
navigating to :menuselection:`Inventory app --> Configuration --> Settings`, and checking the box
for :guilabel:`Lots & Serial Numbers` under the :guilabel:`Traceability` heading.
Then, set up the product barcode by navigating to the intended product form in
:menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product
form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the
:guilabel:`Barcode` field with the unique 14-digit `Global Trade Item Number (GTIN)
<https://www.gs1.org/standards/get-barcodes>`_, which is a universally recognized identifying number
that is provided by GS1.
.. important::
On the product form, omit the |AI| `01` for |GTIN| product barcode pattern, as it is only used to
encode multiple barcodes into a single barcode that contains detailed information about the
package contents.
.. example::
To record the GS1 barcode for the product, `Fuji Apple`, enter the 14-digit |GTIN|
`20611628936004` in the :guilabel:`Barcode` field on the product form.
.. image:: gs1_usage/barcode-field.png
:align: center
:alt: Enter 14-digit GTIN into the Barcode field on product form.
.. tip::
To view a list of *all* products and their corresponding barcodes in the Odoo database, navigate
to :menuselection:`Inventory app --> Configuration --> Settings`. Under the :guilabel:`Barcode`
heading, click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode
Scanner` section. Enter the 14-digit |GTIN| into the :guilabel:`Barcode` column, then click
:guilabel:`Save`.
.. image:: gs1_usage/product-barcodes-page.png
:align: center
:alt: View the Product Barcodes page from inventory settings.
.. _barcode/operations/lot-setup-on-product:
After activating tracking by lots and serial numbers from the settings page, specify that this
feature is to be applied on each product by navigating to the :guilabel:`Inventory` tab on the
product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button.
.. image:: gs1_usage/track-by-lots.png
:align: center
:alt: Enable product tracking by lots in the "Inventory" tab of the product form.
Scan barcode on receipt
-----------------------
To ensure accurate lot interpretation in Odoo on product barcodes scanned during a receipt
operation, navigate to the :menuselection:`Barcode` app to manage the :ref:`receipt picking process
<barcode/operations/scan-received-products>`.
From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the
:guilabel:`Receipts` button to view the list of vendor receipts to process. Receipts generated from
:abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created directly
through the :menuselection:`Barcode` app using the :guilabel:`Create` button.
On the list of receipts, click on the warehouse operation (`WH/IN`) and scan product barcodes and
lot numbers with a barcode scanner. The scanned product then appears on the list. Use the
:guilabel:`✏️ (pencil)` button to open a window and manually enter quantities for specific lot
numbers.
.. example::
After placing a :abbr:`PO (Purchase Order)` for fifty apples, navigate to the associated receipt
in the *Barcode* app.
Scan the barcode containing the |GTIN|, quantity, and lot number. For testing with a barcode
scanner, below is an example barcode for the fifty Fuji apples in Lot 2.
.. list-table::
:widths: 50 50
:header-rows: 1
:stub-columns: 1
* - 50 Fuji apples in Lot0002
-
* - 2D Matrix
- .. image:: gs1_usage/fuji-apples-barcode.png
:alt: 2D matrix of GS1 barcode of 50 fuji apples with an assigned lot number.
* - |AI| (product)
- 01
* - GS1 Barcode (product)
- 20611628936004
* - |AI| (quantity)
- 30
* - GS1 Barcode (quantity)
- 00000050
* - |AI| (lot)
- 10
* - GS1 Barcode (lot #)
- LOT0002
* - Full GS1 barcode
- 01206116289360043 000000050 10LOT0002
:ref:`If the configuration is correct <barcode/operations/troubleshooting>`, `50/50`
:guilabel:`Units` processed will be displayed and the :guilabel:`Validate` button turns green.
Click the :guilabel:`Validate` button to complete the reception.
.. image:: gs1_usage/receive-50-apples.png
:align: center
:alt: Scan the barcode for a product on the reception picking page in the *Barcode* app.
.. _barcode/operations/quantity-ex:
Configure barcode for product and non-unit quantity
===================================================
To build a GS1 barcode that contains products measured in a non-unit quantity, like kilograms, for
example, the following barcode patterns are used:
+-------------+--------------------------+----------+--------------------+----------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+=============+==========================+==========+====================+============================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field |
| | (GTIN) | | | on product form |
+-------------+--------------------------+----------+--------------------+----------------------------+
| Quantity in | Variable count of items | 310[0-5] | (310[0-5])(\\d{6}) | :guilabel:`Units` field on |
| kilograms | | | | transfer form |
+-------------+--------------------------+----------+--------------------+----------------------------+
Scan barcode on receipt
-----------------------
To confirm that quantities are correctly interpreted in Odoo, place an order in the *Purchase* app
using the appropriate unit of measure (:guilabel:`UoM`) for the quantity of products to be
purchased.
.. seealso::
:ref:`Simplify vendor unit conversions with UoMs <inventory/management/uom-example>`
After the order is placed, navigate to the :menuselection:`Barcode` app to :ref:`receive the vendor
shipment <barcode/operations/scan-received-products>`.
.. example::
On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the
barcode containing the |GTIN| and quantity of peaches in kilograms.
.. list-table::
:widths: 50 50
:header-rows: 1
:stub-columns: 1
* - 52.1 kg of Peaches
-
* - 2D Matrix
- .. image:: gs1_usage/peaches-barcode.png
:alt: 2D matrix of GS1 barcode of 52.1 kg of peaches.
* - |AI| (product)
- 01
* - GS1 Barcode (product)
- 00614141000012
* - |AI| (kg, 1 decimal point)
- 3101
* - GS1 Barcode (quantity)
- 000521
* - Full GS1 barcode
- 0100614141000012 3101000521
:ref:`If the configuration is correct <barcode/operations/troubleshooting>`, `52.1 / 52.1`
:guilabel:`kg` will be displayed and the :guilabel:`Validate` button turns green. Finally, press
:guilabel:`Validate` to complete the validation.
.. image:: gs1_usage/scan-barcode-peaches.png
:align: center
:alt: Scan barcode screen for a reception operation in the Barcode app.
Verify product moves
====================
For additional verification, the quantities of received products are also recorded on the
:guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app -->
Reporting --> Product Moves`.
The items on the :guilabel:`Product Moves` report are grouped by product by default. To confirm the
received quantities, click on a product line to open its collapsible drop-down menu, which displays
a list of *stock move lines* for the product. The latest stock move matches the warehouse reception
reference number (e.g. `WH/IN/00013`) and quantity processed in the barcode scan, demonstrating that
the records processed in the *Barcode* app were properly stored in *Inventory*.
.. image:: gs1_usage/stock-moves-peach.png
:align: center
:alt: Reception stock move record for 52.1 kg of peaches.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB