Dolibarr shows €34.99 of margin on this sale. You keep €12.80.
The gap is the cost price, the payment fees and the shipping that the native calculation does not deduct. NexoraMargin rebuilds them, product by product — the product margin, also called net margin.
One-time purchase, no subscription. Instant download after payment. English and French manuals included. E-mail support. No external dependency.
- One-time purchase, GNU GPL v3
- Your data never leaves your server
- Nothing you typed is ever overwritten
Four screens, in the order you use them
- Coverage rate — how many products already have a cost, and which ones are still blind.
- Entry grid — fill the missing costs in one screen, without opening each product.
- Assisted matching — supplier invoices matched to products, with a confidence score.
- Profitability — product margin per item, once every deduction is applied.
On that same sale, Dolibarr reports a margin of €34.99: the price excluding tax, with nothing deducted, because no usable purchase cost is on the product record. That is 2.7 times the product margin in this case — and the gap is €22.19 of advertising budget you believe you have.
- Version1.0.0
- LicenceGNU GPL v3
- Dolibarr22.0, 23.0 and 24.0 tested, 16.0 minimum, PHP 8.2 tested
- Manual28 illustrated pages, English and French
- LicensingOne-time purchase, no renewal
The problem
Why the margin becomes unusable when the purchase cost is missing
Dolibarr’s native margin can be built on the best supplier price, the weighted average price, or the cost price keyed on the product record. All three are filled by purchasing — and a shop sync brings none of them. The cost then reads zero, and a module that merely filters that figure reports an unusable one, cleanly.
Native margin, or a module that filters it
- Expects a supplier price, a weighted average or a keyed cost price — a shop sync may bring none of them.
- Payment commissions and outbound shipping are in no calculation.
- Answers by customer, or by invoice — rarely by product.
- Changing a cost today silently rewrites last year’s margin.
- The answer arrives as a spreadsheet export, not on screen.
With NexoraMargin
- The cost price is yours: entered, imported or matched — never inferred from empty stock.
- Payment commissions and shipping actually paid are deducted before margin.
- The answer is per product, which is the level at which you decide.
- Costs are historized: a sale keeps the cost that applied on its date.
- The answer is on screen, in Dolibarr, not in a file you have to open elsewhere.
A distinction that costs money
Margin on cost and margin on price do not measure the same thing
The same product, the same euro of profit, two very different percentages. Confusing them is how a catalogue ends up priced on a number that flatters it.
| Markup — 113.2 % | Profit measured against the cost. Useful when you set a selling price from a purchase price. It exceeds 100 % as soon as you sell for more than double. |
| Margin — 53.1 % | Profit measured against the selling price. This is the share of your turnover you actually keep, and it can never exceed 100 %. |
Both figures describe the same sale. NexoraMargin displays them side by side, labelled, so nobody reads one for the other.
Accuracy over time
What keeps your figures true a year from now
Costs are historized, never overwritten
A sale keeps the cost that applied on the day it happened. Updating a purchase price today does not rewrite last year’s profitability — and your accounts stay comparable.
Your entry is the source of truth
Nothing you typed is replaced by an automatic import. Matching proposes, you confirm. A module that silently corrects your figures is a module you can no longer audit.
The code is readable
GNU GPL v3, no obfuscation and no licence server. You can read exactly how a margin is computed — which is the only real guarantee that it is computed the way this page says.
The screens
What the module looks like inside Dolibarr
Screenshots taken on a demonstration database, with anonymised references and suppliers. Click any screenshot to open it at full size.
The profitability report, filterable by period. Products with no cost price carry a « No cost price defined » badge instead of a fabricated margin, and rates below your alert threshold turn red — here ITEM-009, at 9.1 %.
Configuration
Five settings, on a single page
| Commission scales | Per payment method, because Stripe, PayPal and bank transfer do not cost the same. Applied before margin. |
| Net shipping cost | What carriage actually costs you, not what you invoiced the customer. The gap between the two is often where the margin went. |
| Statuses counted as turnover | Which document statuses enter the calculation. A draft order is not a sale. |
| Indicator and alert threshold | The margin level below which a product is flagged. Set by you — what is comfortable in one trade is fatal in another. |
| Minimum matching score | How confident the assisted matching must be before it proposes a supplier invoice line. Below it, the module says it does not know rather than guessing. |
All of it fits on one screen. The indicator shown and the alert threshold only change how the report reads; the net shipping cost and the statuses you tick change the figures themselves.
Pricing
A one-time purchase, under a free licence
Price excludes VAT. NexoraMargin is licensed under the GNU GPL v3: no licence key, no activation server, no renewal.
NexoraMargin 1.0.0
€79 once
No subscription, no renewal
- Module archive, ready to deploy
- 28-page illustrated manual
- Five interface languages
- GNU GPL v3
- Email support
Other Nexora tools
—
For WooCommerce and Telegram
- ROAS Analyzer Pro — break-even ROAS and net margin in WooCommerce
- Nexora Relay — a Windows AI workspace for Telegram
Ordering and invoicing are handled in French. Cette page en français.
Read before buying
What this module does not do
| Matching does not guess | Below the confidence score you set, it proposes nothing rather than proposing something wrong. Those lines stay for you to handle. |
| It does not fill your costs for you | A catalogue with no purchase prices anywhere stays a catalogue with no margin. The entry grid makes the work fast; it does not remove it. |
| It is not accounting software | These are management figures. Nothing is posted to a ledger and nothing is filed with a tax authority. |
| Dolibarr, not WooCommerce | For net margin and break-even ROAS inside a WooCommerce store, that is a different tool — ROAS Analyzer Pro. |
Already a customer
You already own NexoraMargin
This page is written for people discovering the module. If you have already installed it, here is what concerns you.
Current version
1.0.0 — first public release. The version you have installed is shown in Dolibarr under Setup > Modules, next to NexoraMargin.
The manual
It ships inside the archive, in docs/: 28 pages in
English, 28 in French, with the worked examples. Nothing to download
here — you already have it.
A question, a blocker
The frequently asked questions below cover the usual cases — an entered cost that does not show up, turnover that does not match. Otherwise support answers within two working days.
Before you buy
Frequently asked questions
Do I need stock management enabled in Dolibarr?
No — and that is the point. The native margin needs it because it relies on the weighted average purchase price. NexoraMargin uses the cost you provide, so it works on a catalogue that never carried stock.
Will updating a purchase price change my past margins?
No. Costs are historized: each sale keeps the cost that applied on its own date. This is what makes two periods comparable a year later.
Is there a licence key or an activation server?
Neither. The module is under GNU GPL v3. You buy the archive, deploy it, and it runs — with no call to any server of ours.
What happens if I uninstall it?
The costs you entered remain in the database. Uninstalling is not a decision you need to think twice about.
Which languages does the interface support?
Five for the interface. The 28-page manual is provided in English and French. The module follows the language configured in your Dolibarr.
Know what each product actually earns you
A margin computed on an empty average is a number that looks right and is not. Give your catalogue its historized cost price, and decide on figures you can audit.
One-time purchase • GNU GPL v3 • No licence server • Your data stays on your server
Dolibarr integrator? See the partner programme →

