Skip to content

Commit

Permalink
[ADD] inventory: compare packs and uom
Browse files Browse the repository at this point in the history
  • Loading branch information
Felicious committed Nov 21, 2024
1 parent 4d079db commit c1c632c
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,9 +1,166 @@
:nosearch:
:show-content:
:hide-page-toc:

.. |UoM| replace:: :abbr:`UoM (Unit of Measure)`
.. |UoMs| replace:: :abbr:`UoMs (Units of Measure)`


=================
Configure product
=================

A group of products in Odoo can be further defined using:

- :doc:`Units of measure (UoM) <configure/uom>`: a standard quantity for specifying product amounts
(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in
Odoo, such as centimeters to feet.

- *Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.*

- :doc:`configure/package`: A physical container used to group products together, regardless of
whether they are the same or different.

- *Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a
shelf.*

- :doc:`configure/packaging`: groups the *same* products together to receive or sell them in
specified quantities.

- *Ex: Cans of soda sold in packs of six, twelve, or twenty-four.*

Comparison
==========

This table provides a detailed comparison of units of measure, packages, and packaging to help
businesses evaluate which best suits their requirements.

.. list-table::
:header-rows: 1
:stub-columns: 1

* - Feature
- Unit of measure
- Packages
- Packaging
* - Purpose
- Standardized measurement for product units (e.g., cm, lb, L).
- Tracks the specific physical container and its contents.
- Groups a fixed number of items together for easier management (e.g., packs of 6, 12 or 24).
* - Product uniformity
- Defined per product; saved as one |UoM| in the database.
- Allows mixed products.
- Same products only.
* - Flexible
- Converts between vendor/customer |UoMs| and database |UoM|.
- Items can be added or removed from the container.
- Quantities are fixed (e.g., always packs of 6, 12 or 24).
* - Complexity
- Simplest for unit conversions.
- More complex due to container-level inventory tracking.
- Simpler; suitable for uniform product groupings.
* - Inventory tracking
- Tracks product quantities within the warehouse in the specific |UoM| defined in the product
form.
- Tracks package location and contents within the warehouse.
- Tracks grouped quantities but not individual items' locations.
* - Smooth barcode operations
- Not available.
- Requires scanning both the package and individual items for reception. (even if there are 30
items in a package). Can enable the :ref:`Move Entire Packages
<inventory/product_management/move-entire-pack>` feature to update the package's contained
items' locations, when moving the package
- Scanning a packaging barcode automatically records all included units. (e.g., 1 pack = 12
units).
* - Product lookup
- Not available.
- Scanning a product's barcode identifies its typical storage location in the Odoo database
- Barcode identifies grouped quantity, not storage location.
* - Unique barcodes
- Not available.
- Unique barcodes for individual packages (e.g., Pallet #12).
- Barcodes set at the packaging type level (e.g., for a pack of 6).
* - Reusability
- Not applicable.
- Can be disposable or reusable, configured via the :ref:`Package Use
<inventory/warehouses_storage/cluster-pack>` field.
- Disposable only.
* - Container weight
- Not applicable.
- Weight of the container itself is included in the *Shipping Weight* field of a package
(:menuselection:`Inventory app --> Products --> Packages`).
- Weight of the container is defined in the *Package Type* settings.
* - Lot/serial number tracking
- Requires manual adjustments to track |UoMs| via lots. (See :ref:`use case
<inventory/product_management/lots-uom>` for details)
- Applies only to contained products.
- Applies to both contained products and the container.
* - Custom routes
- Routes cannot be set.
- Routes cannot be set.
- Routes can define specific warehouse paths for a particular packaging type.

Use cases
=========

After comparing the various features, consider how these businesses, with various inventory
management and logistics workflows came to their decision.

Pallets of items using packaging
--------------------------------

A warehouse receives shipments of soap organized on physical pallets, each containing 96 bars. These
pallets are used for internal transfers and are also sold as standalone units. For logistical
purposes, the pallet's weight must be included in the total shipping weight for certain deliveries.
Additionally, the pallet requires a barcode to facilitate tracking, and individual bars of soap must
be tracked as they are removed from the pallet.

After evaluating various options, **packaging** was the most suitable solution. Packaging allows a
barcode to be assigned to the pallet, indicating it is a "pallet type" containing 96 soap bars. This
barcode streamlines operations by automatically registering the grouped quantity. However, there are
important distinctions:

- **Tracking individual items within packaging**. Once items are removed from the pallet, each bar
of soap retains its individual product barcode for separate tracking.
- **Packaging barcodes are type-specific, not unique**. While a barcode can be assigned to represent
a "pallet of 96 soap bars," it does not uniquely identify individual pallets (e.g., Pallet #1,
Pallet #2).
- **Less flexibility for mixed products**. Packaging treats the 96 bars as a single product, which
works well for uniform shipments but does not accommodate mixed or variable quantities.

Capturing product information using barcode
-------------------------------------------

An Odoo user expects the Barcode app to display the typical storage location of a product by
scanning a barcode for a container.

**Packages** was the most suitable. When the :ref:`appropriate setting is enabled
<inventory/warehouses_storage/enable-package>`, scanning a package barcode displays its contents in
the Barcode app. Packages represent physical containers, enabling detailed tracking of the items
they hold. Scanning a package provides visibility into its contents and facilitates operations like
inventory moves.

.. _inventory/product_management/lots-uom:

Tracking different units of measure in storage
----------------------------------------------

A fruit juice distributor tracks multiple |UoMs| for their operations:

- Fruits are purchased in tons.
- Juice is produced and stored in kilograms.
- Small samples are stored in grams for recipe testing.

**Unit of Measure** was most suitable. Odoo automatically converts tons to kilograms during
receipts. However, since Odoo tracks only one |UoM| per product in the database, the company uses
lot numbers to differentiate |UoMs|:

- LOT1: Grams (g)
- LOT2: Kilograms (kg)

Manual inventory adjustments are required to convert between lots, such as subtracting 1 kg from
LOT2 to add 1,000 g to LOT1. While functional, this workaround can be time-consuming and prone to
errors.

.. toctree::
:titlesonly:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,20 @@ the :guilabel:`Operations` heading, activate the :guilabel:`Packages` feature. T
:align: center
:alt: Activate the *Packages* setting in Inventory > Configuration > Settings.

.. _inventory/product_management/move-entire-pack:

When moving packages internally, the *Move Entire Packages* feature can be enabled on an operation
type to update a package's contained item's location upon updating the package's location.

To do that, go to :menuselection:`Inventory app --> Configuration --> Operations Types` and select
the desired operation that this feature will apply to. (May have to set it for multiple)

On the operation type page, in the :guilabel:`Packages` section, tick the :guilabel:`Move Entire
Packages` checkbox.

.. image:: package/move-entire.png
:alt: Activate the Move Entire Packages setting.

.. _inventory/warehouses_storage/pack:

Pack items
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c1c632c

Please sign in to comment.