Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. Qworx Variant Price v 19.0
  4. Sales Conditions FAQ

Qworx Variant Price

by Qworx Soluciones Ti Limitada https://qworx.cl
Odoo

$ 50.34

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Lines of code 954
Technical Name qworx_variant_price
LicenseOPL-1
Websitehttps://qworx.cl
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Lines of code 954
Technical Name qworx_variant_price
LicenseOPL-1
Websitehttps://qworx.cl
  • Description
  • Documentation
  • License

Overview

Automatically manage product variant prices in a dedicated pricelist. When new variants are created, they are automatically added to your default variant pricelist with the template's list price. Supports multi-company environments with per-company defaults and a global fallback.

Key Features

  • Auto-add variants: New saleable product variants are automatically added to all relevant default pricelists
  • Price sync: Single-variant products automatically sync price when template price changes
  • Archive/Unarchive handling: Archived variants are removed from pricelists; unarchived variants are re-added with a price review wizard
  • Sale OK toggle: Setting sale_ok=False removes from pricelist; sale_ok=True re-adds
  • Bulk add: Add all existing variants to pricelist with one click in Settings (batched for large databases)
  • Price review wizard: Visual editor with template price reference, change detection, and batch apply
  • Export/Import: Built-in export template for bulk price updates via Excel
  • Multi-company: Per-company defaults with global fallback; cross-company support in wizard
  • Duplicate prevention: Constraint prevents duplicate variant items in same pricelist
  • Notifications: User notifications for all pricelist changes

Configuration

1. Set Default Variant Pricelist

Go to Sales > Products > Pricelists, open or create a pricelist, and check "Default Variant Pricelist".

Pricelist Configuration
Rules:
  • Only one default per company
  • Only one global default (no company set)
  • Company-specific defaults can coexist with a global default
  • Company-specific takes priority over global for that company

2. Add Existing Variants (Optional)

Go to Settings > Sales > Pricing and click "Add All Variants to Pricelist" to populate the pricelist with all existing active saleable variants.

Settings Configuration
Note: This adds variants to the current company's default pricelist only. Switch companies to populate other pricelists. The operation is batched in chunks of 1000 for large databases.

Automatic Behavior

The following actions happen automatically without user intervention:

Action What Happens
Create new product (with or without variants) All saleable variants auto-added to ALL relevant default pricelists with template's list price
Change template list_price (single-variant only) Pricelist item price auto-syncs across ALL default pricelists
Change template list_price (multi-variant) No auto-sync — variant prices are manually managed
Archive product/variant Pricelist items removed from ALL default pricelists
Unarchive product/variant Variants re-added to ALL default pricelists; price review wizard opens
Set sale_ok = False Pricelist items removed from ALL default pricelists
Set sale_ok = True Variants re-added to ALL default pricelists
Delete product/variant Pricelist items cascade-deleted by database (automatic)
Uncheck "Default Variant Pricelist" ALL variant-level items in that pricelist are deleted
Archive default pricelist Items preserved (for seamless unarchive); new variants not auto-added while archived
Unarchive default pricelist Conflict check (cannot have two defaults for same company); items restored
Delete default pricelist All variant items cleaned up before deletion
Context flags: Auto-add is skipped when skip_variant_pricelist_auto_add is in context. Auto-sync is skipped when skip_variant_pricelist_auto_sync is in context. Import operations (import_file context) skip auto-add but still trigger notifications.

Price Review Wizard

The wizard provides a visual editor for reviewing and adjusting variant prices in a pricelist.

