|
| 1 | +================= |
| 2 | +GS1 barcode usage |
| 3 | +================= |
| 4 | + |
| 5 | +.. _barcode/operations/gs1_usage: |
| 6 | + |
| 7 | +.. |AI| replace:: :abbr:`A.I. (Application Identifier)` |
| 8 | +.. |GTIN| replace:: :abbr:`GTIN (Global Trade Item Number)` |
| 9 | + |
| 10 | +GS1 barcodes provide a standardized format that barcode scanners can interpret. They encode |
| 11 | +information in a :ref:`specific structure recognized globally <barcode/operations/gs1>`, allowing |
| 12 | +scanners to understand and process supply chain data consistently. |
| 13 | + |
| 14 | +Odoo *Barcode* interprets and prints GS1 barcodes, automating product identification and tracking |
| 15 | +in warehouse operations such as receiving, picking, and shipping. |
| 16 | + |
| 17 | +The following sections contain examples of how Odoo uses GS1 barcodes provided by the business to |
| 18 | +identify common warehouse items and automate certain warehouse workflows. |
| 19 | + |
| 20 | +.. important:: |
| 21 | + Odoo **does not** create GS1 barcodes. Businesses must purchase a unique Global Trade Item Number |
| 22 | + (GTIN) from GS1. Then, they can combine their existing GS1 barcodes with product and supply chain |
| 23 | + information (also provided by GS1) to create barcodes in Odoo. |
| 24 | + |
| 25 | +.. seealso:: |
| 26 | + - `Purchase GTINs <https://www.gs1.org/standards/get-barcodes>`_ |
| 27 | + - :ref:`GS1 nomenclature <barcode/operations/gs1>` |
| 28 | + |
| 29 | +.. _barcode/operations/gs1-lots: |
| 30 | + |
| 31 | +Configure barcodes for product, quantity, and lots |
| 32 | +================================================== |
| 33 | + |
| 34 | +To build a GS1 barcode that contains information about a product, its quantities, and the lot |
| 35 | +number, the following barcode patterns and Application Identifiers (A.I.) are used: |
| 36 | + |
| 37 | ++------------+--------------------------+------+----------------------------------+------------------------------------------+ |
| 38 | +| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo | |
| 39 | ++============+==========================+======+==================================+==========================================+ |
| 40 | +| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field on product form| |
| 41 | +| | (GTIN) | | | | |
| 42 | ++------------+--------------------------+------+----------------------------------+------------------------------------------+ |
| 43 | +| Quantity | Variable count of items | 30 | (30)(\\d{0,8}) | :guilabel:`Units` field on transfer form | |
| 44 | ++------------+--------------------------+------+----------------------------------+------------------------------------------+ |
| 45 | +| Lot Number | Batch or lot number | 10 | (10)([!"%-/0-9:-?A-Z_a-z]{0,20}) | :guilabel:`Lot` on Detailed Operations | |
| 46 | +| | | | | pop-up | |
| 47 | ++------------+--------------------------+------+----------------------------------+------------------------------------------+ |
| 48 | + |
| 49 | +.. _barcode/operations/lot-setup: |
| 50 | + |
| 51 | +Configuration |
| 52 | +------------- |
| 53 | + |
| 54 | +First, :ref:`enable product tracking using lots <inventory/management/track_products_by_lots>` by |
| 55 | +navigating to :menuselection:`Inventory app --> Configuration --> Settings`, and checking the box |
| 56 | +for :guilabel:`Lots & Serial Numbers` under the :guilabel:`Traceability` heading. |
| 57 | + |
| 58 | +Then, set up the product barcode by navigating to the intended product form in |
| 59 | +:menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product |
| 60 | +form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the |
| 61 | +:guilabel:`Barcode` field with the unique 14-digit `Global Trade Item Number (GTIN) |
| 62 | +<https://www.gs1.org/standards/get-barcodes>`_, which is a universally recognized identifying number |
| 63 | +that is provided by GS1. |
| 64 | + |
| 65 | +.. important:: |
| 66 | + On the product form, omit the |AI| `01` for |GTIN| product barcode pattern, as it is only used to |
| 67 | + encode multiple barcodes into a single barcode that contains detailed information about the |
| 68 | + package contents. |
| 69 | + |
| 70 | +.. example:: |
| 71 | + |
| 72 | + To record the GS1 barcode for the product, `Fuji Apple`, enter the 14-digit |GTIN| |
| 73 | + `20611628936004` in the :guilabel:`Barcode` field on the product form. |
| 74 | + |
| 75 | + .. image:: gs1_usage/barcode-field.png |
| 76 | + :align: center |
| 77 | + :alt: Enter 14-digit GTIN into the Barcode field on product form. |
| 78 | + |
| 79 | +.. tip:: |
| 80 | + To view a list of *all* products and their corresponding barcodes in the Odoo database, navigate |
| 81 | + to :menuselection:`Inventory app --> Configuration --> Settings`. Under the :guilabel:`Barcode` |
| 82 | + heading, click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode |
| 83 | + Scanner` section. Enter the 14-digit |GTIN| into the :guilabel:`Barcode` column, then click |
| 84 | + :guilabel:`Save`. |
| 85 | + |
| 86 | + .. image:: gs1_usage/product-barcodes-page.png |
| 87 | + :align: center |
| 88 | + :alt: View the Product Barcodes page from inventory settings. |
| 89 | + |
| 90 | +.. _barcode/operations/lot-setup-on-product: |
| 91 | + |
| 92 | +After activating tracking by lots and serial numbers from the settings page, specify that this |
| 93 | +feature is to be applied on each product by navigating to the :guilabel:`Inventory` tab on the |
| 94 | +product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button. |
| 95 | + |
| 96 | +.. image:: gs1_usage/track-by-lots.png |
| 97 | + :align: center |
| 98 | + :alt: Enable product tracking by lots in the "Inventory" tab of the product form. |
| 99 | + |
| 100 | +Scan barcode on receipt |
| 101 | +----------------------- |
| 102 | + |
| 103 | +To ensure accurate lot interpretation in Odoo on product barcodes scanned during a receipt |
| 104 | +operation, navigate to the :menuselection:`Barcode` app to manage the :ref:`receipt picking process |
| 105 | +<barcode/operations/scan-received-products>`. |
| 106 | + |
| 107 | +From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the |
| 108 | +:guilabel:`Receipts` button to view the list of vendor receipts to process. Receipts generated from |
| 109 | +:abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created directly |
| 110 | +through the :menuselection:`Barcode` app using the :guilabel:`Create` button. |
| 111 | + |
| 112 | +On the list of receipts, click on the warehouse operation (`WH/IN`) and scan product barcodes and |
| 113 | +lot numbers with a barcode scanner. The scanned product then appears on the list. Use the |
| 114 | +:guilabel:`✏️ (pencil)` button to open a window and manually enter quantities for specific lot |
| 115 | +numbers. |
| 116 | + |
| 117 | +.. example:: |
| 118 | + After placing a :abbr:`PO (Purchase Order)` for fifty apples, navigate to the associated receipt |
| 119 | + in the *Barcode* app. |
| 120 | + |
| 121 | + Scan the barcode containing the |GTIN|, quantity, and lot number. For testing with a barcode |
| 122 | + scanner, below is an example barcode for the fifty Fuji apples in Lot 2. |
| 123 | + |
| 124 | + .. list-table:: |
| 125 | + :widths: 50 50 |
| 126 | + :header-rows: 1 |
| 127 | + :stub-columns: 1 |
| 128 | + |
| 129 | + * - 50 Fuji apples in Lot0002 |
| 130 | + - |
| 131 | + * - 2D Matrix |
| 132 | + - .. image:: gs1_usage/fuji-apples-barcode.png |
| 133 | + :alt: 2D matrix of GS1 barcode of 50 fuji apples with an assigned lot number. |
| 134 | + * - |AI| (product) |
| 135 | + - 01 |
| 136 | + * - GS1 Barcode (product) |
| 137 | + - 20611628936004 |
| 138 | + * - |AI| (quantity) |
| 139 | + - 30 |
| 140 | + * - GS1 Barcode (quantity) |
| 141 | + - 00000050 |
| 142 | + * - |AI| (lot) |
| 143 | + - 10 |
| 144 | + * - GS1 Barcode (lot #) |
| 145 | + - LOT0002 |
| 146 | + * - Full GS1 barcode |
| 147 | + - 01206116289360043 000000050 10LOT0002 |
| 148 | + |
| 149 | + :ref:`If the configuration is correct <barcode/operations/troubleshooting>`, `50/50` |
| 150 | + :guilabel:`Units` processed will be displayed and the :guilabel:`Validate` button turns green. |
| 151 | + Click the :guilabel:`Validate` button to complete the reception. |
| 152 | + |
| 153 | + .. image:: gs1_usage/receive-50-apples.png |
| 154 | + :align: center |
| 155 | + :alt: Scan the barcode for a product on the reception picking page in the *Barcode* app. |
| 156 | + |
| 157 | +.. _barcode/operations/quantity-ex: |
| 158 | + |
| 159 | +Configure barcode for product and non-unit quantity |
| 160 | +=================================================== |
| 161 | + |
| 162 | +To build a GS1 barcode that contains products measured in a non-unit quantity, like kilograms, for |
| 163 | +example, the following barcode patterns are used: |
| 164 | + |
| 165 | ++-------------+--------------------------+----------+--------------------+----------------------------+ |
| 166 | +| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo | |
| 167 | ++=============+==========================+==========+====================+============================+ |
| 168 | +| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field | |
| 169 | +| | (GTIN) | | | on product form | |
| 170 | ++-------------+--------------------------+----------+--------------------+----------------------------+ |
| 171 | +| Quantity in | Variable count of items | 310[0-5] | (310[0-5])(\\d{6}) | :guilabel:`Units` field on | |
| 172 | +| kilograms | | | | transfer form | |
| 173 | ++-------------+--------------------------+----------+--------------------+----------------------------+ |
| 174 | + |
| 175 | +Scan barcode on receipt |
| 176 | +----------------------- |
| 177 | + |
| 178 | +To confirm that quantities are correctly interpreted in Odoo, place an order in the *Purchase* app |
| 179 | +using the appropriate unit of measure (:guilabel:`UoM`) for the quantity of products to be |
| 180 | +purchased. |
| 181 | + |
| 182 | +.. seealso:: |
| 183 | + :ref:`Simplify vendor unit conversions with UoMs <inventory/management/uom-example>` |
| 184 | + |
| 185 | +After the order is placed, navigate to the :menuselection:`Barcode` app to :ref:`receive the vendor |
| 186 | +shipment <barcode/operations/scan-received-products>`. |
| 187 | + |
| 188 | +.. example:: |
| 189 | + On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the |
| 190 | + barcode containing the |GTIN| and quantity of peaches in kilograms. |
| 191 | + |
| 192 | + .. list-table:: |
| 193 | + :widths: 50 50 |
| 194 | + :header-rows: 1 |
| 195 | + :stub-columns: 1 |
| 196 | + |
| 197 | + * - 52.1 kg of Peaches |
| 198 | + - |
| 199 | + * - 2D Matrix |
| 200 | + - .. image:: gs1_usage/peaches-barcode.png |
| 201 | + :alt: 2D matrix of GS1 barcode of 52.1 kg of peaches. |
| 202 | + * - |AI| (product) |
| 203 | + - 01 |
| 204 | + * - GS1 Barcode (product) |
| 205 | + - 00614141000012 |
| 206 | + * - |AI| (kg, 1 decimal point) |
| 207 | + - 3101 |
| 208 | + * - GS1 Barcode (quantity) |
| 209 | + - 000521 |
| 210 | + * - Full GS1 barcode |
| 211 | + - 0100614141000012 3101000521 |
| 212 | + |
| 213 | + :ref:`If the configuration is correct <barcode/operations/troubleshooting>`, `52.1 / 52.1` |
| 214 | + :guilabel:`kg` will be displayed and the :guilabel:`Validate` button turns green. Finally, press |
| 215 | + :guilabel:`Validate` to complete the validation. |
| 216 | + |
| 217 | + .. image:: gs1_usage/scan-barcode-peaches.png |
| 218 | + :align: center |
| 219 | + :alt: Scan barcode screen for a reception operation in the Barcode app. |
| 220 | + |
| 221 | +Verify product moves |
| 222 | +==================== |
| 223 | + |
| 224 | +For additional verification, the quantities of received products are also recorded on the |
| 225 | +:guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app --> |
| 226 | +Reporting --> Product Moves`. |
| 227 | + |
| 228 | +The items on the :guilabel:`Product Moves` report are grouped by product by default. To confirm the |
| 229 | +received quantities, click on a product line to open its collapsible drop-down menu, which displays |
| 230 | +a list of *stock move lines* for the product. The latest stock move matches the warehouse reception |
| 231 | +reference number (e.g. `WH/IN/00013`) and quantity processed in the barcode scan, demonstrating that |
| 232 | +the records processed in the *Barcode* app were properly stored in *Inventory*. |
| 233 | + |
| 234 | +.. image:: gs1_usage/stock-moves-peach.png |
| 235 | + :align: center |
| 236 | + :alt: Reception stock move record for 52.1 kg of peaches. |
0 commit comments