diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.rst b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.rst index d2b5f0ab6e..4a73a1b2e2 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.rst @@ -2,13 +2,13 @@ Storage categories ================== -A *storage category* is used with :doc:`putaway rules `, as an extra location attribute to -automatically propose optimal storage locations for products. +A *storage category* is used with :doc:`putaway rules ` 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 ` -#. :ref:`Define a storage category ` with specific limitations +#. :ref:`Enable features in the settings ` +#. :ref:`Define capacity limitations ` #. Assign a :ref:`category to storage locations ` #. Add the storage category as an attribute to a :ref:`putaway rule ` @@ -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 `, 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. @@ -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 ------------------ @@ -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 ` 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 ` and :ref:`loc ` set up, create the :doc:`putaway rule ` 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 `. .. 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,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 `. -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 ` 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`. diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/capacity-by-product.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/capacity-by-product.png index e27bccfc8c..96bef84958 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/capacity-by-product.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/capacity-by-product.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/enable-categories.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/enable-categories.png index 850dbae337..0fc413e086 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/enable-categories.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/enable-categories.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/location-storage-category.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/location-storage-category.png index ed1ade0d48..e00b7b31db 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/location-storage-category.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/location-storage-category.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/package-stock-move.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/package-stock-move.png new file mode 100644 index 0000000000..bb77d12054 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/package-stock-move.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/smart-putaways.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/smart-putaways.png index f3444102e9..5743a164ca 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/smart-putaways.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/smart-putaways.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/storage-category.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/storage-category.png index 2af94ec88c..89096fe1f4 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/storage-category.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/storage-category.png differ