How to Open

  • From pricelist form: Click "Review Variant Prices" button (visible when "Default Variant Pricelist" is checked)
  • From product template form: Click the "Set Variant Prices" stat button (filtered to that template's variants)
  • After unarchiving: Wizard opens automatically for the unarchived variants
  • After bulk add: Wizard opens automatically showing all newly added variants

Wizard Features

  • Shows template price as reference alongside current pricelist price
  • Edit New Price column to set desired prices
  • Toggle "Use Template" checkbox to reset a variant to its template price
  • Click "Set All to Template Price" to reset all lines at once
  • Change counter shows how many prices will be updated
  • Click Apply to save changes (batched writes grouped by price)
Multi-company: The wizard uses elevated permissions internally to display and update pricelist items across all companies (for global pricelists). Price change detection uses Odoo's decimal precision for accuracy.

Bulk Price Updates via Excel

  1. Go to Sales > Products > Pricelists (list view)
  2. Select your default variant pricelist
  3. Click Actions > Export
  4. Select template "Pricelist Items Export"
  5. Export to XLSX
  6. Edit the fixed_price column in Excel
  7. Import the file back using Favorites > Import records
Export Import Workflow

Export Columns

ColumnPurposeEditable?
namePricelist nameNo (reference)
item_ids/idItem external ID (import key)No (required)
item_ids/product_id/display_nameVariant name with attributesNo (reference)
item_ids/fixed_priceVariant priceYes
Important: Do not delete or modify the item_ids/id column. Odoo uses it to match records on re-import. Only edit the fixed_price column.

Multi-Company

How It Works

  • Each company can have its own default variant pricelist
  • A global pricelist (no company) serves as fallback for companies without a specific default
  • When a variant is created, it is added to ALL applicable default pricelists (company-specific + global)
  • Products with no company are added to all pricelists; company-specific products only to matching pricelists

Priority

  1. Company-specific default pricelist (if exists)
  2. Global default pricelist (no company) as fallback

Wizard & Global Pricelists

When reviewing prices on a global pricelist, the wizard uses elevated permissions to display items for products from all companies. This ensures complete visibility regardless of the current user's company access.

Notifications

Users receive sticky or non-sticky notifications when:

  • Variants are auto-added to pricelist (with count)
  • Variants are removed from pricelist (archive, sale_ok=False)
  • Import adds variants to pricelist (with warning to review prices)
  • Default pricelist checkbox is checked or unchecked (with cleanup count)
  • Default pricelist is archived, unarchived, or deleted
  • Single-variant prices are synced

Constraints & Validation

  • Unique default per company: Only one pricelist per company (or one global) can be marked as default
  • No duplicate variant items: Cannot have two pricelist items for the same variant with the same minimum quantity in the same pricelist
  • Unarchive conflict check: Cannot unarchive a default pricelist if another default already exists for the same company

Technical Details

Models Extended

ModelChanges
product.pricelistAdded is_default_variant_pricelist field, constraint, write/unlink overrides, cleanup and helper methods
product.productwrite/create overrides for auto-add/remove, unarchive wizard
product.templatehas_default_variant_pricelist computed field, list_price sync for single-variant
product.pricelist.itemDuplicate variant item constraint
res.config.settingsBulk add action, default pricelist display

Transient Models

ModelPurpose
qworx.variant.price.wizardPrice review wizard with computed lines from pricelist items
qworx.variant.price.wizard.lineWizard line with template price, current price, new price, change detection

Security

  • Wizard access: sales_team.group_sale_salesman (CRUD)
  • Multi-company record rules on wizard and wizard lines
  • Pricelist/item access uses native Odoo rules (inherited)

Dependencies

  • product
  • sale

Data Files

  • security/qworx_variant_price_security.xml — Multi-company record rules
  • security/ir.model.access.csv — Wizard access rights
  • data/ir_exports_data.xml — Pre-configured export template
  • wizard/variant_price_wizard_views.xml — Wizard form view
  • views/product_pricelist_views.xml — Pricelist form/list extensions
  • views/product_template_views.xml — Template stat button
  • views/res_config_settings_views.xml — Settings section

Test Coverage

98 automated tests covering:

  • Pricelist default constraint and uniqueness
  • Variant auto-add on create
  • Variant auto-remove on archive/sale_ok
  • Single-variant price sync
  • Pricelist cleanup on uncheck/delete
  • Wizard functionality (apply, set-all, change detection)
  • Duplicate variant item constraint
  • Bulk add from settings
  • Action buttons
  • Multi-company scenarios

License

OPL-1 (Odoo Proprietary License)

Qworx Variant Price

Automatically manage product variant prices in a dedicated pricelist. Supports multi-company environments with per-company defaults and a global fallback.

Configuration

Set Default Variant Pricelist

  1. Go to Sales > Products > Pricelists
  2. Open or create a pricelist
  3. Check "Default Variant Pricelist"
  4. Save

Rules:

  • Only one default per company
  • Only one global default (no company set)
  • Company-specific defaults can coexist with a global default
  • Company-specific takes priority over global for that company

Add Existing Variants

  1. Go to Settings > Sales > Pricing
  2. Find "Variant Pricelist Management"
  3. Click "Add All Variants to Pricelist"

This adds all active saleable variants not yet in the current company's default pricelist. Processed in batches of 1000 for large databases.

Automatic Behavior

Note

Auto-add is skipped when skip_variant_pricelist_auto_add is in context. Auto-sync is skipped when skip_variant_pricelist_auto_sync is in context. Import operations (import_file context) skip auto-add but trigger notifications.

Price Review Wizard

How to Open

  • From pricelist form: Click "Review Variant Prices" button
  • From product template form: Click "Set Variant Prices" stat button
  • After unarchiving: Wizard opens automatically for unarchived variants
  • After bulk add: Wizard opens automatically showing newly added variants

Wizard Features

  • Shows template price as reference alongside current pricelist price
  • Edit New Price column to set desired prices
  • Toggle "Use Template" checkbox to reset a variant to its template price
  • Click "Set All to Template Price" to reset all lines at once
  • Change counter shows how many prices will be updated
  • Click Apply to save changes (batched writes grouped by price)
  • Cross-company support: global pricelists show items from all companies

Bulk Price Updates via Excel

  1. Go to Sales > Products > Pricelists (list view)
  2. Select your default variant pricelist
  3. Click Actions > Export
  4. Select template "Pricelist Items Export"
  5. Export to XLSX
  6. Edit the fixed_price column in Excel
  7. Import the file back using Favorites > Import records

Export columns:

  • name — Pricelist name (reference only)
  • item_ids/id — Item external ID (required for import, do not modify)
  • item_ids/product_id/display_name — Variant name with attributes (reference only)
  • item_ids/fixed_price — Variant price (editable)

Warning

Do not delete or modify the item_ids/id column. Odoo uses it to match records on re-import. Only edit the fixed_price column.

Multi-Company

How It Works

  • Each company can have its own default variant pricelist
  • A global pricelist (no company) serves as fallback
  • When a variant is created, it is added to ALL applicable default pricelists
  • Products with no company are added to all pricelists
  • Company-specific products only to matching pricelists

Priority

  1. Company-specific default pricelist (if exists)
  2. Global default pricelist (no company) as fallback

Wizard & Global Pricelists

When reviewing prices on a global pricelist, the wizard uses elevated permissions to display and update items for products from all companies, ensuring complete visibility regardless of the current user's company access.

Notifications

Users receive notifications when:

  • Variants are auto-added to pricelist (with count)
  • Variants are removed from pricelist (archive, sale_ok=False)
  • Import adds variants to pricelist (with warning to review prices)
  • Default pricelist checkbox is checked or unchecked (with cleanup count)
  • Default pricelist is archived, unarchived, or deleted
  • Single-variant prices are synced

Constraints & Validation

  • Unique default per company: Only one pricelist per company (or one global) can be marked as default
  • No duplicate variant items: Cannot have two pricelist items for the same variant with the same minimum quantity in the same pricelist
  • Unarchive conflict check: Cannot unarchive a default pricelist if another default already exists for the same company

Technical Details

Models Extended

  • product.pricelist — Added is_default_variant_pricelist field, constraint, write/unlink overrides, cleanup and helper methods
  • product.product — write/create overrides for auto-add/remove, unarchive wizard
  • product.template — has_default_variant_pricelist computed field, list_price sync for single-variant
  • product.pricelist.item — Duplicate variant item constraint
  • res.config.settings — Bulk add action, default pricelist display

Transient Models

  • qworx.variant.price.wizard — Price review wizard with computed lines from pricelist items
  • qworx.variant.price.wizard.line — Wizard line with template price, current price, new price, change detection

Security

  • Wizard access: sales_team.group_sale_salesman (CRUD)
  • Multi-company record rules on wizard and wizard lines
  • Pricelist/item access uses native Odoo rules (inherited)

Dependencies

  • product
  • sale

Test Coverage

98 automated tests covering:

  • Pricelist default constraint and uniqueness
  • Variant auto-add on create
  • Variant auto-remove on archive/sale_ok
  • Single-variant price sync
  • Pricelist cleanup on uncheck/delete
  • Wizard functionality (apply, set-all, change detection)
  • Duplicate variant item constraint
  • Bulk add from settings
  • Action buttons
  • Multi-company scenarios

License

OPL-1 (Odoo Proprietary License)

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with