-
Notifications
You must be signed in to change notification settings - Fork 7.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ADD] inventory: compare packs and uom #11424
base: 16.0
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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 | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For the following table, I'd suggest considering the removal of periods attached to incomplete sentences; falling in line with our formatting guidelines when dealing with such explanatory lines (e.g. removing periods when a complete sentence isn't used following a colon). Just something to consider during your revision |
||||||||||||||||||||||||||||||
* - 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. | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
OPTIONAL; added comma to enhance the pacing of the sentence |
||||||||||||||||||||||||||||||
* - Smooth barcode operations | ||||||||||||||||||||||||||||||
- Not available. | ||||||||||||||||||||||||||||||
- Requires scanning both the package and individual items for reception. (even if there are 30 | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
only need the comma after 'e.g.' when more than one example follows. |
||||||||||||||||||||||||||||||
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). | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
same reasoning as above |
||||||||||||||||||||||||||||||
- Barcodes set at the packaging type level (e.g., for a pack of 6). | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Same reasoning as above |
||||||||||||||||||||||||||||||
* - 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 | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
you may want to consider using a more descriptive label for the hyperlink here -- just a suggestion |
||||||||||||||||||||||||||||||
<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. | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
OPTIONAL: added comma to enhance sentence clarity and pacing |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
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. | ||||||||||||||||||||||||||||||
Comment on lines
+122
to
+128
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
OPTIONAL: since the sentences that follow the bolded distinctions, I believe it would look best (from a formatting standpoint) to add a colon, instead of a period, to better imply that the sentence following it elaborates on that specific distinction. |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
Capturing product information using barcode | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
SUGGESTION: It's my understanding that we are to avoid using '-ing' words in headers |
||||||||||||||||||||||||||||||
------------------------------------------- | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
An Odoo user expects the Barcode app to display the typical storage location of a product by | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||
scanning a barcode for a container. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
**Packages** was the most suitable. When the :ref:`appropriate setting is enabled | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
optional: opting for italics here to allude to an option within an app. Also, it helps differentiate it from the bolded app name used in the prior sentence. |
||||||||||||||||||||||||||||||
<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. | ||||||||||||||||||||||||||||||
Comment on lines
+138
to
+140
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
.. _inventory/product_management/lots-uom: | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
Tracking different units of measure in storage | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
SUGGESTION: It's my understanding that we are to avoid using '-ing' words in headers |
||||||||||||||||||||||||||||||
---------------------------------------------- | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
optional: opting for italics here to allude to an option within an app. Also, it helps differentiate it from the bolded app name used in the prior sentence. |
||||||||||||||||||||||||||||||
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: | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -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) | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
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 | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this, and the following examples, be reformatted as 'Example' admonitions? What are your thoughts?