[IMP] Inventory: make Storage Categories current with 18.0
closes odoo/documentation#15090 Signed-off-by: Erin Jerison (erjer) <erjer@odoo.com>
@@ -2,13 +2,13 @@
|
|||||||
Storage categories
|
Storage categories
|
||||||
==================
|
==================
|
||||||
|
|
||||||
A *storage category* is used with :doc:`putaway rules <putaway>`, as an extra location attribute to
|
A *storage category* is used with :doc:`putaway rules <putaway>` to assign a storage location to
|
||||||
automatically propose optimal storage locations for products.
|
incoming products while accounting for the capacity of that location.
|
||||||
|
|
||||||
Follow these steps to complete the setup:
|
Follow these steps to complete the setup:
|
||||||
|
|
||||||
#. :ref:`Enable the Storage Category feature <inventory/routes/enable-storage-categories>`
|
#. :ref:`Enable features in the settings <inventory/routes/enable-storage-categories>`
|
||||||
#. :ref:`Define a storage category <inventory/routes/define-storage>` with specific limitations
|
#. :ref:`Define capacity limitations <inventory/routes/define-storage>`
|
||||||
#. Assign a :ref:`category to storage locations <inventory/routes/assign-location>`
|
#. Assign a :ref:`category to storage locations <inventory/routes/assign-location>`
|
||||||
#. Add the storage category as an attribute to a :ref:`putaway rule
|
#. Add the storage category as an attribute to a :ref:`putaway rule
|
||||||
<inventory/routes/set-putaway-attribute>`
|
<inventory/routes/set-putaway-attribute>`
|
||||||
@@ -17,9 +17,10 @@ Follow these steps to complete the setup:
|
|||||||
:doc:`putaway`
|
:doc:`putaway`
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Assigning categories to storage locations tells Odoo these locations meet specific
|
Assigning categories to storage locations tells Odoo these locations meet specific requirements,
|
||||||
requirements, such as temperature or accessibility. Odoo then evaluates these locations, based on
|
such as temperature or accessibility. Odoo then evaluates these locations, based on defined
|
||||||
defined capacity, and recommends the best one on the warehouse transfer form.
|
capacity, and recommends the best one on the warehouse transfer form.
|
||||||
|
|
||||||
.. _inventory/routes/enable-storage-categories:
|
.. _inventory/routes/enable-storage-categories:
|
||||||
|
|
||||||
Configuration
|
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
|
Then, in the :guilabel:`Warehouse` section, ensure the :guilabel:`Storage Locations` and
|
||||||
:guilabel:`Multi-Step Routes` features are enabled.
|
: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
|
.. image:: storage_category/enable-categories.png
|
||||||
:align: center
|
:alt: Enable Storage Locations and Multi-Step Routes to enable storage categories.
|
||||||
:alt: Show the Storage Categories feature.
|
|
||||||
|
|
||||||
.. _inventory/routes/define-storage:
|
.. _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.
|
locations, in order to decide the optimal storage location.
|
||||||
|
|
||||||
To create a storage category, go to :menuselection:`Inventory app --> Configuration --> Storage
|
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`
|
On the storage category form, type a name for the category in the :guilabel:`Storage Category`
|
||||||
field.
|
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 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
|
- :guilabel:`If products are the same`: a product can be added there only if the same product is
|
||||||
already there.
|
already there.
|
||||||
- :guilabel:`Allow mixed products`: several different products can be stored in this location at
|
- :guilabel:`Allow mixed products`: several different products can be stored in this location at the
|
||||||
the same time.
|
same time.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
When clicked, the :guilabel:`Location` smart button shows which storage locations the category
|
When clicked, the :icon:`oi-arrows-v` :guilabel:`Locations` smart button shows which storage
|
||||||
has been assigned to.
|
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
|
Capacity by weight
|
||||||
------------------
|
------------------
|
||||||
@@ -91,7 +101,6 @@ their capacities in the :guilabel:`Quantity` field.
|
|||||||
of a storage category form.
|
of a storage category form.
|
||||||
|
|
||||||
.. image:: storage_category/capacity-by-product.png
|
.. image:: storage_category/capacity-by-product.png
|
||||||
:align: center
|
|
||||||
:alt: Show storage category limiting by product count.
|
:alt: Show storage category limiting by product count.
|
||||||
|
|
||||||
.. _inventory/routes/set-capacity-package:
|
.. _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,
|
possible to ensure real-time storage capacity checks, based on package types (e.g., crates, bins,
|
||||||
boxes, etc.).
|
boxes, etc.).
|
||||||
|
|
||||||
.. important::
|
Create the :ref:`package type <inventory/warehouses_storage/package-type>` before assigning it to a
|
||||||
Enable the :guilabel:`Packages` feature in :menuselection:`Inventory app --> Configuration -->
|
storage category. Create it on the :guilabel:`Inventory` tab of the product form (in the
|
||||||
Settings` to show the :guilabel:`Capacity by Package` tab.
|
:guilabel:`Packaging` section), or create it from the :guilabel:`Product Packagings` page. Be sure
|
||||||
|
to set the :guilabel:`Package Type`.
|
||||||
|
|
||||||
.. example::
|
.. 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.
|
category.
|
||||||
|
|
||||||
In the :guilabel:`Capacity by Package` tab, specify the number of packages for the designated
|
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.
|
:guilabel:`Package Type`, and set a maximum of `2.00` `Pallets` for a specific location.
|
||||||
|
|
||||||
.. image:: storage_category/storage-category.png
|
.. image:: storage_category/storage-category.png
|
||||||
:align: center
|
:alt: Create a storage category.
|
||||||
:alt: Create a storage category on the page.
|
|
||||||
|
.. 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:
|
.. _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.
|
Then, select the created category in the :guilabel:`Storage Category` field.
|
||||||
|
|
||||||
.. example::
|
.. example::
|
||||||
Assign the `High Frequency pallets` storage category (which limits pallets stored at any location
|
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.
|
to two pallets) to the `WH/Stock/Pallets/PAL1` sub-location.
|
||||||
|
|
||||||
.. image:: storage_category/location-storage-category.png
|
.. image:: storage_category/location-storage-category.png
|
||||||
:align: center
|
|
||||||
:alt: When a Storage Category is created, it can be linked to a warehouse location.
|
:alt: When a Storage Category is created, it can be linked to a warehouse location.
|
||||||
|
|
||||||
.. _inventory/routes/set-putaway-attribute:
|
.. _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
|
<inventory/routes/assign-location>` set up, create the :doc:`putaway rule <putaway>` by navigating
|
||||||
to :menuselection:`Inventory app --> Configuration --> Putaway Rules`.
|
to :menuselection:`Inventory app --> Configuration --> Putaway Rules`.
|
||||||
|
|
||||||
Click the :guilabel:`Create` button to create the putaway rule. In the :guilabel:`Having Category`
|
Click the :guilabel:`New` button to create the putaway rule. Specify a location to store to in the
|
||||||
field of the new putaway rule form, select the storage category.
|
: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::
|
.. example::
|
||||||
Continuing the example from above, the `High Frequency Pallets` storage category is assigned to
|
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`
|
the putaway rule directing pallets of lemonade to locations with the `High frequency pallets`
|
||||||
storage category :ref:`assigned to them <inventory/routes/assign-location>`.
|
storage category :ref:`assigned to them <inventory/routes/assign-location>`.
|
||||||
|
|
||||||
.. image:: storage_category/smart-putaways.png
|
.. image:: storage_category/smart-putaways.png
|
||||||
:align: center
|
|
||||||
:alt: Storage Categories used in a variety of putaway rules.
|
:alt: Storage Categories used in a variety of putaway rules.
|
||||||
|
|
||||||
Use case: limit capacity by package
|
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
|
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>`.
|
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.
|
`PAL1` and `PAL2` locations.
|
||||||
|
|
||||||
Then, :ref:`putaway rules <inventory/routes/putaway-rule>` are set, so that any pallets received in
|
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.
|
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:
|
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` 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` 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` 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 |