The purchase price on the product record hasn't been what you actually pay for months
EasySupplierPrice adds a button on the vendor proposal, the purchase order, the vendor invoice and the reception to capture the real price of every line and keep it stored on the product's vendor price record — with history, bulk capture from the lists and automatic mode on validation.
|
4
vendor documents where you can capture
|
1 click
and without leaving the document
|
8
languages in the interface
|
V14-V23
Dolibarr · PHP 7.4 to 8.3
|
The problem it solves
Dolibarr stores the purchase price of every product and every vendor in its own table, and that is where your margins, your reports and half a dozen decisions come from. The problem is not that the data is missing: it is that nobody updates it. The right price is on the order you negotiated or on the invoice you just received, and to get it onto the record you have to open the product, find the vendor and type the price in one by one. So it gets done when someone remembers.
| What you run into |
What it costs you |
| You negotiate a price on the purchase order and the data dies right there: the record still shows last year's price. |
Margin reports that lie, and selling prices built on a cost that no longer exists. |
| The vendor invoice arrives with the final price (or with a surcharge) and nobody moves it onto the record. |
You buy at 12 and the ERP still believes you buy at 10. Every sale looks more profitable than it is. |
| You work with several vendors for the same product and only one of them has an up-to-date price. |
Vendor comparisons done by eye, and the price history living in the buyer's head. |
The purchase price is not captured where it gets negotiated. And if the input data is not reliable, everything calculated afterwards carries the error.
CAPTURE WHERE THE DATA IS
A button on the document, not one more page
EasySupplierPrice integrates through hooks: it does not replace any core page. The button appears on the vendor proposal, the purchase order, the vendor invoice and the reception as soon as the document is validated, right next to the native buttons. Clicking it opens a dialog with the document lines, the price exactly as you typed it and a checkbox per line: you adjust whatever needs adjusting, tick what you want to store and confirm. Saving uses Dolibarr's native method for the vendor price, so it respects its rules and does not create duplicate rows when the price already exists for that vendor and that quantity.
This is what it looks like
Three real screenshots of the module: the button on a purchase order, the review dialog and the capture history.
The "Capture purchase price" button on an already validated purchase order, next to the document's native buttons.
The review dialog: the price of every line is editable and you decide which lines get stored.
The history: which price was captured, what the previous one was, from which document and who did it.
By hand or with the module
| Dimension |
Typing it on the product record |
With EasySupplierPrice |
| Where the data is |
On the order or the invoice, in another browser tab |
On the same screen, with the price already preloaded |
| Traceability |
There is none |
History with document, line, previous price and user |
| Several documents |
One by one, half an hour per batch |
Mass action from the vendor proposals, orders or invoices list |
| Vendor reference |
Your internal reference slips in as if it were the vendor's |
Optional block that aborts the capture when the reference is missing |
What is included
Capture where you negotiate
Button on the vendor proposal, order, invoice and reception. Only on validated documents, so you never capture prices from drafts that went nowhere.
A history you can actually look up
Its own page with filters by product, vendor, origin, action and dates, with a link to the document each price came from, and a widget on the home page with the latest captures.
Batches and automation, if you want them
Mass action over several documents selected from the list, and an automatic mode that captures when you validate the vendor proposal, order or invoice, without opening any dialog.
Your decisions, not the module's
Eight settings in the module setup: what gets stored, whether the product cost price is updated, whether the document line price is rewritten, whether it blocks when the vendor reference is missing, and three auto-capture switches.
What it is used for
- After a round of negotiations with vendors: bulk capture the new prices from the orders you just closed.
- When the final invoice arrives and the real price no longer matches the one on the order, and it has to land on the record.
- Keeping each vendor's price list up to date when the same product is bought from several of them.
- Answering "why did this product's margin drop in March?" with the history in your hand, not from memory.
- Not overwriting your purchasing terms with the product's internal reference when a line comes in without a vendor reference.
Getting started
1
Upload the ZIP from Home → Setup → Modules/Applications and enable it. It has no dependencies: it runs on a clean Dolibarr.
2
Grant the two permissions (capture prices and read the history) to whoever needs them. The administrator does not inherit them: you have to assign them and log back in.
3
Decide in the module setup what else you want stored besides the vendor price. Everything that reaches beyond the vendor price record is switched off out of the box.
4
Open an already validated purchase order and click "Capture purchase price". The captured price shows up in Products → Supplier purchase price history.
Requirements
| Dolibarr |
V14 to V23 |
| PHP |
7.4 to 8.3 |
| Database |
MySQL 5.7+ · MariaDB 10.2+ · PostgreSQL 10+ |
| Dolibarr modules |
None: it declares no dependencies |
| Installation |
Creates its own table. Disabling the module does not delete the data |
Before you buy
Will it touch my product cost?
Only if you switch it on, and it is off by default. Out of the box the module writes only to the product's vendor price (the native table of purchase prices by vendor); updating the product cost price and rewriting the document line price are two independent switches in the setup.
What happens if a line carries no vendor reference?
You can switch on a block that aborts the whole capture with a warning, instead of letting your internal reference be stored as if it were the vendor's and polluting your purchasing terms.
Can I capture many documents at once?
Yes: from the vendor proposals, orders and invoices lists there is a mass action that captures every product line of the documents you select.
How can I test it without risking my data?
With the screenshots on this page and a test installation. There is no demo simulating anything here: the module writes real prices, so try it first on a copy of your Dolibarr.
What if something does not fit my installation?
Write to us at
info@easysoft.es before you buy and we will look at it with you. We would rather tell you it does not fit than sell you something you cannot use.
What happens when the 365 days are up?
The module keeps working exactly the same: what expires is access to updates, not the use of it. If you want them again later, you renew without reinstalling anything.
Active maintenance
EasySupplierPrice 1.0.0 was published in July 2026 and is maintained on a deliberately conservative base: hook-based integration that replaces no core pages, zero dependencies on other modules, and only two touchpoints with the database — its own history table and Dolibarr's native method for the vendor price. It leans on the same core functions across the ten versions it declares, with two extra compatibility fixes for 14. The interface is translated into eight languages and the package is built and published by an automated pipeline on every version.
|
27
modules published on Dolistore
|
Complete source code
you get all of it and you can modify it
|
8
languages in the interface
|
365
days of updates
|
Does it fit what you need?
Tell us how you buy and we will tell you whether EasySupplierPrice works for you — and if it does not, we will tell you that too.
info@easysoft.es www.easysoft.es