[REF] Inventory and MRP: Update TOC tree
closes odoo/documentation#5959
X-original-commit: 7b67d69abd
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
@@ -0,0 +1,15 @@
|
||||
:nosearch:
|
||||
|
||||
================
|
||||
Daily operations
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
operations/adjustments
|
||||
operations/internal
|
||||
operations/transfers_scratch
|
||||
operations/barcode_nomenclature
|
||||
operations/gs1_nomenclature
|
||||
@@ -0,0 +1,48 @@
|
||||
================================================
|
||||
Process to an Inventory Adjustment with Barcodes
|
||||
================================================
|
||||
|
||||
To process an inventory adjustment by using barcodes, you first need to
|
||||
open the *Barcode* app. Then, from the application, click on
|
||||
*Inventory Adjustments*.
|
||||
|
||||
.. image:: adjustments/adjustments_01.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
If you want to fully work with barcodes, you can download the sheet
|
||||
*Commands for Inventory*.
|
||||
|
||||
Once you have clicked on *Inventory Adjustments*, Odoo will
|
||||
automatically create one. Note that, if you work with multi-location,
|
||||
you first need to specify in which location the inventory adjustment
|
||||
takes place.
|
||||
|
||||
.. image:: adjustments/adjustments_02.png
|
||||
:align: center
|
||||
|
||||
If you don’t work with multi-location, you will be able to scan the
|
||||
different products you want to include in the inventory adjustment.
|
||||
|
||||
.. image:: adjustments/adjustments_03.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
If you have 5 identical articles, scan it 5 times or use the keyboard to
|
||||
set the quantity.
|
||||
|
||||
Besides using the barcode scanner, you can also manually add a product
|
||||
if necessary. To do so, click on *Add Product* and fill the
|
||||
information in manually.
|
||||
|
||||
.. image:: adjustments/adjustments_04.png
|
||||
:align: center
|
||||
|
||||
.. image:: adjustments/adjustments_05.png
|
||||
:align: center
|
||||
|
||||
When you have scanned all the items of the location, validate the
|
||||
inventory manually or scan the *Validate* barcode.
|
||||
|
||||
.. image:: adjustments/adjustments_06.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
@@ -0,0 +1,84 @@
|
||||
========
|
||||
Overview
|
||||
========
|
||||
|
||||
There are different situations in which barcode nomenclatures can be
|
||||
useful. A well-known use case is the one of a point of sale which sells
|
||||
products in bulk, in which the customers will scale their products
|
||||
themselves and get the printed barcode to stick on the product. This
|
||||
barcode will contain the weight of the product and help compute the
|
||||
price accordingly.
|
||||
|
||||
Create a Barcode Nomenclature
|
||||
=============================
|
||||
|
||||
Odoo supports Barcode Nomenclatures, which determine the mapping and
|
||||
interpretation of the encoded information. You can configure your barcode nomenclature being in
|
||||
:ref:`developer mode <developer-mode>`.
|
||||
To do so, go to :menuselection:`Inventory --> Configuration --> Barcode Nomenclature`.
|
||||
|
||||
You can create a barcode nomenclature from there, and then add a line to
|
||||
create your first rule.
|
||||
|
||||
.. image:: barcode_nomenclature/barcode_nomenclature_01.png
|
||||
:align: center
|
||||
|
||||
The first step is to specify the **rule name**, for example Weight
|
||||
Barcode with 3 Decimals. You then have to specify the type for barcode
|
||||
nomenclature, in our case it will be Weighted Product.
|
||||
|
||||
.. image:: barcode_nomenclature/barcode_nomenclature_02.png
|
||||
:align: center
|
||||
|
||||
The Barcode Pattern is a regular expression that defines the structure
|
||||
of the barcode. In this example 21 defines the products on which the
|
||||
rule will be applied, those are the numbers by which the product barcode
|
||||
should start. The 5 “dots” are the following numbers of the product
|
||||
barcode and are there simply to identify the product in question. The
|
||||
“N” define a number and the “D” define the decimals.
|
||||
|
||||
The encoding allows to specify the barcode encoding on which the rule
|
||||
should be applied.
|
||||
|
||||
.. note::
|
||||
You can define different rules and order their priority thanks to the
|
||||
sequence. The first rule which matches the scanned barcode will be
|
||||
applied.
|
||||
|
||||
Configure your Product
|
||||
----------------------
|
||||
|
||||
1. The barcode of the product should start by “21”;
|
||||
2. The 5 “dots” are the other numbers of your product barcode, allowing to identify the product;
|
||||
3. The barcode should contain 0’s where you did defined D’s or N’s. In our case we need to set 5 zeros because we configured “21…..{NNDDD}”;
|
||||
4. In EAN-13, the last number is a check number, use an EAN13 generator to know which digit it should be in your case.
|
||||
|
||||
.. image:: barcode_nomenclature/barcode_nomenclature_03.png
|
||||
:align: center
|
||||
|
||||
In case you weight 1,5 Kg of pasta, the balance will print you the
|
||||
following barcode 2112345015002. If you scan this barcode in your POS or
|
||||
when receiving products in your barcode application, Odoo will
|
||||
automatically create a new line for the Pasta product for a quantity of
|
||||
1.5 Kg. For the point of sale, a price depending on the quantity will
|
||||
also be computed.
|
||||
|
||||
.. image:: barcode_nomenclature/barcode_nomenclature_04.png
|
||||
:align: center
|
||||
|
||||
Rule Types
|
||||
----------
|
||||
|
||||
- **Priced Product**: allows you to identify the product and specify its price, used in POS.
|
||||
- **Discounted Product**: allows you to create one barcode per applied discount. You can then scan your product in the POS and then scan the discount barcode, discount will be applied on the normal price of the product.
|
||||
- **Weighted Product**: allows you to identify the product and specify its weight, used in both POS (in which the price is computed based on the weight) and in inventory.
|
||||
- **Client**: allows you to identify the customer, for example used with loyalty program.
|
||||
- **Cashier**: allows you to identify the cashier when entering the POS.
|
||||
- **Location**: allows you to identify the location on a transfer when multi-location is activated.
|
||||
- **Package**: allows you to identify packages on a transfer when packages are activated.
|
||||
- **Credit Card**: doesn’t need manual modification, exists for data from the Mercury module.
|
||||
- **Unit Product**: allows you to identify a product for both POS and transfers.
|
||||
|
||||
.. note::
|
||||
When the barcode pattern contains .*, it means that it can contain any
|
||||
number of characters, those characters being any number.
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,356 @@
|
||||
========================
|
||||
GS1 barcode nomenclature
|
||||
========================
|
||||
|
||||
`GS1 nomenclature <https://www.gs1us.org/>`_ consolidates multiple pieces of information in a single
|
||||
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
|
||||
scanning the barcode on an unopened box, GS1 nomenclature can identify the product, lot number,
|
||||
number of units contained, and more.
|
||||
|
||||
.. seealso::
|
||||
- `All GS1 barcodes <https://www.gs1.org/standards/barcodes/application-identifiers>`_
|
||||
- :ref:`Odoo's default GS1 rules <barcode/operations/default-gs1-nomenclature-list>`
|
||||
- :ref:`Why's my barcode not working? <barcode/operations/troubleshooting>`
|
||||
|
||||
.. _barcode/operations/set-up-barcode-nomenclature:
|
||||
|
||||
Set up barcode nomenclature
|
||||
===========================
|
||||
|
||||
To use GS1 nomenclature, navigate to the :menuselection:`Inventory app --> Configuration -->
|
||||
Settings`. Then under the :guilabel:`Barcode` section, check the :guilabel:`Barcode Scanner` box.
|
||||
Next, select :menuselection:`Barcode Nomenclature --> Default GS1 Nomenclature` from the default
|
||||
barcode nomenclature options.
|
||||
|
||||
.. image:: gs1_nomenclature/setup-gs1-nomenclature.png
|
||||
:align: center
|
||||
:alt: Choose GS1 from dropdown and click the internal 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
|
||||
:guilabel:`➡️ (External link)` 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.
|
||||
The table contains all the information that can be condensed with a GS1 barcode, along with the
|
||||
corresponding :guilabel:`Barcode Pattern`.
|
||||
|
||||
.. tip::
|
||||
After setting GS1 as the barcode nomenclature, :menuselection:`Barcode Nomenclatures` can also be
|
||||
accessed by first enabling :ref:`developer mode <developer-mode>`. Navigate to
|
||||
:menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures` and finally, select
|
||||
:guilabel:`Default GS1 Nomenclature`.
|
||||
|
||||
.. _barcode/operations/create-GS1-barcode:
|
||||
|
||||
Use GS1 barcode
|
||||
===============
|
||||
|
||||
To build GS1 barcodes in Odoo, combine multiple pieces of information using the specified barcode
|
||||
pattern. The `application identifier
|
||||
<https://www.gs1.org/standards/barcodes/application-identifiers>`_ (A.I.) serves as the universal
|
||||
prefix for GS1 for barcode identification. Odoo uses regular expressions to describe barcode
|
||||
patterns concisely. Each barcode pattern begins with a required 2-4 digit :abbr:`A.I. (application
|
||||
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.
|
||||
(application identifier)` from the list, Odoo can accurately interpret GS1 barcodes. While most
|
||||
barcode patterns have a flexible length, some specific patterns, such as barcodes for dates, have
|
||||
defined length requirements.
|
||||
|
||||
.. tip::
|
||||
Use the FNC1 separator (`\x1D`) to end the barcode without needing to reach the maximum character
|
||||
length.
|
||||
|
||||
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
|
||||
contains examples of how to generate a barcode for common items in a warehouse.
|
||||
|
||||
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::
|
||||
: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. 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:
|
||||
|
||||
Create rules
|
||||
------------
|
||||
|
||||
If a supplier uses a GS1 barcode with a field not supported by Odoo's :ref:`default GS1 list
|
||||
<barcode/operations/default-gs1-nomenclature-list>`, Odoo will fail to interpret the entire barcode.
|
||||
To ensure the complete reading of the barcode, it is necessary to add the missing barcode to Odoo's
|
||||
list.
|
||||
|
||||
.. 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 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
|
||||
Nomenclatures` list in :menuselection:`Inventory app --> Configuration --> 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
|
||||
table, which opens a window to create a new rule. The :guilabel:`Rule Name` field is used internally
|
||||
to identify what the barcode represents. The barcode :guilabel:`Types` are different classifications
|
||||
of information that can be understood by the system (e.g. product, quantity, best before date,
|
||||
package, coupon). The :guilabel:`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 :guilabel:`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 :guilabel:`Save & New` button to make another rule or
|
||||
click :guilabel:`Save & Close` to save and return to the table of rules.
|
||||
|
||||
.. _barcode/operations/troubleshooting:
|
||||
|
||||
Barcode troubleshooting
|
||||
=======================
|
||||
|
||||
Since GS1 barcodes are challenging to work with, here are some checks to try when the barcodes are
|
||||
not working as expected:
|
||||
|
||||
#. Ensure that the :guilabel:`Barcode Nomenclature` setting is set as :menuselection:`Default GS1
|
||||
Nomenclature`. Jump to the :ref:`nomenclature setup section
|
||||
<barcode/operations/set-up-barcode-nomenclature>` for more details.
|
||||
#. 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 :guilabel:`Lots & Serial Numbers` feature is
|
||||
enabled in :ref:`Odoo's settings <barcode/operations/lot-setup>` and :ref:`on the product
|
||||
<barcode/operations/lot-setup-on-product>`.
|
||||
#. Omit punctuation such as parentheses `()` or brackets `[]` between the :abbr:`A.I. (Application
|
||||
Identifier)` 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 :ref:`this section <barcode/operations/create-GS1-barcode>`.
|
||||
#. 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. :ref:`This section
|
||||
<barcode/operations/create-new-rules>` details how to add new rules in the barcode nomenclature.
|
||||
|
||||
.. _barcode/operations/default-gs1-nomenclature-list:
|
||||
|
||||
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
|
||||
<https://www.gs1.org/services/check-digit-calculator>`_ as the final character.
|
||||
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Rule Name | Type | Barcode Pattern | GS1 Content Type | Odoo field |
|
||||
+=========================================+=============+==============================+====================+=======================+
|
||||
| Serial Shipping Container Code | Package | (00)(\\d{18}) | Numeric identifier | Package name |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Global Trade Item Number (GTIN) | Unit | (01)(\\d{14}) | Numeric identifier | :guilabel:`Barcode` |
|
||||
| | Product | | | field on product form |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| GTIN of contained trade items | Unit | (02)(\\d{14}) | Numeric identifier | Packaging |
|
||||
| | Product | | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Ship to / Deliver to global | Destination | (410)(\\d{13}) | Numeric identifier | Destination |
|
||||
| location | location | | | location |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Ship / Deliver for forward | Destination | (413)(\\d{13}) | Numeric identifier | Source location |
|
||||
| | location | | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| I.D. of a physical location | Location | (414)(\\d{13}) | Numeric identifier | Location |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Batch or lot number | Lot | (10) | Alpha-numeric name | Lot |
|
||||
| | | ([!"%-/0-9:-?A-Z_a-z]{0,20}) | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Serial number | Lot | (21) | Alpha-numeric name | Serial number |
|
||||
| | | ([!"%-/0-9:-?A-Z_a-z]{0,20}) | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Packaging date (YYMMDD) | Packaging | (13)(\\d{6}) | Date | Pack date |
|
||||
| | Date | | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Best before date (YYMMDD) | Best before | (15)(\\d{6}) | Date | Best before date |
|
||||
| | Date | | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Expiration date (YYMMDD) | Expiration | (17)(\\d{6}) | Date | Expiry date |
|
||||
| | Date | | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Variable count of items | Quantity | (30)(\\d{0,8}) | Measure | UoM: Units |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Count of trade items | Quantity | (37)(\\d{0,8}) | Measure | Qty in units for |
|
||||
| | | | | containers (AI 02) |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Net weight: kilograms (kg) | Quantity | (310[0-5])(\\d{6}) | Measure | Qty in kg |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Length in meters (m) | Quantity | (311[0-5])(\\d{6}) | Measure | Qty in m |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Net volume: liters (L) | Quantity | (315[0-5])(\\d{6}) | Measure | Qty in L |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Net volume: cubic meters (m\ :sup:`3`) | Quantity | (316[0-5])(\\d{6}) | Measure | Qty in m\ :sup:`3` |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Length in inches (in) | Quantity | (321[0-5])(\\d{6}) | Measure | Qty in inches |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Net weight/volume: ounces (oz) | Quantity | (357[0-5])(\\d{6}) | Measure | Qty in oz |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Net volume: cubic feet (ft\ :sup:`3`) | Quantity | (365[0-5])(\\d{6}) | Measure | Qty in ft\ :sup:`3` |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
| Packaging type | Packaging | (91) | Alpha-numeric name | Package type |
|
||||
| | Type | ([!"%-/0-9:-?A-Z_a-z]{0,90}) | | |
|
||||
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
|
||||
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,106 @@
|
||||
====================
|
||||
Process to Transfers
|
||||
====================
|
||||
|
||||
.. _barcode/operations/intro:
|
||||
|
||||
Simple Transfers
|
||||
================
|
||||
|
||||
To process a transfer from the *Barcode* app, the first step is to go
|
||||
to *Operations*.
|
||||
|
||||
.. image:: internal/internal_01.png
|
||||
:align: center
|
||||
|
||||
Then, you have the choice to either enter an existing transfer, by going
|
||||
to the corresponding operation type and manually selecting the one you
|
||||
want to enter, or by scanning the barcode of the transfer.
|
||||
|
||||
.. image:: internal/internal_02.png
|
||||
:align: center
|
||||
|
||||
.. image:: internal/internal_03.png
|
||||
:align: center
|
||||
|
||||
From there, you will be able to scan the products that are part of the
|
||||
existing transfer and/or add new products to this transfer. Once all the
|
||||
products have been scanned, you can validate the transfer to proceed
|
||||
with the stock moves.
|
||||
|
||||
.. image:: internal/internal_04.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
If you have different storage locations in your warehouse, you can add
|
||||
additional steps for the different operation types.
|
||||
|
||||
.. _barcode/operations/scan-received-products:
|
||||
|
||||
Receipts
|
||||
========
|
||||
|
||||
When receiving a product in stock, you need to scan its barcode in order
|
||||
to identify it in the system. Once done, you can either make it enter
|
||||
the main location of the transfer, for example WH/Stock, or scan a
|
||||
location barcode to make it enter a sub-location of the main location.
|
||||
|
||||
.. image:: internal/internal_05.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
If you want the product to enter WH/Stock in our example, you can simply
|
||||
scan the next product.
|
||||
|
||||
Delivery Orders
|
||||
===============
|
||||
|
||||
When delivering a product, you have to scan the source location if it is
|
||||
different than the one initially set on the transfer. Then, you can
|
||||
start scanning the products that are delivered from this specific
|
||||
location.
|
||||
|
||||
.. image:: internal/internal_06.png
|
||||
:align: center
|
||||
|
||||
Once the different products have been scanned, you have the possibility
|
||||
to scan another location, such as WH/Stock, and another page will be
|
||||
added to your delivery order. You can move from one to the other thanks
|
||||
to the *Previous* and *Next* buttons.
|
||||
|
||||
.. image:: internal/internal_07.png
|
||||
:align: center
|
||||
|
||||
Now, you can validate your transfer. To do so, click on *Next* until
|
||||
you reach the last page of the transfer. There, you will be able to
|
||||
validate it.
|
||||
|
||||
.. image:: internal/internal_08.png
|
||||
:align: center
|
||||
|
||||
Internal Transfers
|
||||
==================
|
||||
|
||||
When realizing an internal transfer with multi-location, you first have
|
||||
to scan the source location of the product. Then, you can scan the
|
||||
product in itself, before having to scan the barcode of the destination
|
||||
location.
|
||||
|
||||
If the source and destination of the internal transfers are already
|
||||
correct, you don’t need to scan them.
|
||||
|
||||
Transfers with Tracked Products
|
||||
-------------------------------
|
||||
|
||||
If you work with products tracked by lot/serial numbers, you have two
|
||||
ways of working:
|
||||
|
||||
- If you work with serial/lot numbers taking all products into consideration, you can scan the barcode of the lot/serial number and Odoo will increase the quantity of the product, setting its lot/serial number.
|
||||
|
||||
.. image:: internal/internal_09.png
|
||||
:align: center
|
||||
|
||||
- If you have the same lot/serial number for different products, you can work by scanning the product barcode first, and then the barcode of the lot/serial number.
|
||||
|
||||
.. image:: internal/internal_10.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,17 @@
|
||||
==============================
|
||||
Create a Transfer from Scratch
|
||||
==============================
|
||||
|
||||
To create a transfer from the *Barcode* application, you first need to
|
||||
print the operation type barcodes. To do so, you can download the
|
||||
*Stock barcode sheet* from the home page of the app.
|
||||
|
||||
.. image:: transfers_scratch/transfers_scratch_01.png
|
||||
:align: center
|
||||
|
||||
Once done, you can scan the one for which you want to create a new
|
||||
document. Then, an empty document will be created and you will be able
|
||||
to scan your products to populate it.
|
||||
|
||||
.. image:: transfers_scratch/transfers_scratch_02.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,12 @@
|
||||
:nosearch:
|
||||
|
||||
=====
|
||||
Setup
|
||||
=====
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
setup/hardware
|
||||
setup/software
|
||||
@@ -0,0 +1,67 @@
|
||||
===========================
|
||||
Set up your barcode scanner
|
||||
===========================
|
||||
|
||||
.. _barcode/setup/hardware:
|
||||
|
||||
Getting started with barcode scanning in Odoo is fairly easy. Yet, a
|
||||
good user experience relies on an appropriate hardware setup. This guide
|
||||
will help you through the task of choosing and configuring the barcode
|
||||
scanner.
|
||||
|
||||
Find the barcode scanner that suits your needs
|
||||
==============================================
|
||||
|
||||
The 3 recommended type of barcode scanners to work with the Odoo
|
||||
**Inventory** and **Barcode Scanning** apps are the **USB scanner**, **the bluetooth
|
||||
scanner** and the **mobile computer scanner**.
|
||||
|
||||
.. image:: hardware/hardware02.png
|
||||
:align: center
|
||||
|
||||
- If you scan products at a computer location, the **USB scanner** is the
|
||||
way to go. Simply plug it in the computer to start scanning. Just
|
||||
make sure when you buy it that the scanner is compatible with
|
||||
your keyboard layout or can be configured to be so.
|
||||
|
||||
- The **bluetooth scanner** can be paired with a smartphone or a tablet and
|
||||
is a good choice if you want to be mobile but don't need a big
|
||||
investment. An approach is to log in Odoo on you smartphone, pair
|
||||
the bluetooth scanner with the smartphone and work in the
|
||||
warehouse with the possibility to check your smartphone
|
||||
from time to time and use the software 'manually'.
|
||||
|
||||
- For heavy use, the **mobile computer scanner** is the handiest solution.
|
||||
It consists of a small computer with a built-in barcode scanner.
|
||||
This one can turn out to be a very productive solution, however
|
||||
you need to make sure that is is capable of running Odoo smoothly.
|
||||
The most recent models using Android + Google Chrome or Windows +
|
||||
Internet Explorer Mobile should do the job. However, due to the
|
||||
variety of models and configurations on the market, it is
|
||||
essential to test it first.
|
||||
|
||||
Configure your barcode scanner
|
||||
==============================
|
||||
|
||||
Keyboard layout
|
||||
---------------
|
||||
|
||||
.. image:: hardware/hardware01.png
|
||||
:align: center
|
||||
|
||||
An USB barcode scanner needs to be configured to use the same keyboard
|
||||
layout as your operating system. Otherwise, your scanner won't translate
|
||||
characters correctly (replacing a 'A' with a 'Q' for example). Most
|
||||
scanners are configured by scanning the appropriate barcode in the user
|
||||
manual.
|
||||
|
||||
Automatic carriage return
|
||||
-------------------------
|
||||
|
||||
By default, Odoo has a 50 milliseconds delay between each successive
|
||||
scan (it helps avoid accidental double scanning). If you want to
|
||||
suppress this delay, you can configure your scanner to insert a carriage
|
||||
return at the end of each barcode. This is usually the default
|
||||
configuration and can be explicitly configured by scanning a specific
|
||||
barcode in the user manual ('CR suffix ON', 'Apply Enter for suffix',
|
||||
etc.).
|
||||
|
After Width: | Height: | Size: 492 KiB |
|
After Width: | Height: | Size: 29 KiB |
@@ -0,0 +1,77 @@
|
||||
=============================
|
||||
Activate the Barcodes in Odoo
|
||||
=============================
|
||||
|
||||
.. _inventory/barcode/software:
|
||||
|
||||
The barcode scanning features can save you a lot of time usually lost
|
||||
switching between the keyboard, the mouse and the scanner. Properly
|
||||
attributing barcodes to products, pickings locations, etc. allows you to
|
||||
work more efficiently by controlling the software almost exclusively
|
||||
with the barcode scanner.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To use this feature, you first need to activate the *Barcode*
|
||||
functionality via :menuselection:`Inventory --> Settings --> Barcode Scanner`. Once you
|
||||
have ticked the feature, you can hit save.
|
||||
|
||||
.. image:: software/software_01.png
|
||||
:align: center
|
||||
|
||||
Set Product Barcodes
|
||||
====================
|
||||
|
||||
You can easily assign barcodes to your different products via the
|
||||
*Inventory* app. To do so, go to :menuselection:`Settings --> Configure Products Barcodes`.
|
||||
|
||||
.. image:: software/software_02.png
|
||||
:align: center
|
||||
|
||||
Then, you have the possibility to assign barcodes to your products
|
||||
directly at creation on the product form.
|
||||
|
||||
.. image:: software/software_03.png
|
||||
:align: center
|
||||
|
||||
.. image:: software/software_04.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
Be careful to add barcodes directly on the product variants and not on
|
||||
the template product. Otherwise, you won’t be able to differentiate
|
||||
them.
|
||||
|
||||
Set Locations Barcodes
|
||||
======================
|
||||
|
||||
If you manage multiple locations, you will find useful to attribute a
|
||||
barcode to each location and stick it on the location. You can configure
|
||||
the locations barcodes in :menuselection:`Inventory --> Configuration --> Locations`.
|
||||
|
||||
.. image:: software/software_05.png
|
||||
:align: center
|
||||
|
||||
.. image:: software/software_06.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
You can easily print the barcode you allocate to the locations via the
|
||||
*Print* menu.
|
||||
|
||||
Barcode Formats
|
||||
===============
|
||||
|
||||
Most retail products use EAN-13 barcodes, also known as GTIN (Global Trade Identification Numbers).
|
||||
GTIN are used by companies to uniquely identify their products and services. While GTIN and UPC are
|
||||
often used synonymously, GTIN refers to the number a barcode represents, while UPC refers to the
|
||||
barcode itself. More information about GTIN can be found on the GS1 website.
|
||||
|
||||
In order to create GTIN for items, a company must have a GS1 Company Prefix. This prefix is the
|
||||
number that will appear at the beginning of each GTIN, and will identify the company as the owner of
|
||||
the barcode any the products it appears on. To learn more about GS1 Company Prefixes, or purchase a
|
||||
license for a prefix, visit the GS1 Company Prefix page.
|
||||
|
||||
Odoo users are able to use GTIN barcodes to identify their products. However, since Odoo supports
|
||||
any numeric string as a barcode, it is also possible to define a custom barcode for internal use.
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 10 KiB |