OdooWiki OCA HUB

Handle easily multiple variants on Purchase Orders

purchase_order_variant_mgmt folder_open OCA/product-variant open_in_new
Purchases License: AGPL-3

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.0

Add 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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation 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.0

This module requires the module web_widget_x2many_2d_matrix, which is located at OCA/web repository.

  • Configure your user to have any permission from "Sales" group.
  • Create a product with 2 attributes and several values.
  • 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.

info

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.