[REF] Inventory and MRP: Update TOC tree

closes odoo/documentation#5959

X-original-commit: 7b67d69abd
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
This commit is contained in:
John Holton (hojo)
2023-08-23 11:21:39 -07:00
committed by Zachary Straub (ZST)
parent bbdc160d4a
commit 3c37b2091a
79 changed files with 134 additions and 64 deletions
@@ -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 dont 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

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 0s where you did defined Ds or Ns. 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**: doesnt 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.
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

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}) | | |
+-----------------------------------------+-------------+------------------------------+--------------------+-----------------------+
Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

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 dont 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

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
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

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.).
Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

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 wont 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.
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB