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.
| You set | The module does |
|---|---|
| A default threshold, and optionally one per product | Checks every storable product each day (and always when you press Send it now). |
| Who gets it, at what hour, on which days | Sends one email per language to the right people, once a day. |
| Nothing else | Skips 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
| Where | What you see |
|---|---|
| Your inbox | The digest: product, SKU, quantity, threshold and how many are missing, coloured red at zero and orange above. |
| Settings → Low Stock Alerts | Who, when, what counts as low. |
| Product → Inventory tab | A Low Stock Alert box with the product's own threshold and a “Never alert” switch. |
| Inventory → Reporting → Low Stock | The same list inside Odoo, live. |
| Inventory → Reporting → Low-Stock Digest Log | Every digest sent: when, how many products, to whom. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Inventory (stock). Email is part of Odoo. |
| Outgoing email | Odoo must be able to send email (an outgoing mail server in Settings → Technical) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_low_stock_alerts.zip; unzip it to get the foldertaqnix_low_stock_alerts. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- 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.
| Setting | What it does |
|---|---|
| Send the daily low-stock digest | The main switch. Below it you see how many products are low right now. |
| Send it now / Show the low products | Send the digest immediately (to test it), or open the live list. |
| Send at (hour) and Days | The hour in the company time zone (set on the company's contact), and every day, Monday to Friday, or Sunday to Thursday. |
| Send to | Chosen users. Leave empty to send to all users of the group Inventory / Administrator. |
| Extra email addresses | People without an Odoo user, separated by commas. |
| Send even when nothing is low | Off by default: no email on days without a low product. |
What counts as low
| Setting | What it does |
|---|---|
| Default threshold | A product is low when its quantity is at or below this number. Default 10. |
| Use the reordering rule minimum | When a product has a reordering rule, its minimum is the threshold (the minimums of several rules add up). |
| Quantity to compare | On hand, Available (on hand minus reserved) or Forecasted (with incoming and outgoing). |
| Warehouses | Count only these warehouses. Empty: all of them added together. |
| Ignore products that never had stock | Products with no done stock move are skipped, so new catalogue items do not flood the digest. |
| Products listed at most | The 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.
| Field | Meaning |
|---|---|
| Low stock threshold | Alert at or below this quantity. 0 means: use the reordering rule or the company default. |
| Never alert | Keep 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.
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).
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.
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
| Detail | How it works |
|---|---|
| Check | Odoo checks every hour (scheduled action Low stock: send the daily digest). |
| Send | It 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:00 | The digest goes out as soon as the server is back, the same day. |
| Time zone | The time zone of the company's contact. Set it under Settings → Companies if it is empty. |
| Several companies | Each company has its own settings, recipients and digest. |
What it does not do
| Not covered | What to do |
|---|---|
| Creating purchase orders | Use Odoo's reordering rules; this module only warns people. |
| Real-time alerts | It is a daily digest. Use “Send it now” or the live list for the current picture. |
| SMS or WhatsApp | Email only. |
| Products without inventory tracking | Only 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.
| Item | Details |
|---|---|
| Engine | taqnix.low.stock.engine (abstract). _low_stock_map(company) returns {product id: (quantity, threshold)}. |
| Product fields | low_stock_is_low (searchable), low_stock_qty, low_stock_limit. |
| Mail template | taqnix_low_stock_alerts.mail_template_low_stock. The words come from the context (tx_labels), so translations are ordinary strings. |
| Cron | ir_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
| Problem | What to do |
|---|---|
| No email arrives | Check 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 missing | It 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 products | Lower the default threshold, give products their own threshold, or switch on “Ignore products that never had stock”. |
| The email comes at the wrong hour | Set the time zone of the company's contact. |
| Nothing is sent on weekends | That 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.