| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 1300 |
| Technical Name |
stock_product_matrix |
| License | LGPL-3 |
| Website | https://odootips.com |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 1300 |
| Technical Name |
stock_product_matrix |
| License | LGPL-3 |
| Website | https://odootips.com |
| Versions | 17.0 18.0 19.0 |
This module extends Stock Picking to support product variant matrix entry and visualization. Perfect for managing transfers of products with multiple variants like size, color, and height combinations.
- ✅ Matrix Grid Entry - Add variants through Odoo's native matrix configurator
- ✅ 3+ Attribute Support - Compound rows for products with 3 or more attributes
- ✅ Real-time Preview Matrix - OWL widget with live quantity updates
- ✅ Row & Column Totals - Automatic totals in matrix dialog and preview
- ✅ Availability Indicator - Red highlight for unavailable stock in outgoing pickings
- ✅ PDF Matrix Report - Print variant matrices in picking reports
- ✅ Excel Export with Matrix - Export to Excel with variant matrix grid
- ✅ Search & Pagination - Filter and paginate products in matrix view
📦 Compatible with all Stock Picking operations:
💡 Works with any picking type configured in your Odoo instance, including custom operation types.
- ✔ Community
-
✔
Enterprise
(On-premises) - ✔ Odoo.sh
- ✘ Online
📷 Screenshot: Product with variant attributes configured
Products must have variant attributes configured to use the matrix. Go to Inventory > Products > Products and configure attributes.
📷 Screenshot: Product with variant attributes configured
Step-by-step:
- Go to Inventory > Products > Products
- Open or create a product
- Go to the Attributes & Variants tab
- Add attributes (e.g., Color: Red, Blue, Green)
- Add a second attribute (e.g., Size: S, M, L, XL)
- Optionally add a third attribute (e.g., Height: 45, 50)
- Set "Create Variants" to "Instantly" for each attribute
- Save the product - variants will be generated automatically
2 Attributes
Color + Size = standard 2D matrix
3 Attributes
Color + Size + Height = compound rows "S • 45"
1 Attribute
Color only = 1D single-row matrix
To use the matrix in a stock picking, you must enable the "Use Matrix Process" checkbox.
📷 Screenshot: Picking form with "Use Matrix Process" checkbox enabled
Step-by-step:
- Go to Inventory > Operations > Transfers (or Receipts / Delivery Orders)
- Open an existing picking or create a new one
- Check the "Use Matrix Process" checkbox (located near the top of the form)
- Once enabled, the product field in the Operations tab will show a matrix icon (grid icon) for configurable products
- A "View Matrix" tab will also appear below the Operations tab
When "Use Matrix Process" is enabled, adding a configurable product opens the matrix configurator dialog automatically.
📷 Screenshot: Selecting a configurable product triggers the matrix dialog
Step-by-step:
- In the Operations tab, click "Add a line"
- Select a configurable product (one with variant attributes)
- The Matrix Configurator Dialog opens automatically
- Enter quantities for each variant combination in the grid
- Click "Confirm" to add all variants with their quantities
- Move lines are created automatically for each variant with qty > 0
✅ What happens
Each cell with a quantity > 0 creates a separate stock move line for that specific variant.
🔄 Re-open matrix
Click the pencil icon (✏) on any product line to re-open the matrix and modify quantities.
The matrix dialog shows a grid with columns = first attribute and rows = second attribute. It includes row totals, column totals, and a grand total that update in real-time as you type.
📷 Screenshot: Matrix configurator dialog with row/column/grand totals
Dialog Features:
- Grid cells - Enter quantity for each variant combination
- Row totals - Sum of all quantities in each row (right column)
- Column totals - Sum of all quantities in each column (bottom row)
- Grand total - Total of all quantities (bottom-right corner)
- Real-time calculation - Totals update instantly as you type
- Click "Confirm" to apply, or "Discard" to cancel
Columns
First attribute (e.g., Color)
Rows
Second attribute (e.g., Size)
Totals
Auto-calculated row, column & grand totals
The "View Matrix" tab shows a real-time preview of all product matrices in the picking. This is an OWL widget that updates automatically when you add or modify products.
📷 Screenshot: View Matrix tab showing product matrices with search and pagination
Step-by-step:
- After adding products with variants, click the "View Matrix" tab
- Each configurable product is displayed as a separate matrix table
- The matrix shows demanded quantities (product_uom_qty) for saved pickings
- For unsaved changes, the matrix shows a dirty overlay with current edits
- Use the search bar to filter products by name
- Use pagination to navigate through multiple products (5 per page)
🔍 Search
Type a product name to filter the matrix list instantly.
📄 Pagination
Navigate between pages when there are more than 5 products.
To modify quantities after initial entry, click the pencil icon (✏) on any product line in the Operations tab. This re-opens the matrix dialog with current quantities pre-filled.
📷 Screenshot: Pencil icon on product line and re-opened matrix dialog
Step-by-step:
- In the Operations tab, find the product line you want to edit
- Click the pencil icon (✏) on the right side of the product line
- The matrix dialog opens with current quantities pre-filled
- Modify quantities as needed - totals update in real-time
- Click "Confirm" to apply changes
- The move lines are updated accordingly (new variants added, zeroed variants removed)
For products with 3 or more attributes, the matrix uses compound rows. The first attribute becomes the columns, and all remaining attributes are combined into row headers using the " • " separator.
📷 Screenshot: Matrix with 3 attributes showing compound rows (Size • Height)
How it works:
- Configure a product with 3+ attributes (e.g., Color, Size, Height)
- Columns = First attribute values (e.g., Red, Blue, Green)
- Rows = Cartesian product of remaining attributes (e.g., "S • 45", "S • 50", "M • 45", "M • 50", ...)
- All combinations are displayed in a single flat matrix - no tabs or sections
- Row and column totals are calculated for the entire matrix
| T-Shirt | Red | Blue | Total |
|---|---|---|---|
| S • 45 | 5 | 3 | 8 |
| S • 50 | 2 | 4 | 6 |
| M • 45 | 7 | 1 | 8 |
| M • 50 | 3 | 6 | 9 |
| Total | 17 | 14 | 31 |
The PDF report includes variant matrices when the picking has configurable products. The matrix is printed as part of the picking delivery slip.
📷 Screenshot: PDF report with variant matrix tables
Step-by-step:
- Open a picking with configurable products and "Use Matrix Process" enabled
- Click Print > Picking Matrix Report (or the corresponding report action)
- The PDF includes a matrix table for each configurable product
- Each matrix shows row headers, column headers, quantities, and totals
- Products with 3+ attributes show compound row headers (e.g., "S • 45")
- Matrix tables for each product template with variants
- Row and column totals
- Grand total per product
- Professional gradient header with product name
Export picking data to Excel with a variant matrix grid. The Excel file includes professional formatting with headers, totals, and color-coded cells.
📷 Screenshot: Excel export with variant matrix grid and formatting
Step-by-step:
- Open a picking with configurable products and "Use Matrix Process" enabled
- Click Print > Picking Matrix Excel (or the corresponding action)
- An .xlsx file is downloaded automatically
- The file contains a sheet with picking info (partner, date) at the top
- Each product has a matrix block with headers, quantities, and totals
- Cells are color-coded: headers in dark, totals highlighted, grand total in primary color
- Unavailable stock cells are highlighted in red
xlsxwriter Python library must be installed for Excel export to work. Install with: pip install xlsxwriter>=3.1.0
Installation
Install this module after Stock and Product Matrix (Odoo core modules).
stock- Odoo Inventory / Stock moduleproduct_matrix- Odoo's product matrix moduleaccount- Odoo Accounting module
xlsxwriter >= 3.1.0- Required for Excel export- Install with:
pip install xlsxwriter>=3.1.0
📥 Install Steps
- Ensure
stockandproduct_matrixare installed - Install
xlsxwriterPython library - Place module in your addons path
- Update Apps List and install Stock Product Matrix
✅ After Install
A new "Use Matrix Process" checkbox and "View Matrix" tab appear in the stock picking form view for all operation types.
❓ What products work with the matrix?
Products with multiple variants configured through product attributes (e.g., Size, Color). The product must have at least one attribute with "Create Variants" set to "Instantly".
❓ How does the matrix handle 3+ attributes?
The first attribute becomes columns, and all remaining attributes are combined into compound row headers using the " • " separator. For example, Size + Height becomes "S • 45", "M • 45", etc.
❓ What does the red highlight mean in the matrix?
Red-highlighted cells indicate that the forecast availability is less than the demanded quantity. This only applies to outgoing and internal transfer pickings.
❓ Do I need xlsxwriter installed?
Yes, xlsxwriter is required for the Excel export feature. Install it with pip install xlsxwriter>=3.1.0. The module will still work without it, but Excel export will not be available.
❓ Can I use this on Receipts, Delivery Orders, and Internal Transfers?
Yes, the module works on all picking types. Simply enable the "Use Matrix Process" checkbox on any picking.
❓ Does the preview matrix update in real-time?
Yes, the View Matrix tab uses an OWL widget that detects changes in the picking's move lines and updates the matrix preview automatically, even before saving.
❓ What Odoo versions are supported?
Odoo 19 - Community and Enterprise on-premises.
Need Help?
Contact us for technical support, bug reports, or feature requests.
Contact Support⏰ Response time: 24-48 hours
⭐ If you like this module, please leave a review on Odoo Apps ⭐
Please log in to comment on this module