Skip to content
DevMarket
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on DevMarket

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.
From the product list, the preview, and the history of the update.
From the product list, the preview, and the history of the update.
Tip: Nothing changes until you click Apply: the preview is a list you can edit, product by product.

What you get

FeatureWhat it does
Sales price or costChange either one.
Four methodsIncrease or decrease by a percentage; add or subtract an amount; set a fixed price; sales price = cost + a margin (30 means cost plus 30%).
RoundingTo the nearest, up or down to a multiple of 0.05, 0.5, 1, 10 or any step you like.
Price endingsPrices that end with .99, .95 or .90.
Which productsA category and its sub-categories, tags, a price range, or the products you select in the list.
A preview you can editThe 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.
HistoryEvery update is kept: who, when, what was done, and the old and new price of each product.
UndoPut the old prices back with one click. A product whose price was changed since is left alone and flagged.
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededSales (sale)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_bulk_price_update.zip; unzip it to get the folder taqnix_bulk_price_update.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. 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).
The action in the product list.
The action in the product list.
FieldMeaning
Change theThe sales price or the cost.
HowPercentage, amount, fixed price, or margin on the cost.
Value10 raises by 10% (-5 lowers by 5%); the amount to add; the new price; or the margin (30 = cost + 30%).
Rounding, Multiple ofNo rounding, or to the nearest, up to, or down to a multiple (0.05, 0.5, 1, 10).
Price endingMake the price end with .99, .95 or .90 (the price is rounded to a whole number first).
Product category, Tags, ProductsChoose the products. A category includes its sub-categories.
Current price from, toOnly the products whose current price is in this range.
Skip products priced at zeroOn 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.
The preview: +6%, rounded up to a whole number, ending in .99.
The preview: +6%, rounded up to a whole number, ending in .99.
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.
An update with the old and new price of each product.
An update with the old and new price of each product.
The updates: one applied, one undone.
The updates: one applied, one undone.
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 wantChoose
Prices +7% rounded to 0.05Sales price, percentage, 7, rounding to the nearest 0.05.
Summer sale -15% on the tagged productsSales price, percentage, -15, the tag Summer sale.
Every price ends with .99Rounding up to 1, price ending .99.
A 40% margin on the costSales price, margin on the cost, 40.
The supplier raised costs by 5%Cost, percentage, 5.
All the products at 9.99Sales price, fixed price, 9.99, the category.

Who can do what

WhoCan
Product managers (and administrators)Update the prices, see the history, undo an update.
Other usersNo access: the menus and the action are hidden.

Arabic and right to left

The preview in an Arabic interface.
The preview in an Arabic interface.

Limits

LimitDetail
Templates, not variantsThe sales price is the one of the product template; extra prices of variants are not touched.
Cost of variantsThe cost is set on products with one variant; a template with several variants is left out of a cost update.
Price listsPrice list rules are not changed: only the sales price and the cost of the product.
Up to 5000 productsIn one update.
UndoOnly 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

ProblemWhat to do
There is no product to update with these choicesCheck 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 previewIt has several variants: the cost belongs to each variant.
The undo left a product aloneIts price was changed after the update: change it by hand.
I cannot see the menuYou 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.