Skip to content

Commit c1c632c

Browse files
committed
[ADD] inventory: compare packs and uom
1 parent 4d079db commit c1c632c

File tree

3 files changed

+172
-1
lines changed

3 files changed

+172
-1
lines changed

content/applications/inventory_and_mrp/inventory/product_management/configure.rst

Lines changed: 158 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,166 @@
1-
:nosearch:
1+
:show-content:
2+
:hide-page-toc:
3+
4+
.. |UoM| replace:: :abbr:`UoM (Unit of Measure)`
5+
.. |UoMs| replace:: :abbr:`UoMs (Units of Measure)`
6+
27

38
=================
49
Configure product
510
=================
611

12+
A group of products in Odoo can be further defined using:
13+
14+
- :doc:`Units of measure (UoM) <configure/uom>`: a standard quantity for specifying product amounts
15+
(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in
16+
Odoo, such as centimeters to feet.
17+
18+
- *Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.*
19+
20+
- :doc:`configure/package`: A physical container used to group products together, regardless of
21+
whether they are the same or different.
22+
23+
- *Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a
24+
shelf.*
25+
26+
- :doc:`configure/packaging`: groups the *same* products together to receive or sell them in
27+
specified quantities.
28+
29+
- *Ex: Cans of soda sold in packs of six, twelve, or twenty-four.*
30+
31+
Comparison
32+
==========
33+
34+
This table provides a detailed comparison of units of measure, packages, and packaging to help
35+
businesses evaluate which best suits their requirements.
36+
37+
.. list-table::
38+
:header-rows: 1
39+
:stub-columns: 1
40+
41+
* - Feature
42+
- Unit of measure
43+
- Packages
44+
- Packaging
45+
* - Purpose
46+
- Standardized measurement for product units (e.g., cm, lb, L).
47+
- Tracks the specific physical container and its contents.
48+
- Groups a fixed number of items together for easier management (e.g., packs of 6, 12 or 24).
49+
* - Product uniformity
50+
- Defined per product; saved as one |UoM| in the database.
51+
- Allows mixed products.
52+
- Same products only.
53+
* - Flexible
54+
- Converts between vendor/customer |UoMs| and database |UoM|.
55+
- Items can be added or removed from the container.
56+
- Quantities are fixed (e.g., always packs of 6, 12 or 24).
57+
* - Complexity
58+
- Simplest for unit conversions.
59+
- More complex due to container-level inventory tracking.
60+
- Simpler; suitable for uniform product groupings.
61+
* - Inventory tracking
62+
- Tracks product quantities within the warehouse in the specific |UoM| defined in the product
63+
form.
64+
- Tracks package location and contents within the warehouse.
65+
- Tracks grouped quantities but not individual items' locations.
66+
* - Smooth barcode operations
67+
- Not available.
68+
- Requires scanning both the package and individual items for reception. (even if there are 30
69+
items in a package). Can enable the :ref:`Move Entire Packages
70+
<inventory/product_management/move-entire-pack>` feature to update the package's contained
71+
items' locations, when moving the package
72+
- Scanning a packaging barcode automatically records all included units. (e.g., 1 pack = 12
73+
units).
74+
* - Product lookup
75+
- Not available.
76+
- Scanning a product's barcode identifies its typical storage location in the Odoo database
77+
- Barcode identifies grouped quantity, not storage location.
78+
* - Unique barcodes
79+
- Not available.
80+
- Unique barcodes for individual packages (e.g., Pallet #12).
81+
- Barcodes set at the packaging type level (e.g., for a pack of 6).
82+
* - Reusability
83+
- Not applicable.
84+
- Can be disposable or reusable, configured via the :ref:`Package Use
85+
<inventory/warehouses_storage/cluster-pack>` field.
86+
- Disposable only.
87+
* - Container weight
88+
- Not applicable.
89+
- Weight of the container itself is included in the *Shipping Weight* field of a package
90+
(:menuselection:`Inventory app --> Products --> Packages`).
91+
- Weight of the container is defined in the *Package Type* settings.
92+
* - Lot/serial number tracking
93+
- Requires manual adjustments to track |UoMs| via lots. (See :ref:`use case
94+
<inventory/product_management/lots-uom>` for details)
95+
- Applies only to contained products.
96+
- Applies to both contained products and the container.
97+
* - Custom routes
98+
- Routes cannot be set.
99+
- Routes cannot be set.
100+
- Routes can define specific warehouse paths for a particular packaging type.
101+
102+
Use cases
103+
=========
104+
105+
After comparing the various features, consider how these businesses, with various inventory
106+
management and logistics workflows came to their decision.
107+
108+
Pallets of items using packaging
109+
--------------------------------
110+
111+
A warehouse receives shipments of soap organized on physical pallets, each containing 96 bars. These
112+
pallets are used for internal transfers and are also sold as standalone units. For logistical
113+
purposes, the pallet's weight must be included in the total shipping weight for certain deliveries.
114+
Additionally, the pallet requires a barcode to facilitate tracking, and individual bars of soap must
115+
be tracked as they are removed from the pallet.
116+
117+
After evaluating various options, **packaging** was the most suitable solution. Packaging allows a
118+
barcode to be assigned to the pallet, indicating it is a "pallet type" containing 96 soap bars. This
119+
barcode streamlines operations by automatically registering the grouped quantity. However, there are
120+
important distinctions:
121+
122+
- **Tracking individual items within packaging**. Once items are removed from the pallet, each bar
123+
of soap retains its individual product barcode for separate tracking.
124+
- **Packaging barcodes are type-specific, not unique**. While a barcode can be assigned to represent
125+
a "pallet of 96 soap bars," it does not uniquely identify individual pallets (e.g., Pallet #1,
126+
Pallet #2).
127+
- **Less flexibility for mixed products**. Packaging treats the 96 bars as a single product, which
128+
works well for uniform shipments but does not accommodate mixed or variable quantities.
129+
130+
Capturing product information using barcode
131+
-------------------------------------------
132+
133+
An Odoo user expects the Barcode app to display the typical storage location of a product by
134+
scanning a barcode for a container.
135+
136+
**Packages** was the most suitable. When the :ref:`appropriate setting is enabled
137+
<inventory/warehouses_storage/enable-package>`, scanning a package barcode displays its contents in
138+
the Barcode app. Packages represent physical containers, enabling detailed tracking of the items
139+
they hold. Scanning a package provides visibility into its contents and facilitates operations like
140+
inventory moves.
141+
142+
.. _inventory/product_management/lots-uom:
143+
144+
Tracking different units of measure in storage
145+
----------------------------------------------
146+
147+
A fruit juice distributor tracks multiple |UoMs| for their operations:
148+
149+
- Fruits are purchased in tons.
150+
- Juice is produced and stored in kilograms.
151+
- Small samples are stored in grams for recipe testing.
152+
153+
**Unit of Measure** was most suitable. Odoo automatically converts tons to kilograms during
154+
receipts. However, since Odoo tracks only one |UoM| per product in the database, the company uses
155+
lot numbers to differentiate |UoMs|:
156+
157+
- LOT1: Grams (g)
158+
- LOT2: Kilograms (kg)
159+
160+
Manual inventory adjustments are required to convert between lots, such as subtracting 1 kg from
161+
LOT2 to add 1,000 g to LOT1. While functional, this workaround can be time-consuming and prone to
162+
errors.
163+
7164
.. toctree::
8165
:titlesonly:
9166

content/applications/inventory_and_mrp/inventory/product_management/configure/package.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ the :guilabel:`Operations` heading, activate the :guilabel:`Packages` feature. T
4545
:align: center
4646
:alt: Activate the *Packages* setting in Inventory > Configuration > Settings.
4747

48+
.. _inventory/product_management/move-entire-pack:
49+
50+
When moving packages internally, the *Move Entire Packages* feature can be enabled on an operation
51+
type to update a package's contained item's location upon updating the package's location.
52+
53+
To do that, go to :menuselection:`Inventory app --> Configuration --> Operations Types` and select
54+
the desired operation that this feature will apply to. (May have to set it for multiple)
55+
56+
On the operation type page, in the :guilabel:`Packages` section, tick the :guilabel:`Move Entire
57+
Packages` checkbox.
58+
59+
.. image:: package/move-entire.png
60+
:alt: Activate the Move Entire Packages setting.
61+
4862
.. _inventory/warehouses_storage/pack:
4963

5064
Pack items
3.12 KB
Loading

0 commit comments

Comments
 (0)