Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX

Scheduled Low-Stock Email Alerts for Odoo 19 documentation

A guide to the daily low-stock digest: what counts as low, per-product thresholds, recipients, languages, the schedule, the log and troubleshooting.

Documents version 1.0.0Updated Oct 23, 2026

Start here

In plain words: Stock-outs are quiet. Nobody notices that the chair is down to 2 until a customer wants 3. This module sends your inventory managers one email a day that lists every product at or below its threshold, the most urgent first, so that purchasing happens before the shelf is empty.
The daily digest as the manager receives it.
The daily digest as the manager receives it.
You setThe module does
A default threshold, and optionally one per productChecks every storable product each day (and always when you press Send it now).
Who gets it, at what hour, on which daysSends one email per language to the right people, once a day.
Nothing elseSkips days when nothing is low, keeps a log of every digest, and shows the same list inside Odoo.
Tip: It does not order anything for you. It tells the right people early; your reordering rules and purchase orders stay as they are. The module can use the reordering rule minimum as the threshold, so you set it only once.

What you get

WhereWhat you see
Your inboxThe digest: product, SKU, quantity, threshold and how many are missing, coloured red at zero and orange above.
Settings → Low Stock AlertsWho, when, what counts as low.
Product → Inventory tabA Low Stock Alert box with the product's own threshold and a “Never alert” switch.
Inventory → Reporting → Low StockThe same list inside Odoo, live.
Inventory → Reporting → Low-Stock Digest LogEvery digest sent: when, how many products, to whom.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededInventory (stock). Email is part of Odoo.
Outgoing emailOdoo must be able to send email (an outgoing mail server in Settings → Technical)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_low_stock_alerts.zip; unzip it to get the folder taqnix_low_stock_alerts.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Low-Stock and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_low_stock_alerts --stop-after-init
Tip: Nothing is sent until you tick Send the daily low-stock digest in the settings.

Settings

In plain words: Open Settings → Low Stock Alerts. The settings belong to each company.
Daily digest: switch it on, choose the hour, the days and the recipients.
Daily digest: switch it on, choose the hour, the days and the recipients.
SettingWhat it does
Send the daily low-stock digestThe main switch. Below it you see how many products are low right now.
Send it now / Show the low productsSend the digest immediately (to test it), or open the live list.
Send at (hour) and DaysThe hour in the company time zone (set on the company's contact), and every day, Monday to Friday, or Sunday to Thursday.
Send toChosen users. Leave empty to send to all users of the group Inventory / Administrator.
Extra email addressesPeople without an Odoo user, separated by commas.
Send even when nothing is lowOff by default: no email on days without a low product.

What counts as low

What counts as low: threshold, quantity, warehouses.
What counts as low: threshold, quantity, warehouses.
SettingWhat it does
Default thresholdA product is low when its quantity is at or below this number. Default 10.
Use the reordering rule minimumWhen a product has a reordering rule, its minimum is the threshold (the minimums of several rules add up).
Quantity to compareOn hand, Available (on hand minus reserved) or Forecasted (with incoming and outgoing).
WarehousesCount only these warehouses. Empty: all of them added together.
Ignore products that never had stockProducts with no done stock move are skipped, so new catalogue items do not flood the digest.
Products listed at mostThe email lists the most urgent and says “… and 12 more”.
In plain words: A product's threshold is chosen in this order: 1. the threshold on the product, 2. the reordering rule minimum, 3. the company default. A product is low when it has a threshold above zero and its quantity is at or below it.

A threshold for one product

In plain words: Fast sellers need a bigger cushion than slow ones. Open the product, tab Inventory, box Low Stock Alert.
A storage box that should be re-ordered when 20 are left.
A storage box that should be re-ordered when 20 are left.
FieldMeaning
Low stock thresholdAlert at or below this quantity. 0 means: use the reordering rule or the company default.
Never alertKeep this product out of the digest, for example a discontinued item.
In plain words: The box appears only on products that track inventory. Both fields are per company.

The list inside Odoo

In plain words: Inventory → Reporting → Low Stock shows the same products as the email, live. Red lines are at zero, orange lines are low but not empty.
The live list. Click a product to open it.
The live list. Click a product to open it.

Send it now, and the log

In plain words: Press Send it now in the settings to send the digest right away, for example to check that the right people receive it. This works even when the daily digest is switched off, and it also sends when nothing is low (the email then says so).
A confirmation says how many emails were queued and for how many recipients.
A confirmation says how many emails were queued and for how many recipients.
The log: one line for every digest.
The log: one line for every digest.
In plain words: The email is put in Odoo's outgoing queue and goes out with the normal email queue (usually within minutes). If you see it stay in the queue, check your outgoing mail server.

Every reader in their own language

In plain words: Each recipient gets the email in the language of their Odoo user. Several languages in one company? One email per language is sent. Right-to-left languages such as Arabic are laid out right to left.
The same digest for an Arabic-speaking manager.
The same digest for an Arabic-speaking manager.
In plain words: Product names follow the same rule: they are shown in the reader's language when you have translated your products.

How the schedule works

DetailHow it works
CheckOdoo checks every hour (scheduled action Low stock: send the daily digest).
SendIt sends when the hour you chose has been reached on an allowed day, and no digest went out yet that day.
Server down at 08:00The digest goes out as soon as the server is back, the same day.
Time zoneThe time zone of the company's contact. Set it under Settings → Companies if it is empty.
Several companiesEach company has its own settings, recipients and digest.

What it does not do

Not coveredWhat to do
Creating purchase ordersUse Odoo's reordering rules; this module only warns people.
Real-time alertsIt is a daily digest. Use “Send it now” or the live list for the current picture.
SMS or WhatsAppEmail only.
Products without inventory trackingOnly products that track inventory can run out, so only those are checked.

For developers

In plain words: Skip this chapter if you only use the module.
ItemDetails
Enginetaqnix.low.stock.engine (abstract). _low_stock_map(company) returns {product id: (quantity, threshold)}.
Product fieldslow_stock_is_low (searchable), low_stock_qty, low_stock_limit.
Mail templatetaqnix_low_stock_alerts.mail_template_low_stock. The words come from the context (tx_labels), so translations are ordinary strings.
Cronir_cron_low_stock_digest, hourly.
# the products that are low right now
low = env['product.product'].search([('low_stock_is_low', '=', True)])

# send the digest by code
env['taqnix.low.stock.engine']._send_digest(env.company, trigger='manual')

Troubleshooting

ProblemWhat to do
No email arrivesCheck that Send the daily low-stock digest is ticked, that the recipients have an email address, and look at Inventory → Reporting → Low-Stock Digest Log. Then check your outgoing mail server.
“No recipient has an email address”Add an email to the users, choose other users, or type extra addresses.
A product I expect is missingIt may be set to “Never alert”, may never have had stock (see the setting), may have no inventory tracking, or its quantity is above its threshold.
Too many productsLower the default threshold, give products their own threshold, or switch on “Ignore products that never had stock”.
The email comes at the wrong hourSet the time zone of the company's contact.
Nothing is sent on weekendsThat is the “Days” setting. Choose Every day or Sunday to Thursday.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_low_stock_alerts. To remove it, uninstall it from Apps: the scheduled action, the settings, the product thresholds and the log are deleted.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.