Handle easily multiple variants on Purchase Orders
This module allows to add/modify of all the variants of a product in a direct screen without the need of handling them one by one
auto_awesome What this module does
AI-generated from the code · Odoo 12.0Add or modify all variants of a product on a purchase order from a single grid screen, instead of adding each variant line one by one.
This module adds a button on the purchase order form, "Add or Modify Variants", visible only in draft or sent state and only for users who can manage product variants. It opens a pop-up window where you pick a product template and see a grid of all its variants, with one axis for the first attribute and another for the second attribute.
In the grid you type the quantity you want for each combination. When you press "Transfer to order", the module updates the purchase order lines: quantities are changed, new lines are created for variants that had no line, and lines whose quantity you set to zero are removed. Only templates with one or two attributes that create variants are handled; templates with more attributes are ignored.
Each purchase order line also gets a small "Modify Variants" button that opens the same grid pre-filled with that product's template, so you can adjust variants directly from the line. The button only appears for draft or sent orders and for lines whose product has attribute values.
The module works on purchase.order.line and adds a new wizard model purchase.manage.variant with its line model purchase.manage.variant.line. It depends on the 2D matrix widget to display the grid.
Depends on
Models and fields (3)
- purchase.order.line · extends an existing modelproduct_attribute_value_ids, state_purchase_order_variant_mgmt (Order status), product_tmpl_id_purchase_order_variant_mgmt
- purchase.manage.variant · new modelproduct_tmpl_id (Template), variant_line_ids (Variant Lines)
- purchase.manage.variant.line · new modelvalue_x, value_y, product_uom_qty (Quantity)
Text generated by AI (DeepSeek) from reading the Odoo 12.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 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/product-variant.
terminal Installation and usage
OCA documentation · Odoo 12.0Installation
Source · Odoo 12.0This module requires the module web_widget_x2many_2d_matrix, which is located at OCA/web repository.
Configuration
Source · Odoo 12.0- Configure your user to have any permission from "Sales" group.
- Create a product with 2 attributes and several values.
Usage
Source · Odoo 12.0- Go to Purchases > Purchases > Request for Quotation
- Create a new quotation or edit an existing one.
- Press "Add variants" button located in the upper right corner of the "Order Lines" tab.
- A new screen will appear allowing you to select the products that have variants.
- Once you select the product, a 2D matrix will appear with the first attribute values as columns and the second one as rows.
- If there are already order lines for the product variants, the current quantity will be pre-filled in the matrix.
- Change the quantities for the variant you want and click on "Transfer to order"
- Order lines for the variants will be created/removed to comply with the input you have done.
As extra feature for saving steps, there's also a button on each existing line that corresponds to a variant that opens the dialog directly with the product selected.
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.