[IMP] Inventory: make Storage Categories current with 18.0
closes odoo/documentation#15278
X-original-commit: b498a0a473
Signed-off-by: Erin Jerison (erjer) <erjer@odoo.com>
@@ -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>`
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
@@ -65,12 +66,21 @@ product:
|
||||
- :guilabel:`If location is empty`: a product can be added there only if the location is empty.
|
||||
- :guilabel:`If products are the same`: a product can be added there only if the same product is
|
||||
already there.
|
||||
- :guilabel:`Allow mixed products`: several different products can be stored in this location at
|
||||
the same time.
|
||||
- :guilabel:`Allow mixed products`: several different products can be stored in this location at 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
|
||||
------------------
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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
|
||||
@@ -162,16 +190,23 @@ 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.
|
||||
|
||||
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 14 KiB |