Stock Picking Batch Creation
Odoo allows you to create batches of pickings by hand or automatically by specifying some criteria on the picking type definition.
The approach in this addon is slightly different. It doesn't depend on the picking type and is triggered on demand by the user with the use of a specialized wizard.
The creation of the batch is based on the following criteria:
- A list of picking types to consider
- A list of stock device types available to the operator to process the batch.
- A maximum number of lines in the batch
Stock device types
A stock device type is a new concept that allows to define a type of device that can be used by an operator to process operations into the warehouse (like a forklift, a compartmentalized trolleys, ...).
Depending on the device type, the resources available to complete the job will be different. A this stage, 3 main criteria are considered:
- The maximum weight that can be handled by the device
- The maximum volume that can be handled by the device
- The number of bins/compartments available on the device
In addition to these criteria, 2 others criteria can be defined that will be evaluated to select the appropriate device type at the start of the batch creation process if more than one device type is available:
- A minimum picking volume to consider the device type,
- A sequence to define the order in which the device type will be considered.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets warehouse staff build a batch of transfers automatically from a wizard, choosing operation types, a maximum number of lines and the handling device (forklift, trolley) so the batch fits the device's volume, weight and compartment limits.
This module adds a guided way to group several transfers into one batch, instead of selecting them by hand. From the Jobs menu you open the "Make Picking Batch" wizard, where you choose the responsible user, the operation types to consider, the maximum number of preparation lines, and one or more device types. Pressing "Create batch picking" searches for suitable transfers and opens the new batch.
A new "Device Types" configuration screen (under Inventory settings) lets you describe handling equipment: minimum and maximum volume, maximum weight, number of compartments, priority, and the units of measure used to enter these values. The system converts them to the company's default units automatically.
When building the batch, the wizard picks transfers that are ready or partially available, not already batched, and assigned to the chosen user or nobody. It adds transfers one by one while the device's remaining weight, line count and free compartments allow it. Options let you group transfers by customer, restrict to the same customer or priority, and split transfers that are too big for any device.
On transfers and batches you can see the device used, the number of lines, total weight, total volume and compartments occupied. If no transfer or no suitable device is found, a warning explains why.
Depends on
Required by other modules
Menus it adds
Models and fields (4)
- stock.picking · extends an existing modelnbr_picking_lines (Number of lines), picking_device_id (Device for the picking)
- stock.device.type · new modelname, nbr_bins (Number of compartments), sequence (Priority), max_volume (Maximum total net volume for this device), max_weight (Maximum total net weight for this device), min_volume (Minimum total net volume for this device), split_mode, volume_per_bin (Max volume per bin), user_max_volume (Maximum total net volume for electing this device), user_max_weight (Maximum total net weight for electing this device), user_min_volume (Minimum total net volume for electing this device), user_volume_uom_id (Volume Units of Measure), user_weight_uom_id (Weight Units of Measure), user_volume_uom_name (Volume Unit of Measure label), user_weight_uom_name (Weight unit of measure label)
- make.picking.batch · new modeluser_id (Responsible), picking_type_ids (Default operation types), picking_locking_mode (Picking locking mode), stock_device_type_ids (Default device types), restrict_to_same_partner (Restrict to the same partner), add_picking_list_in_error (Add all the names of the pickings in error message), group_pickings_by_partner (Group pickings by partner), restrict_to_same_priority (Restrict to the same priority), split_picking_exceeding_limits (Split pickings exceeding limits), maximum_number_of_preparation_lines (Maximum number of preparation lines for the batch.)
- stock.picking.batch · extends an existing modelbatch_volume (Total volume), batch_weight (Total weight), batch_nbr_bins (Number of compartments), batch_nbr_lines (Number of picking lines), picking_device_id (Device)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/wms.
terminal Installation and usage
OCA documentation · Odoo 18.0Usage
Source · Odoo 18.0First of all, you need to create your stock device type. To do so, go to the Inventory -\> Configuration -\> Stock Device Types menu.
Once it's done, you can start creating your picking batches.
To launch the device, go to the Inventory -\> Operations -\> Make Picking Batch menu.
The Make Picking Batch window will open and allows you to specify your criteria for the batch creation. When all your criteria are set, click on the Create Batch Picking and lets the magic happen. A new window will open with the created batch picking.
Behind the scene
The creation of the picking batch is done in 3 steps:
- We search for a picking ready to be processed and that fits the criteria specified in the wizard.
- We determine the device to use for this first picking.
- While the defined limits are not reached, we look for one picking at a time that is ready to be processed and that fits the new criteria. The new criteria are computed at each loop iteration to take into account the pickings already into the batch.
When we look for a picking ready to be processed, we look for a picking that is in state "Assigned" or "Partially Available" with a picking type into the list of picking types defined in the wizard and not yet in a batch.
At step 1, we add to theses conditions on the pickings, a list of alternatives conditions to restrict the search to pickings that can be handled by the device types defined in the wizard. (A first search is done to try to find a picking for the given user and which is printed and if not found, we search for pickings not linked to a user and which are not printed).
At step2, since the first step will return a picking that can be handled by any of the device types specified, we process the list of device one by one in the order defined by the sequence field and we stop at the first device that can handle the picking.
At step 3, now that we have a picking and a device, we have all the information to refine the search for the next picking to the volume, weight and number of lines remaining in the batch. While there are still some bins available and in the batch and the search returns result, we look for a picking that fits the updated criteria and update the criteria at each loop iteration.
Advanced configuration
Locking
You can choice on the wizard to apply a LOCK into the database for each picking added to the batch. This is useful in a multi-user environment with a lot of users that can trigger the creation of bach picking to avoid problems of concurrency. If activated, picking already selected by a concurrent process will be skipped.
Grouping by partner
If you want to allow to group pickings of the same partner into the same bins, you can activate the option Group by partner on the wizard. This will prevent to consume at least one bin for each picking if pickings are for the same partner. When activated, the computation of the number of bins consumed by the picking into the batch will take into account the volume of the pickings for the same partners already.
Splitting picking if needed
You can also activate the option Split picking exceeding the limits on the wizard. In this case, when the system select the first picking to add to the batch, it will disable the criteria based on the volume, weight and number of lines. If the picking is exceeding the limits, the system will then try to split the picking so that the new picking fits the criteria and can be added to the batch. If the picking can't be split, an exception will be raised.
This option is useful to allow to create a batch picking with pickings that are exceeding the limits defined in the wizard. It also ensures that the processing of pickings is done in the order of the pickings. If the option is not activated, the system will try to find a picking that fits the criteria and will ignore those that are exceeding the limits even if they are to be processed first.
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.