Bulk Price Update for Odoo 19 documentation
A guide to bulk price updates: the four methods, rounding and endings, choosing products, the preview, history and undo, and access rights.
Documents version 1.0.0Updated Oct 23, 2026
Start here
In plain words: The supplier raised its prices by 7%, or the season starts and everything goes down by 15%: and you open the products one by one. Bulk Price Update changes the sales price or the cost of as many products as you choose in one go: by a percentage, an amount, a fixed price or a margin on the cost, with rounding and prices that end in .99. You see the new prices before they are applied, and every update can be undone.
Tip: Nothing changes until you click Apply: the preview is a list you can edit, product by product.
What you get
| Feature | What it does |
|---|---|
| Sales price or cost | Change either one. |
| Four methods | Increase or decrease by a percentage; add or subtract an amount; set a fixed price; sales price = cost + a margin (30 means cost plus 30%). |
| Rounding | To the nearest, up or down to a multiple of 0.05, 0.5, 1, 10 or any step you like. |
| Price endings | Prices that end with .99, .95 or .90. |
| Which products | A category and its sub-categories, tags, a price range, or the products you select in the list. |
| A preview you can edit | The cost, the current price, the new price, the difference, the change in % and the margin of each product. Change a price by hand or untick a product. |
| History | Every update is kept: who, when, what was done, and the old and new price of each product. |
| Undo | Put the old prices back with one click. A product whose price was changed since is left alone and flagged. |
| Arabic | Everything is translated and works right to left. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Sales (sale) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_bulk_price_update.zip; unzip it to get the foldertaqnix_bulk_price_update. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- Remove the “Apps” filter, search Bulk Price Update and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_bulk_price_update --stop-after-init
Update the prices
In plain words: In Sales → Products → Update Prices, or select products in the product list and choose Actions → Update prices (the selected products are filled in for you).
| Field | Meaning |
|---|---|
| Change the | The sales price or the cost. |
| How | Percentage, amount, fixed price, or margin on the cost. |
| Value | 10 raises by 10% (-5 lowers by 5%); the amount to add; the new price; or the margin (30 = cost + 30%). |
| Rounding, Multiple of | No rounding, or to the nearest, up to, or down to a multiple (0.05, 0.5, 1, 10). |
| Price ending | Make the price end with .99, .95 or .90 (the price is rounded to a whole number first). |
| Product category, Tags, Products | Choose the products. A category includes its sub-categories. |
| Current price from, to | Only the products whose current price is in this range. |
| Skip products priced at zero | On by default: free items and services at zero stay as they are. |
In plain words: Click Preview.
Check the preview
In plain words: The list shows each product with its cost, its current price, the new price, the difference, the change in % and the margin over the cost. A new sales price under the cost is in red. You can edit a new price by hand, or untick Update to leave a product out.
In plain words: At the top: the number of products, how many will change and the average change. When it is right, click Apply the new prices.
History and undo
In plain words: Applying opens the update (PU/0001): who did it, when, what was done, and the old and new price of every product. Undo this update puts the old prices back.
Tip: If someone changed the price of a product after the update, the undo leaves that product alone, says so in the line and marks the update as partly undone.
Examples
| You want | Choose |
|---|---|
| Prices +7% rounded to 0.05 | Sales price, percentage, 7, rounding to the nearest 0.05. |
| Summer sale -15% on the tagged products | Sales price, percentage, -15, the tag Summer sale. |
| Every price ends with .99 | Rounding up to 1, price ending .99. |
| A 40% margin on the cost | Sales price, margin on the cost, 40. |
| The supplier raised costs by 5% | Cost, percentage, 5. |
| All the products at 9.99 | Sales price, fixed price, 9.99, the category. |
Who can do what
| Who | Can |
|---|---|
| Product managers (and administrators) | Update the prices, see the history, undo an update. |
| Other users | No access: the menus and the action are hidden. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Templates, not variants | The sales price is the one of the product template; extra prices of variants are not touched. |
| Cost of variants | The cost is set on products with one variant; a template with several variants is left out of a cost update. |
| Price lists | Price list rules are not changed: only the sales price and the cost of the product. |
| Up to 5000 products | In one update. |
| Undo | Only the products whose price is still the one the update set. |
For developers
In plain words: Skip this chapter if you only use the module.
update = env['taqnix.price.update'].create({'target': 'list_price', 'method': 'percent', 'value': 7, 'rounding': 'nearest', 'rounding_step': 0.05, 'category_id': category.id})
update.action_preview()
batch = env['taqnix.price.batch'].browse(update.action_apply()['res_id'])
batch.action_revert()Troubleshooting
| Problem | What to do |
|---|---|
| There is no product to update with these choices | Check the category, the tags and the price range; products at zero are skipped unless you untick the option. |
| The cost of a product is not in the preview | It has several variants: the cost belongs to each variant. |
| The undo left a product alone | Its price was changed after the update: change it by hand. |
| I cannot see the menu | You need the Product manager access right. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_bulk_price_update. The history of the updates is kept.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.