Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
Storage categories
==================

A *storage category* is used with :doc:`putaway rules <putaway>`, as an extra location attribute to
automatically propose optimal storage locations for products.
A *storage category* is used with :doc:`putaway rules <putaway>` to assign a storage location to
incoming products while accounting for the capacity of that location.

Follow these steps to complete the setup:

#. :ref:`Enable the Storage Category feature <inventory/routes/enable-storage-categories>`
#. :ref:`Define a storage category <inventory/routes/define-storage>` with specific limitations
#. :ref:`Enable features in the settings <inventory/routes/enable-storage-categories>`
#. :ref:`Define capacity limitations <inventory/routes/define-storage>`
#. Assign a :ref:`category to storage locations <inventory/routes/assign-location>`
#. Add the storage category as an attribute to a :ref:`putaway rule
<inventory/routes/set-putaway-attribute>`
Expand All @@ -17,9 +17,10 @@ Follow these steps to complete the setup:
:doc:`putaway`

.. note::
Assigning categories to storage locations tells Odoo these locations meet specific
requirements, such as temperature or accessibility. Odoo then evaluates these locations, based on
defined capacity, and recommends the best one on the warehouse transfer form.
Assigning categories to storage locations tells Odoo these locations meet specific requirements,
such as temperature or accessibility. Odoo then evaluates these locations, based on defined
capacity, and recommends the best one on the warehouse transfer form.

.. _inventory/routes/enable-storage-categories:

Configuration
Expand All @@ -29,11 +30,11 @@ To enable storage categories, go to :menuselection:`Inventory app --> Configurat
Then, in the :guilabel:`Warehouse` section, ensure the :guilabel:`Storage Locations` and
:guilabel:`Multi-Step Routes` features are enabled.

Next, activate the :guilabel:`Storage Categories` feature. Finally, click :guilabel:`Save`.
If intending to set capacities by :ref:`package type <inventory/routes/set-capacity-package>`, also
make sure :guilabel:`Packages` is enabled. Click :guilabel:`Save`.

.. image:: storage_category/enable-categories.png
:align: center
:alt: Show the Storage Categories feature.
:alt: Enable Storage Locations and Multi-Step Routes to enable storage categories.

.. _inventory/routes/define-storage:

Expand All @@ -44,7 +45,7 @@ A storage category with specific limitations **must** be created first, before i
locations, in order to decide the optimal storage location.

