Multichannel stock alerts in PrestaShop 8 with n8n

PrestaShop 8 ships low-stock alerts by email only and with a single global threshold. For a medium or large catalogue you need per-product thresholds, several channels (email, WhatsApp, Slack) and deduplication; the most flexible way to get there is to send a webhook to n8n when stock crosses the threshold. This post explains the limits of the native alert and how to build multichannel alerts with smart routing.

What does PrestaShop 8 offer out of the box?

In the BO, Catalog > Products, each product has a “minimum quantity for alert” field. If filled, when stock drops below the threshold an email is sent to the administrator configured in the notifications module.

Obvious limits:

  • Email only. No WhatsApp, Slack or webhook.
  • A single recipient (or fixed recipients configured globally).
  • No differentiation by category or product.
  • No actionable information beyond the product name.
  • No deduplication: if stock crosses the threshold several times (up-and-down movements), it sends an alert each time.

For small stores with 20-50 products it’s enough. For serious catalogues, you need your own layer.

Technical strategy

The plan is:

  1. Hook into the stock-change event in PrestaShop.
  2. Compare stock before and after against the per-product threshold.
  3. If it crosses the threshold, fire notifications through the configured channels.
  4. Deduplication: record the last alert sent per product/threshold to avoid repeats.

The useful hook is actionUpdateQuantity, which fires whenever a product’s stock changes. It captures the product, the previous quantity and the new one.

Setup: per-product configuration table

A custom table to extend PrestaShop’s native field:

CREATE TABLE ps_stock_alert_config (
  id_product INT PRIMARY KEY,
  low_threshold INT,
  critical_threshold INT,
  notify_email VARCHAR(255),
  notify_whatsapp VARCHAR(20),
  notify_slack VARCHAR(255),
  notify_webhook VARCHAR(500),
  last_alert_low DATETIME,
  last_alert_critical DATETIME
);

This lets you configure two thresholds (low, critical) per product with different recipients per channel. The table is populated from a BO screen with optional CSV import for bulk configuration.

Better email

A useful email must carry actionable information:

  • Product name, SKU, category.
  • Current stock.
  • Sales velocity over the last 30 days (helps decide urgency).
  • Direct link to the product in the BO to edit.
  • Suggested reorder quantity based on velocity and supplier lead time.

That’s the difference between an actionable alert and a notification that gets ignored.

WhatsApp notification

For critical alerts that require immediate action, WhatsApp has a better read rate than email. Setup:

  • WhatsApp Business API account or BSP (Twilio, 360dialog, Brevo). Usual per-message cost.
  • A utility template approved by Meta with variables for product name, current stock and link.
  • The recipient’s number (stock manager) registered in the configuration.
  • Recipient opt-in to receive messages from the store.

WhatsApp only makes sense for critical alerts (imminent zero stock, critical rupture of a top product). For non-urgent alerts, email is enough.

Slack or Microsoft Teams notification

For teams using professional chat, Slack or Teams webhooks are the simple route:

  • Create an incoming webhook in the relevant workspace channel.
  • Store the webhook URL as module configuration.
  • A message formatted with visual blocks: title, key fields, a button linking to the product.

Cost is zero, delivery is instant and there’s a history in the channel. For small teams it can replace email.

Generic webhook to n8n

The webhook to an external system is what enables more complex automations. Typical case:

  1. Stock crosses the threshold.
  2. The store sends a POST to a webhook configured in n8n.
  3. The n8n workflow receives the data, checks sales history, calculates the reorder quantity.
  4. If the product is flagged for auto-reorder, n8n creates a purchase order with the supplier.
  5. If not, it sends the team a message with a suggestion for a manual decision.

With n8n in the middle, the flow becomes flexible: each product or category can follow different logic without changing the PrestaShop side. This is the piece the Zeyvro n8n Connector module solves: it sends the stock-change event to n8n with a signed webhook, and the reorder logic lives in your workflow.

Deduplication

Without deduplication, alerts saturate. If a product is at stock 5 with a threshold of 10, every stock change above or below the threshold would generate an alert.

Reasonable deduplication logic:

  • One alert per product + threshold + notification type, every 24 hours maximum.
  • If stock is replenished above the threshold, reset the flag to allow a new alert when it crosses again.
  • An optional “product restocked” notification when stock returns to safe levels.

Routing by owner

In stores with a distributed team, different categories or brands can have different owners:

  • Owner A for “electronics” category alerts.
  • Owner B for “home” category alerts.
  • Owner C for critical alerts of any category.

With the logic in n8n, the rules by category and urgency change without touching the store. Without this, every alert reaches everyone and the noise grows.

Notification schedule

Not every alert is urgent 24/7. Recommended configuration:

  • Low-stock alerts: sent only during the owner’s working hours.
  • Critical-stock alerts (near rupture): sent immediately at any hour.
  • Confirmed-rupture alerts (stock 0): sent immediately.

Forcing owners to receive non-urgent night-time notifications causes fatigue, and within a month they mute the channel.

Common mistakes

  • A single global threshold: a product that sells 100/month and one that sells 5/month with the same threshold. One saturates, the other never alerts in time.
  • No deduplication: the same product crosses the threshold 30 times through movement. 30 alerts in an hour.
  • Alerts to the wrong recipients: every employee receives every alert. Saturation.
  • No actionable information: the alert just says “X is low on stock”. Without context, it requires opening the BO for everything.

The shortcut: send the stock event to n8n

The most reusable part of all this —getting the stock-change event out of PrestaShop and into an external system reliably— is covered by the Zeyvro n8n Connector module: it registers the actionUpdateQuantity hook and sends the stock change to n8n with a signed webhook. From there, per-product thresholds, routing and deduplication are defined in your n8n workflow, with full flexibility.

A dedicated multichannel stock-alert module (with the per-product configuration screen inside the BO) is on our roadmap, but it’s not on sale yet: today the recommended route is the n8n Connector plus a workflow. When it pays off: catalogues with 50+ products where a rupture has a measurable cost. When it doesn’t: very small stores with a manual stock-list review.

Next step

To build the stock workflow in n8n, the base is the same as syncing with an ERP: we explain it in the n8n connection guide. If you have the stock flow pending and want guidance, email us at hola@zeyvro.com.

Frequently asked questions

Does PrestaShop 8 send low-stock alerts via WhatsApp?
Out of the box, no: it only emails a fixed recipient with a global threshold. For WhatsApp, Slack or webhook you need an additional layer, usually a webhook to n8n.

How do I set a different stock threshold per product in PrestaShop?
The native field is per-product but only triggers a global email. For low/critical per-product thresholds across multiple channels you need your own configuration table and external logic (for example, in n8n).

Is there a Zeyvro stock-alert module?
A dedicated module is on the roadmap, not yet on sale. Today the recommended route is the n8n Connector module sending the stock event to an n8n workflow that decides channel, threshold and routing.

How do I avoid getting 30 alerts for the same product?
With deduplication: one alert per product, threshold and channel every 24 hours, resetting the flag only when stock is replenished above the threshold.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top