Margin per day
margeparjour · v1.0.0
You see what a working day brings in before you accept the quote.
dolixdlc · version 1.0.0
You see in time the lots in stock whose sell-by or eat-by date is near or past, and you can prevent the validation of a shipment that contains a lot past its sell-by date.
€39 excl. VAT.
Ordering, payment, invoicing and download are handled by the DoliStore.

Dolibarr records the sell-by and eat-by date of each lot, but does not use them: no widget, no alert, and nothing prevents validating the shipment of an expired lot.
With the Product Lots module, each lot can carry a sell-by date and an eat-by date (“DLC” and “DMD/DLUO” in French Dolibarr), entered at reception or through a stock correction. These dates stay on the lot card: nobody is warned when they come near.
Who it is for: Grocery stores, food shops, caterers, wholesalers and pharmacies, and any business that manages dated products with Dolibarr lots.
This section appears on all 21 module pages, without exception.
The module reads the dates of the lots in stock and warns you in time, in three places. It also checks the validation of shipments.
They are Dolibarr’s own, under its own labels, in each user’s language:
| In English Dolibarr | In French Dolibarr | Default setting when shipping |
|---|---|---|
| Sell-by date | DLC: once past, the product must no longer be sold | block |
| Eat-by date | DMD/DLUO: once past, the product may still be sold | warn |
For each lot, the module keeps the nearer of the two dates. A date disabled in the setup of the Product Lots module is ignored.
“Lots to watch (sell-by, eat-by dates)”: the lots in stock whose date falls within the chosen delay (30 days by default) or is already past, most urgent first. For each: the product, the lot, the type of date, the date and a badge — “Past for 3 d”, “Today”, “In 2 d”.
Under Products“Lots to watch (dates)”: the same selection, with filters — delay in days, warehouse, “Past dates only” —, the quantity in stock, both dates and the due date. The product, the lot and the warehouse link to their cards.
A scheduled job sends the list to the addresses of your choice. It is created disabled: you enable it in Admin ToolsScheduled jobs. Nothing is sent when there is no lot to report. The “Send the email now” button on the setup page lets you check sending right away.
When a shipment is validated, the module looks at each shipped lot. If its date is past, it applies the setting chosen for that type of date:
| Setting | Effect |
|---|---|
| Block the validation | the validation is refused; the message names the product, the lot, the date and how many days ago it passed; the shipment stays a draft and the stock is not touched |
| Warn only | the shipment is validated, and a warning names the lot |
| Do nothing | no check for that type of date |
A date is past from the next day on: on the sell-by date itself, the lot can still be shipped.
The screenshots come from a demo grocery, on Dolibarr 24.0.1, on 14 October 2026, with the French interface.
A shipment validation refused: lot L2610-07 of YAOURT-NAT has a sell-by date (DLC) of 11/10/2026, past for 3 days. The module’s message appears at the top, and the shipment stays in “Draft” status.
The list of lots to watch, due within 30 days: five lots, two of them past — an eat-by date for 10 days, a sell-by date for 3 days —, then three lots due in 2, 6 and 25 days.

The setup page is reserved for administrators.
| Setting | Default | Effect |
|---|---|---|
| Alert delay | 30 days | Lots whose date falls within this number of days, or is already past, appear in the widget, the list and the email. |
| Validating a shipment with a lot whose sell-by date is past | Block the validation | Block, warn only, or do nothing. |
| Validating a shipment with a lot whose eat-by date is past | Warn only | Block, warn only, or do nothing. |
| Daily email recipients | empty | One or more addresses, separated by commas. An invalid address is refused. Empty: no email. |

