Logistics

Lot sell-by and eat-by date alerts

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.

Price
€39 excl. VAT
Dolibarr
19.0 minimum
Version
1.0.0
Licence
GPL v3+
Languages
French, English, German

€39 excl. VAT.

Ordering, payment, invoicing and download are handled by the DoliStore.

Buy on the DoliStore — €39 excl. VAT
A shipment validation refused: lot L2610-07 of YAOURT-NAT has a sell-by date (DLC) past for 3 days. The shipment stays a draft.
A shipment validation refused: lot L2610-07 of YAOURT-NAT has a sell-by date (DLC) past for 3 days. The shipment stays a draft. Screenshot of the French-language interface.
01

What the module does

  • A home page widget: the lots in stock whose date falls within the chosen delay (30 days by default) or is past, most urgent first, with the date, its type and the number of days.
  • A full list, Products menu“Lots to watch (dates)”: filter by delay, by warehouse, or past dates only, with the quantity in stock and links to the product, the lot card and the warehouse.
  • A daily email to the addresses of your choice, through a scheduled job created disabled. Nothing is sent when there is no lot to report. A “Send the email now” button on the setup page.
  • When a shipment is validated, for each shipped lot whose date is past: “Block the validation”, “Warn only” or “Do nothing”, set separately for the sell-by date (block by default) and the eat-by date (warn by default).
  • When blocked, the message names the product, the lot and the past date. Nothing is saved: the shipment stays a draft and the stock is not touched.
  • The date labels are Dolibarr's, in each user's language: sell-by and eat-by date in English, DLC and DMD/DLUO in French.
02

Who it is for

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.

03

What the module does not do

This section appears on all 21 module pages, without exception.

  • The check covers shipment validation only: not TakePOS, not invoices, not orders.
  • The dates used are those of the lots. A lot without a date is never reported.
  • A date disabled in the setup of the Product Lots module is ignored.
  • Only lots in stock, with a quantity above zero, appear in the widget, the list and the email.
  • A date is past from the next day on: on the day itself, the lot is neither blocked nor reported when shipping.
  • The daily email needs email sending set up in Dolibarr, a sender address, and the scheduled job enabled.
  • The module reports and can block; it does not change or move any lot.
04

How it works

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.

The dates watched

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.

The home page widget

“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”.

The full list

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.

The daily email

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.

The shipment check

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 list of lots to watch: due within 30 days, filter by warehouse, with the quantity in stock, the sell-by date (DLC), the eat-by date (DMD/DLUO) and the days left or elapsed.
The list of lots to watch: due within 30 days, filter by warehouse, with the quantity in stock, the sell-by date (DLC), the eat-by date (DMD/DLUO) and the days left or elapsed. Screenshot of the French-language interface.
05

Settings

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.
The setup: alert delay, setting for a past sell-by date (block) and for a past eat-by date (warn), daily email recipients and send-now button.
The setup: alert delay, setting for a past sell-by date (block) and for a past eat-by date (warn), daily email recipients and send-now button. Screenshot of the French-language interface.
06

Security and safeguards

  • One dedicated permission, “See the lots to watch (sell-by, eat-by dates)”: without it, no widget and no list.
  • The shipment check applies to all users, whatever their permissions.
  • When blocked, nothing is saved: Dolibarr cancels the whole validation, stock movements included.
  • Setup reserved for administrators, with an anti-CSRF token.
  • No outside connection: the email goes through Dolibarr’s email sending.
07

What you get

What the module writes to your installation
Database tables createdNo 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.
PermissionsOne 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
  • Disable the module in SetupModules/Applications. The menu, the widget, the scheduled job and the shipment check disappear.
  • No lot and no shipment has been changed by the module: there is nothing to restore.
  • The module's settings remain in the database.

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.

  • Languages: French (fr_FR), English (en_US) and German (de_DE).
  • A README.md describing how it works and its limits.
  • A ChangeLog.md.
  • No table is added. The module reads the lots, their dates and their stock per warehouse.
  • Nothing is written to lots, products, stock or shipments.
  • The only writes are the settings of the setup page, stored as Dolibarr constants: DOLIXDLC_DAYS, DOLIXDLC_SHIP_SELLBY, DOLIXDLC_SHIP_EATBY and DOLIXDLC_MAIL_TO. Enabling the module also adds a widget and a scheduled job.
  • The email contains the list of lots to watch: product, lot, warehouse, quantity and dates.
  • No Dolibarr file is modified. No outgoing connection apart from Dolibarr’s email sending.
08

Compatibility

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.

Compatibility of the Lot sell-by and eat-by date alerts module
Dolibarr versionsDolibarr 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 PHP7.4
Dolibarr modules to enableProducts, Stocks, Product Lots
LicenceGPL v3 or later, full source code
LanguagesFrench, English, German
MenuProducts menu“Lots to watch (dates)”. “Lots to watch (sell-by, eat-by dates)” widget on the home page.
09

Installation

  1. Get the module from the DoliStore and download the zip file.
  2. In Dolibarr: HomeSetupModules/Applications“Deploy/install external app/module” tab, then upload the zip. Otherwise, unzip the dolixdlc folder into htdocs/custom/.
  3. Enable “Lot sell-by and eat-by date alerts”. Dolibarr also enables the Products, Stocks and Product Lots modules if they are not already enabled. No table is created; the widget and the scheduled job, disabled, are added.
  4. Grant the “See the lots to watch (sell-by, eat-by dates)” permission to the users concerned.
  5. On the setup page: alert delay, setting for the sell-by and the eat-by date, email recipients. For the daily sending, enable the “Lot date alerts: daily email” job in Admin ToolsScheduled jobs.

The details — permissions on the custom folder, shared hosting, upgrades, uninstalling — are on the page Installation and upgrades.

10

Frequently asked questions

Which Dolibarr versions does this module work on?

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.

Sell-by date, eat-by date: which dates are these?

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.

Does the module check till sales or invoices?

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.

Is a lot whose sell-by date is today blocked?

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.

What happens when a shipment is blocked?

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.

What if I uninstall?

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.

Who handles support, and how do updates work?

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.

11

Version history

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.

12

Support for this module

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

  • The exact Dolibarr version.
  • The module concerned and its version — here dolixdlc 1.0.0.
  • What you did, and what you expected.
  • The error message copied exactly, or a screenshot.
  • How Dolibarr is installed, if you know.

This module is on sale on the DoliStore.

Ordering, payment, invoicing and download are handled by the DoliStore.

Buy on the DoliStore — €39 excl. VAT
Also

The other modules