This module extends package types Odoo feature in order to better manage stock moves with packages according to the packaging and stock location properties (like height, weight or any customized conditions).
Moreover, this module implements "package type put-away strategy" in order to compute a put-away location using package types.
The standard put-away strategy is applied before the package type put-away strategy as the former relies on product or product category and the latter relies on stock packages.
In other words, when a move is reserved, Odoo standard put-away strategy will be applied to compute a new destination on the stock move lines, according to the product. After this first "put-away computation", the "package type" put-away strategy is applied, if the reserved quant is linked to a package defining a package type.
Storage locations linked to the package type are processed sequentially, if said storage location is a child of the move line's destination location (i.e either the put-away location or the move's destination location). For each location, their package type strategy is applied as well as the restrictions defined on the storage category. If no suitable location is found, the next location in the sequence will be searched and so on.
For the package type putaway strategy "None", the location is considered as is. For the "ordered children" strategy, children locations are sorted by first by max height which is a physical constraint to respect, then pack putaway sequence which allow to favor for example some level or corridor, and finally by name.
At the end, if found location is not the same as the original destination location, the putaway strategies are applied (e.g.: A "None" pack putaway strategy is set on computed location and a putaway rule exists on that one).
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Configure storage categories and package types so Odoo automatically chooses the right storage location for packages, and blocks packages that are too tall, too heavy or not allowed in a location.
This module adds storage rules to locations, storage categories and package types, and uses them to decide where packages are put away.
- On storage categories you can set a maximum height and maximum weight, and rules about mixing products or lots (mixed, same product, same lot, empty only). Locations inherit the category of their parent, so a whole aisle can share the same rules.
- On package types you define a put-away sequence: an ordered list of locations to try, with optional conditions. A message on the package type explains the strategy in plain words.
- When a package is moved, Odoo looks for the first allowed location in that sequence, skipping locations that are full, too small, too weak, or that would mix products or lots they should not.
- On a transfer, the destination field for a package is filtered to only show allowed destinations, and a button recomputes the put-away.
- Odoo raises an error if you try to store a package whose type is not allowed in the location, or if the package is taller or heavier than the category allows. A package type can also require the package height to be filled in.
- Configuration lives under Inventory settings, in a Storage Types menu with screens for allow-new-product conditions and location sequence conditions.
Depends on
Required by other modules
Menus it adds
Models and fields (12)
- stock.quant · extends an existing model
- stock.location · extends an existing modelmax_height, only_empty, do_not_mix_lots, max_height_in_m, leaf_location_ids, do_not_mix_products, pack_putaway_strategy (Put-Away Strategy), leaf_child_location_ids, computed_storage_category_id (Computed Storage Category), computed_storage_capacity_ids, location_will_contain_lot_ids, package_type_putaway_sequence (Putaway Sequence), storage_location_sequence_ids (Storage locations sequences), has_potential_lot_mix_exception, location_will_contain_product_ids, has_potential_product_mix_exception
- stock.move.line · extends an existing model
- stock.package.type · extends an existing modelactive, barcode, height_required (Height required for packages), storage_type_message, product_packaging_ids, storage_location_sequence_ids (Put-Away sequence)
- stock.package_level · extends an existing modelallowed_location_dest_ids (Allowed Destinations)
- stock.quant.package · extends an existing modelheight, height_in_m, pack_weight_in_kg
- stock.storage.category · extends an existing modelmax_height (Max height (mm)), length_uom_id, weight_uom_id (Weight Units of Measure), max_height_in_m, weight_uom_name (Weight unit of measure label), has_restrictions, max_weight_in_kg, allow_new_product, allow_new_product_ids (Allow New Product Rules), computed_location_ids
- stock.storage.condition.mixin · new modelname, active, code_snippet, condition_type, code_snippet_docs
- stock.storage.location.sequence · new modelsequence, location_id, package_type_id, location_putaway_strategy, location_sequence_cond_ids (Conditions)
- stock.storage.location.sequence.cond · new model
- stock.storage.category.allow_new_product · new modelsequence, condition_ids (Conditions), allow_new_product, storage_category_id
- stock.storage.category.allow_new_product.cond · new model
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/wms.
terminal Installation and usage
OCA documentation · Odoo 18.0Usage
Source · Odoo 18.0Go to "Inventory > Settings > Package Types" and "Inventory > Settings > Storage Categories", to define Package Types and Storage Categories.
Package Type can be set on Product and Product Packaging.
Storage Category can be added to any stock location and will be computed automatically as Allowed Storage Category on said stock location's children location.
- Pack put-away strategy
On stock locations, you can define a "Pack put-away strategy" as "Ordered bins", so that any move, having this locations as its destination, will be put-away on a children location, according to the restrictions from package types.
- Put-away sequence
For any package types, you must define a Put-away sequence (i.e. stock location to search) where such a package is allowed to be put-away. Locations will be processed sequentially and the first one having an allowed child location (according to restrictions) will be used to put away.
A good practice here, is to set a location accepting this package type without any restriction as the last location in the sequence, to act as a fallback if no other location could be found before.
If a location with a 'none' strategy is set in the sequence and matches with the move line's destination, it will stop evaluating the next locations in the sequence.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.