Promotions

New products

  • DoliLang – Multilingual Content Manager for Dolibarr

    Create and manage multilingual content in Dolibarr from a single interface. Translate your product and service information into multiple languages and provide localized content for your users and customers.

    19.00 €
  • Comprehensive Bidding System for Dolibarr

    Manage the whole life cycle of your government and private sector tenders, from the tender notice to the award: a complete bid file, detailed cost estimation, document management, work location on Google Maps, weighted evaluation and project creation in one click.

    250.00 €

EasySupplierPrice - Supplier purchase prices, always up to date

mp23914d20260702164623

Capture purchase prices from supplier orders, invoices and receptions and update the product supplier price, with history and mass capture.

120.00 €
Excl. tax

  • Author EasySoft Tech SL
  • Module version 1.0.1
  • Release date 07/02/2026
  • Access to download and updates 1 year
  • How to contact support info@easysoft.es
  • Compatibility Dolibarr V14+   -   PHP7.4 - 8.3
  • Last update 09/17/2026 11:48 AM

More info...

EasySoft Tech - Solutions that drive your business

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.

Capture purchase price button on a Dolibarr purchase order
The "Capture purchase price" button on an already validated purchase order, next to the document's native buttons.
Purchase price review dialog, line by line
The review dialog: the price of every line is editable and you decide which lines get stored.
Purchase price history with filters by product, vendor and origin
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



If you think this module is a fork of another one (published after the first one) or violates some terms or conditions of use (for users or vendors), you can make a report at dolistore@dolibarr.org