This module provides different configuration option to manage packagings on purchase orders.
The creation/update of purchase order line will be blocked (by constraints) if the data on the purchase.order.line does not fit with the configuration of the product's packagings.
It's also possible to force the quantity to purchase during creation/modification of the purchase order line if the "Force purchase quantity" is ticked on the packaging and the "Purchase only by packaging" is ticked on product.
For example, if your packaging is set to purchase by 5 units and the employee fill the quantity with 3, the quantity will be automatically replaced by 5 (it always rounds up).
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Lets you restrict a product so it can only be bought in whole packagings on purchase orders, and optionally force the ordered quantity up to the next full packaging.
This module adds purchasing rules based on packagings. On a product you can tick "Only purchase by packaging"; once ticked, purchase order lines for that product must have a packaging and a whole-number packaging quantity, otherwise Odoo blocks the line with an error.
On each packaging you can tick "Force purchase quantity". When the product is set to purchase only by packaging and this option is on, typing a quantity that is not a multiple of the packaging is automatically rounded up to the next full packaging (for example 3 becomes 5 for a packaging of 5).
Odoo also shows a computed "Minimum purchasable quantity" on the product and product variant, based on the smallest purchasable packaging. This field is visible in the product form and in product list views.
Business checks are added: a product cannot be set to purchase only by packaging if it is not purchasable, or if it has no packaging marked as purchasable. A packaging level that is used by such a product cannot be switched off from "Can be purchased".
The module touches product.template, product.product, product.packaging, product.packaging.level and purchase.order.line.
Depends on
Models and fields (5)
- product.product · extends an existing modelmin_purchasable_qty
- product.template · extends an existing modelmin_purchasable_qty, purchase_only_by_packaging (Only purchase by packaging)
- product.packaging · extends an existing modelforce_purchase_qty (Force purchase quantity)
- purchase.order.line · extends an existing model
- product.packaging.level · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 16.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: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/purchase-workflow.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0Following options are available to define which packaging level can be purchased and which product can only be purchased by packaging.
- Purchase only by packaging: On product template model, this checkbox restricts purchases of these products if no packaging is selected on the purchase order line. If no packaging is selected, it will either be auto-assigned if the quantity on the purchase order line matches a packaging quantity or an error will be raised.
- Force purchase quantity (on the packaging): force rounds up the quantity during creation/modification of the purchase order line with the factor set on the packaging.
No verified information in OCA: Installation, Usage.
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.