| Database tables created | No table. The module reads the lots, their dates and their stock per warehouse. Its settings are Dolibarr constants: DOLIXDLC_DAYS, DOLIXDLC_SHIP_SELLBY, DOLIXDLC_SHIP_EATBY and DOLIXDLC_MAIL_TO. Enabling the module also adds a home page widget and a scheduled job, created disabled. |
|---|---|
| Permissions | One permission: “See the lots to watch (sell-by, eat-by dates)”, which gives access to the widget and the list. The shipment check applies to all users, whatever their permissions. The setup page is reserved for administrators. |
| Uninstalling |
|
The dolixdlc folder, in readable PHP, under the GPL v3 or later licence: the module descriptor,
the calculation and sending class, the widget, the trigger for the shipment check, the list, the
setup page, the icons.
fr_FR), English (en_US) and German (de_DE).README.md describing how it works and its limits.ChangeLog.md.DOLIXDLC_DAYS, DOLIXDLC_SHIP_SELLBY, DOLIXDLC_SHIP_EATBY and DOLIXDLC_MAIL_TO. Enabling
the module also adds a widget and a scheduled job.The module descriptor only declares a minimum version. No upper bound is written in the code: the versions below are those on which the module has actually been run.
| Dolibarr versions | Dolibarr 19.0 minimum. Installed and run on 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4 and 24.0.1. |
|---|---|
| Minimum PHP | 7.4 |
| Dolibarr modules to enable | Products, Stocks, Product Lots |
| Licence | GPL v3 or later, full source code |
| Languages | French, English, German |
| Menu | Products menu“Lots to watch (dates)”. “Lots to watch (sell-by, eat-by dates)” widget on the home page. |
The details — permissions on the custom folder, shared hosting, upgrades, uninstalling — are on the page Installation and upgrades.
The descriptor requires Dolibarr 19.0 minimum and PHP 7.4 minimum. The module has been installed and run on 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4 and 24.0.1. If you are on another version and have any doubt, write before buying.
The two dates you can enter on a lot in Dolibarr. English Dolibarr calls them “Sell-by date” and “Eat-by date”; French Dolibarr, “DLC” and “DMD/DLUO”. A past sell-by date (DLC) forbids the sale; a past eat-by date (DMD/DLUO) does not. Hence the default settings: block for the sell-by date, warn for the eat-by date. Both settings can be changed on the setup page.
No. The check happens only when shipments are validated. A sale in TakePOS or an invoice triggers no check. The widget, the list and the email do report all lots in stock, whatever the sales channel.
No. A date is past from the next day on. On the day itself, the lot appears in the widget and the list with the “Today” mention, but it is neither blocked nor reported when a shipment is validated.
The validation is refused and a message names the product, the lot, the past date and how many days ago it passed. The shipment stays a draft and the stock is not touched. If blocking is not wanted, the “Warn only” setting lets the shipment be validated and shows a warning naming the lot.
The menu, the widget, the scheduled job and the shipment check disappear. The module changed nothing in your lots or shipments: there is nothing to restore. Its settings remain in the database.
Support is provided by the person who wrote the module, at support@dolix.fr. Ordering, payment, the invoice and the download are handled by the DoliStore, where new versions are published.
Taken from the module’s ChangeLog.md file: a single source.
1.0.014 October 2026
First version: home page widget of the lots in stock whose sell-by or eat-by date falls within the chosen delay or is past; full list with filters (delay, warehouse, past dates only); daily email through a scheduled job, created disabled, and a send-now button; check when shipments are validated (block, warn or nothing), set separately for the sell-by and the eat-by date. Interface in French, English and German.
Write to support@dolix.fr. The person who wrote the module is the one who replies.
Reply within two working days. This is not an on-call service.
To include in your message
This module is on sale on the DoliStore.
Ordering, payment, invoicing and download are handled by the DoliStore.
margeparjour · v1.0.0
You see what a working day brings in before you accept the quote.
dolixdomaine · v1.0.5
A customer changes its name: its addresses move to the new domain in a single operation.
dolixmasse · v1.0.5
You change a field across a series of records without writing an SQL query.
dolixtaches · v1.0.3
A task was created in the wrong project: you move it, with its subtasks, its time spent and its documents.
dolixdoublons · v1.1.5
You find records entered twice and merge them: third parties, contacts and members.
dolixprix · v1.1.2
Your draft quotes and template invoices pick up the catalogue prices, one by one or all at once.
dolixapproche · v1.0.2
You spread freight, customs and the other costs of a shipment over the cost of products and their weighted average price.
dolixresteafacturer · v1.0.1
You see what remains to be invoiced on each customer order, line by line, in quantity and in amount excluding tax.
dolixmaj · v1.0.2
Before upgrading Dolibarr, you know what will block, what will break and what to do first. The module changes nothing.
dolixtva · v1.0.0
The mandatory VAT statement is printed on your invoices by itself: small business exemption, intra-Community supply, reverse charge, export.
dolixjustif · v1.0.0
The expense report PDF also contains its receipts, photos and PDFs, page by page: one single document to hand over.
dolixportemonnaie · v1.0.2
Your customers or members pay an amount in advance, and TakePOS spends it at each visit to the till, until it runs out.
dolixmondialrelay · v1.0.0
You choose the recipient's Point Relais® or Locker on the shipment, and the module creates the Mondial Relay label with your Sendcloud account.
dolixhabillage · v0.3.0
Make TakePOS look like a modern till: category tabs, large product grid, basket on the right, Charge button, trade looks or your logo colours.
dolixtags · v1.0.0
The tags of your proposals, orders, invoices, third parties, contacts, products and projects are shown in colour in a column of the list, without opening each card.
dolixcotisations · v1.0.0
A membership fee for each member, and all subscriptions renewed at once, with invoice, payment and email.
dolixconsignes · v1.0.1
You see how many returnable kegs, crates or pallets each customer holds, what those deposits are worth, and which ones have not come back in time.
dolixdepotvente · v1.0.2
For each consignor, you see what was sold and your commission, and the statement prepares the invoices as drafts.
dolixblgroupe · v1.0.1
One single PDF delivery note for several shipments of the same customer, signed only once.
dolixdernierprix · v1.0.0
You pick a product on a proposal, order or invoice: the last price and discount granted to that customer are shown, and applied in one click.