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 2d5084f81a..81edf550f6 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 @@ -3,7 +3,10 @@ Storage categories ================== 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. +incoming products while accounting for the capacity of that location. 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. Follow these steps to complete the setup: @@ -16,33 +19,57 @@ Follow these steps to complete the setup: .. seealso:: :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. - .. _inventory/routes/enable-storage-categories: -Configuration -============= +Enable storage categories +========================= To enable storage categories, go to :menuselection:`Inventory app --> Configuration --> Settings`. -Then, in the :guilabel:`Warehouse` section, ensure the :guilabel:`Storage Locations` and +Then, in the *Warehouse* section, ensure the :guilabel:`Storage Locations` and :guilabel:`Multi-Step Routes` features are enabled. -If intending to set capacities by :ref:`package type `, also -make sure :guilabel:`Packages` is enabled. Click :guilabel:`Save`. +To set capacities by :ref:`package type `, also +make sure :guilabel:`Packages` is enabled in the *Operations* section. Click :guilabel:`Save`. .. image:: storage_category/enable-categories.png :alt: Enable Storage Locations and Multi-Step Routes to enable storage categories. +Storage location setup +====================== + +Set up storage locations to work with the storage category. A parent location must be set up, with +child locations (or *sublocations*) assigned to it. This is because the putaway rule's :ref:`Store +to ` location will be set to the parent location, and the +:ref:`storage category ` will be set to the child location. + +Go to :menuselection:`Inventory app --> Configuration --> Locations`. + +First, set up a parent location. This can be as simple as the default `WH/Stock` location. +Alternatively, create a new parent location by clicking the :guilabel:`New` button on the +:guilabel:`Locations` page. On this parent location form, specify a :guilabel:`Location Name` and +:guilabel:`Parent Location`. Select :guilabel:`Internal Location` as the :guilabel:`Location Type`. + +Then, create *sublocations* of this parent location by clicking the :guilabel:`New` button. On the +location form, specify a :guilabel:`Location Name`, and set the :guilabel:`Parent Location` to the +parent location that was just created. + +.. example:: + A beverage company stores all of its cans of lemonade on pallets in one section of its warehouse. + + First, they create a location named `Pallets` in the `WH/Stock` location. Then, they create two + sublocations, named `PAL1` and `PAL2`. Both have `WH/Stock/Pallets` set as the parent location. + + .. image:: storage_category/new-child-location.png + :alt: Create a sublocation. + .. _inventory/routes/define-storage: -Define storage category -======================= +Define storage category limitations +=================================== -A storage category with specific limitations **must** be created first, before it is applied to -locations, in order to decide the optimal storage location. +Before a storage category is applied to locations, it must be configured with specific limitations +in order to decide the optimal storage location. Capacity can be limited by weight, product, and +package type. To create a storage category, go to :menuselection:`Inventory app --> Configuration --> Storage Categories`, and click :guilabel:`New`. @@ -50,15 +77,13 @@ Categories`, and click :guilabel:`New`. On the storage category form, type a name for the category in the :guilabel:`Storage Category` field. -Options are available to limit capacity by weight, product, and package type. - .. note:: Weight limits can be combined with capacity by package or product (e.g. a maximum of one hundred products with a total weight of two hundred kilograms). While it is possible to limit capacity by product and package type at the same location, it may - be more practical to store items in different amounts across various locations, as shown in this - example of :ref:`capacity by package `. + be more practical to store items in different amounts across various locations, as shown in the + :ref:`limit capacity by package ` example. The :guilabel:`Allow New Product` field defines when the location is considered available to store a product: @@ -69,10 +94,6 @@ product: - :guilabel:`Allow mixed products`: several different products can be stored in this location at the same time. -.. tip:: - 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 @@ -82,45 +103,44 @@ product: *(Example: If a location can hold 10 units and 12 units arrive, all 12 are still assigned to that location.)* -Capacity by weight ------------------- +Limit capacity by weight +------------------------ -On a storage category form (:menuselection:`Inventory app --> Configuration --> Storage -Categories`), set a maximum product weight in the :guilabel:`Max Weight` field. This limit applies -to each location assigned this storage category. +A maximum product weight can be set in the :guilabel:`Max Weight` field. This limit applies +to each location assigned this storage category. If a product weight is defined, the value must be +set to greater than `0`. -This value must be set to greater than `0` if a product weight is defined. +Limit capacity by product +------------------------- -Capacity by product -------------------- - -In the :guilabel:`Capacity by Product` tab, click :guilabel:`Add a Line` to input items, and enter -their capacities in the :guilabel:`Quantity` field. +In the :guilabel:`Capacity by Product` tab, click :guilabel:`Add a Line` to enter a product, and set +the maximum capacity that should be stored at each location in the :guilabel:`Quantity` field. .. example:: Ensure only a maximum of five `Large Cabinets` and two `Corner Desk Right Sit` are stored at a - single storage location, by specifying those amounts in the :guilabel:`Capacity by Product` tab - of a storage category form. + single storage location by specifying those amounts in the :guilabel:`Capacity by Product` tab. + To ensure only a maximum of five `Large Cabinets` and two `Corner Desk Right Sit` are stored at a + single storage location, specify those amounts in the :guilabel:`Capacity by Product` tab. .. image:: storage_category/capacity-by-product.png :alt: Show storage category limiting by product count. .. _inventory/routes/set-capacity-package: -Capacity by package -------------------- +Limit capacity by package type +------------------------------ -For companies using :doc:`packages <../../product_management/configure/package>`, it becomes -possible to ensure real-time storage capacity checks, based on package types (e.g., crates, bins, +Limiting capacity by :doc:`package <../../product_management/configure/package>` makes it +possible to enforce real-time storage capacity checks based on package type (e.g., crates, bins, boxes, etc.). -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`. +Click :guilabel:`Add a line` to add a :ref:`package type +` to the storage category. Alternatively, create a +new package type on the :guilabel:`Inventory` tab of the product form (in the :guilabel:`Packaging` +section), or from the :guilabel:`Product Packagings` page. .. example:: - Create putaway rules for pallet-stored items, by creating the `High frequency pallets` storage + To help create putaway rules for pallet-stored items, create the `High frequency pallets` storage category. In the :guilabel:`Capacity by Package` tab, specify the number of packages for the designated @@ -140,40 +160,48 @@ to set the :guilabel:`Package Type`. .. _inventory/routes/assign-location: -Assign to location -================== +Assign storage locations +======================== -Once the storage category is created, assign it to a location. Navigate to the location by going to -:menuselection:`Inventory app --> Configuration --> Locations`, and select the desired location. +After the storage category is created, it can be assigned to the sublocations. Go to +:menuselection:`Inventory app --> Configuration --> Locations`, and open the desired sublocation. 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/PAL1` sub-location. + to two pallets) to the `WH/Stock/Pallets/PAL1` sublocation. .. image:: storage_category/location-storage-category.png :alt: When a Storage Category is created, it can be linked to a warehouse location. +Repeat this step for all sublocations to which the storage category should apply. + +.. tip:: + On the storage category form, the :icon:`oi-arrows-v` :guilabel:`Locations` smart button shows + which storage locations the category has been assigned to. + .. _inventory/routes/set-putaway-attribute: -Putaway rule -============ +Create a putaway rule +===================== -With the :ref:`storage category ` and :ref:`location +With the :ref:`storage category ` and :ref:`locations ` set up, create the :doc:`putaway rule ` by navigating to :menuselection:`Inventory app --> Configuration --> Putaway Rules`. -Click the :guilabel:`New` button to create the putaway rule. Specify a location to store to in the +Click the :guilabel:`New` button to create the putaway rule. Specify a location in the :guilabel:`Store to` field. -Use the :guilabel:`Sublocation` field to specify that you want to use a sublocation with the storage -category: +Use the :guilabel:`Sublocation` field to specify that you want to use a storage category on the +sublocations of the :guilabel:`Store to` field: - :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. + storage category is mandatory in the :guilabel:`Having Category` field. The locations in the + storage category must be sublocations of the location in the :guilabel:`Store to` field. If the + closest locations in the storage category are full, the :guilabel:`Store to` location is used. .. example:: Continuing the example from above, the `High frequency pallets` storage category is assigned to @@ -194,7 +222,7 @@ 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 examples 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 diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/new-child-location.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/new-child-location.png new file mode 100644 index 0000000000..358f868cd7 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category/new-child-location.png differ