Skip to product information
1 of 81

Advanced Inventory Reports Pro

Regular price €399,00
Regular price Sale price €399,00
Sold out

Advanced Inventory Reports Pro

Ten inventory analyses for Dolibarr, and the share of the catalogue they describe

Features

Inventory turnover, measured over one...
6 people are viewing this right now

View full product details

Advanced Inventory Reports Pro

Ten inventory analyses for Dolibarr, and the share of the catalogue they describe

Features

Inventory turnover, measured over one window
Consumption over the period divided by the average stock held over that same period, annualised on 365 days, with the days of cover and the trend against the previous window of equal length. Both terms of the ratio come from the same population: a numerator counting every exit against a denominator counting only the classified items reads high for no reason.
FSN: what moves, what lingers, what sleeps
Classification by movement frequency: fast above the high threshold, slow between the two, non-moving below. Separated by warehouse, because the same reference can turn fast in one depot and sleep in another — and that is exactly the case the report exists to find. The published thresholds (3 and 1) are the default, not a constant.
XYZ: where the stock value actually sits
The first 70 percent of the value in class X, the next 20 in Y, the last 10 in Z, shares editable. The Pareto curve shows at a glance how few references carry the bulk of the capital: that is the number of lines actually worth steering.
The FSN × XYZ matrix, and the action each cell calls for
The nine crossings, each with the action it calls for. The cell that matters is dormant AND high value: frozen capital, which neither report alone brings to the surface. The matrix does not recompute the classes — it reads back the two latest FSN and XYZ runs, because a cell that disagreed with the report it summarises would be worse than no cell at all.
Stock age, and its breakdown into buckets
Days since entry, per reference, then the same population summed into editable day buckets and per warehouse. Limited to FIFO and weighted average: without an entry layer there is no age to measure, and inventing one would put a figure on the screen that nothing supports. The dashboard states how much of the catalogue carries a method the measurement is possible on.
Out of stock: what, when, how much to order
What the observed consumption rate will exhaust, on what date, and the quantity to order allowing for the supplier lead time and the safety horizon. The sale lost during the lead time is valued at the selling price: valuing it at cost would understate it by the whole margin. An item nobody consumes never appears here — that is dormant stock, not a stockout.
Overstock: the excess, its value, and what it costs to keep
Everything held beyond the target coverage horizon: the excess quantity, its value, its share of the total and its yearly holding cost at the rate you set. Crossed with the XYZ and FSN classes, so that what is both expensive and immobile is dealt with first.
Stock movements in fourteen buckets, and they add up
Opening stock, purchases and purchase returns, sales and sales returns, transfers in and out, adjustments up and down, transit in and out, production, consumption, closing stock. Dolibarr records a movement type and an origin type, and it is the origin that tells a purchase from a sales return from an inventory correction: a report reading only the type collapses all of them into "in". A balance check proves on every row that the columns add up.
ABC on consumption value
Ranked on consumption value, not on the value in stock: ABC answers "what do we spend on", XYZ answers "what is lying in the warehouse". Two different populations, so deliberately two tables, plus an ABC × XYZ crossing to read them together.
Stock snapshots, rebuilt for any past date
Dolibarr keeps no history of stock levels: llx_product_stock holds the current quantity and nothing else. Any analysis "as at" a past date is therefore rebuilt by replaying the movement ledger backwards. Every snapshot states which of the two modes it used, and every line keeps the drift between the rebuilt quantity and today's level.
What the figures do not cover, said out loud
An item with no cost price, or whose costing method is not covered, is not dropped into the cheapest band at random: it is counted, its reason is named, the Dolibarr field to fix is printed, and every run states what share of the catalogue its figures actually describe. This is the one mistake that would show on no screen — an item with no cost falsifies every share, every cumulated percentage and every class boundary downstream.
Seven dashboards, 61 reports, alerts and delivery
Seven web dashboards (FSN, XYZ, the matrix, overstock, out of stock, movements, age breakdown), 61 reports in 8 families exportable to CSV, Excel, Word, PDF and JSON, configurable alert rules, column templates, scheduled e-mail delivery, a REST API of 44 routes, and a demonstration dataset that installs and uninstalls in one click.

What the module does not do

  • The module modifies no native Dolibarr table. It creates its own llx_inventoryreportspro_* tables and plugs in through hooks and triggers.
  • It never runs an analysis while a page is being rendered, nor inside a trigger. Classifying a catalogue is measured in seconds: doing it inside a product card would make the ERP wait for it, and doing it on every stock movement would do it hundreds of times an hour for one answer. The screens read the latest stored run, and say which one.
  • It does not correct your data. It names what is missing and the Dolibarr field to enter it in; the entry stays yours.
  • LIFO is not covered. Because the layers consumed first are the newest ones, the age of what remains cannot be read off the movement history the way FIFO and weighted average allow. The module says so rather than producing a figure.
  • An analysis "as at" a date is a reconstruction, not a reading. Dolibarr keeps no history of stock levels: a past quantity is derived from the movement ledger, and the drift against the current level is kept on every snapshot line.

Putting it to work

  1. Activate the module. A complete demonstration set is already in place: 84 references across 6 warehouses, a year of movements and the ten analyses already run.
  2. Grant the permissions to your groups. Without a permission row, the left-menu entries stay greyed.
  3. Check the cost price of your products: that is the only real prerequisite. The data-issue screen tells you which ones are missing and where to enter them.
  4. Set the analysis window and, if your sector calls for it, the FSN thresholds, the XYZ and ABC shares, the age buckets and the coverage bands.
  5. Take a stock snapshot, then run the ten analyses with Run all. The order is imposed: the matrix reads back FSN and XYZ, and overstock and ABC read back XYZ.
  6. Enable the scheduled jobs if you want the analyses to recompute on their own. They ship disabled.

Technical summary

Module number 1712000
Dolibarr 16 to 23
PHP 7.1 to 8.4
Depends on Products, Stock
Tables 34, prefix llx_inventoryreportspro_
Columns 559
Permissions 33 in 14 groups
Constants 30
Scheduled jobs 5
Analyses 10
Dashboards 7
Reports 61 in 8 families
REST API 44 routes
Exports CSV, Excel, Word, PDF, JSON
Languages English, French, German, Italian, Spanish
Costing methods valued FIFO, weighted average, standard cost
Age measurable on FIFO, weighted average
Developed by DoliResource
Copyright © DoliResource
Website : www.doliresource.com