To create a storage category, go to :menuselection:`Inventory app --> Configuration --> Storage
Categories`, and click :guilabel:`Create`.
Categories`, and click :guilabel:`New`.

On the storage category form, type a name for the category in the :guilabel:`Storage Category`
field.
Expand All @@ -69,8 +70,17 @@ product:
the same time.

.. tip::
When clicked, the :guilabel:`Location` smart button shows which storage locations the category
has been assigned to.
When clicked, the :icon:`oi-arrows-v` :guilabel:`Locations` smart button shows which storage
locations the category has been assigned to.

.. important::
Odoo does **not** automatically split quantities across multiple storage locations. If an
incoming receipt contains several units or packages and the first recommended location exceeds
its capacity, Odoo still routes all items to that same location instead of selecting another one
with available space.

*(Example: If a location can hold 10 units and 12 units arrive, all 12 are still assigned to that
location.)*

Capacity by weight
------------------
Expand All @@ -91,7 +101,6 @@ their capacities in the :guilabel:`Quantity` field.
of a storage category form.

.. image:: storage_category/capacity-by-product.png
:align: center
:alt: Show storage category limiting by product count.

.. _inventory/routes/set-capacity-package:
Expand All @@ -103,20 +112,29 @@ For companies using :doc:`packages <../../product_management/configure/package>`
possible to ensure real-time storage capacity checks, based on package types (e.g., crates, bins,
boxes, etc.).

.. important::
Enable the :guilabel:`Packages` feature in :menuselection:`Inventory app --> Configuration -->
Settings` to show the :guilabel:`Capacity by Package` tab.
Create the :ref:`package type <inventory/warehouses_storage/package-type>` before assigning it to a
storage category. Create it on the :guilabel:`Inventory` tab of the product form (in the
:guilabel:`Packaging` section), or create it from the :guilabel:`Product Packagings` page. Be sure
to set the :guilabel:`Package Type`.

.. example::
Create putaway rules for pallet-stored items, by creating the `High Frequency pallets` storage
Create putaway rules for pallet-stored items, by creating the `High frequency pallets` storage
category.

In the :guilabel:`Capacity by Package` tab, specify the number of packages for the designated
:guilabel:`Package Type`, and set a maximum of `2.00` `Pallets` for a specific location.

.. image:: storage_category/storage-category.png
:align: center
:alt: Create a storage category on the page.
:alt: Create a storage category.

.. important::
Odoo does **not** automatically split quantities across multiple storage locations. If an
incoming receipt contains several units or packages and the first recommended location exceeds
its capacity, Odoo still routes all items to that same location instead of selecting another one
with available space.

*(Example: If a location can hold 10 units and 12 units arrive, all 12 are still assigned to that
location.)*

.. _inventory/routes/assign-location:

Expand All @@ -128,11 +146,10 @@ Once the storage category is created, assign it to a location. Navigate to the l
Then, select the created category in the :guilabel:`Storage Category` field.

.. example::
Assign the `High Frequency pallets` storage category (which limits pallets stored at any location
to two pallets) to the `WH/Stock/pallets/PAL 1` sub-location.
Assign the `High frequency pallets` storage category (which limits pallets stored at any location
to two pallets) to the `WH/Stock/Pallets/PAL1` sub-location.

.. image:: storage_category/location-storage-category.png
:align: center
:alt: When a Storage Category is created, it can be linked to a warehouse location.

.. _inventory/routes/set-putaway-attribute:
Expand All @@ -144,16 +161,27 @@ With the :ref:`storage category <inventory/routes/define-storage>` and :ref:`loc
<inventory/routes/assign-location>` set up, create the :doc:`putaway rule <putaway>` by navigating
to :menuselection:`Inventory app --> Configuration --> Putaway Rules`.

Click the :guilabel:`Create` button to create the putaway rule. In the :guilabel:`Having Category`
field of the new putaway rule form, select the storage category.
Click the :guilabel:`New` button to create the putaway rule. Specify a location to store to in the
:guilabel:`Store to` field.

Use the :guilabel:`Sublocation` field to specify that you want to use a sublocation with the storage
category:

- :guilabel:`Last Used`: The last location that had a move associated with it for that product or
product category is used. If there is no last location used, the destination is whatever is
specified in the :guilabel:`Store to` field.
- :guilabel:`Closest Location`: The locations specified as part of the storage category are used. A
storage category is mandatory in the :guilabel:`Having Category` field.

If using multiple storage locations for a single storage category, create putaway rules for each
location to ensure that if one storage location is in use, the secondary locations must be used.

.. example::
Continuing the example from above, the `High Frequency Pallets` storage category is assigned to
the putaway rule directing pallets of lemonade to locations with the `High Frequency Pallets`
Continuing the example from above, the `High frequency pallets` storage category is assigned to
the putaway rule directing pallets of lemonade to locations with the `High frequency pallets`
storage category :ref:`assigned to them <inventory/routes/assign-location>`.

.. image:: storage_category/smart-putaways.png
:align: center
:alt: Storage Categories used in a variety of putaway rules.

Use case: limit capacity by package
Expand All @@ -162,16 +190,24 @@ Use case: limit capacity by package
To limit the capacity of a storage location by a specific number of packages, :ref:`create a storage
category with a Capacity By Package <inventory/routes/set-capacity-package>`.

Continuing the example from above, the `High Frequency Pallets` storage category is assigned to the
Continuing the example from above, the `High frequency pallets` storage category is assigned to the
`PAL1` and `PAL2` locations.

Then, :ref:`putaway rules <inventory/routes/putaway-rule>` are set, so that any pallets received in
the warehouse are directed to be stored in `PAL1` and `PAL2` locations.

Depending on the number of pallets on-hand at each of the storage locations, when one pallet of
Depending on the number of pallets on-hand at each of the storage locations, when two pallets of
lemonade cans is received, the following scenarios happen:

- If `PAL1` and `PAL2` are empty, the pallet is redirected to `WH/Stock/Pallets/PAL1`.
- If `PAL1` is full, the pallet is redirected to `WH/Stock/Pallets/PAL2`.
- If `PAL1` and `PAL2` are full, the pallet is redirected to `WH/Stock/Pallets`.
- If `PAL1` is partially full (for example, with one pallet), Odoo treats more than one received
pallet as a single pallet on the receipt. You must manually separate the two pallets into separate
storage locations. Click the :guilabel:`Open Move` icon to the right of the :guilabel:`Units`
field, and then in the :guilabel:`Open: Stock move` box, click :guilabel:`Add a line`. Finally,
split the receipt by quantity into separate locations, then click :guilabel:`Save`.

.. image:: storage_category/package-stock-move.png
:alt: Update the Stock move box to route pallets to the correct locations before validating.

- If `PAL1` and `PAL2` are full, the pallet is redirected to `WH/Stock/Pallets`.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.