Add-on bundle Version 10.0.3 Updated

Bundle Add-ons - Back In Stock Notifier for WooCommerce documentation

Bundle Add-ons puts all 26 Back In Stock Notifier add-ons into one plugin, and you switch each one on or off on its own. This guide covers installing the bundle and setting up every add-on, and lists the fixes for common problems.

Try the live demo Get Bundle Add-ons

Overview

Bundle Add-ons is one plugin that holds every add-on for Back In Stock Notifier for WooCommerce. You install this single plugin instead of each add-on separately. Then you switch each add-on on or off under Instock Notifier > Add-ons. Switching an add-on off keeps its settings and its data, so you can turn it back on later exactly where you left it.

The add-ons cover several areas:

  • Reaching customers: Restock Reminders and Twilio SMS and WhatsApp
  • Marketing platform sync: ActiveCampaign, Brevo, Constant Contact, Klaviyo, Mailchimp, MailerLite and Omnisend
  • Measurement: Track Sales and Waitlist Analytics
  • Running the waitlist: Team Alerts and Waitlist Priority
  • Consent: Double Opt-In and Unsubscribe
  • Subscriber management: Edit Subscribers, Never Restock, Export CSV and Import CSV
  • Storefront: Custom CSS and Demand Signals
  • Multilingual: Polylang, TranslatePress, Weglot and WPML
  • List quality: Ban Emails

This bundle is for stores that already run Back In Stock Notifier and want more from their waitlist. Each add-on with settings gets its own tab under Instock Notifier > Settings. Instock Notifier > Help has setup notes and live status checks for every add-on.

Requirements

  • WordPress 5.8 or later (tested up to 6.8)
  • PHP 7.2 or later
  • Back In Stock Notifier for WooCommerce, installed and active
  • For the marketing, SMS and chat add-ons: an account with that service (for example Mailchimp, Klaviyo, Twilio or Slack)
  • For the multilingual add-ons: the matching translation plugin (Polylang, TranslatePress, Weglot or WPML)

Installation

Bundle Add-ons runs on top of Back In Stock Notifier for WooCommerce, so install and activate that plugin first. You download the bundle as a zip file from your ProPluginsLab account. If you already have individual add-on plugins installed, deactivate them after activating the bundle and manage everything from the bundle instead.

  1. Make sure Back In Stock Notifier for WooCommerce is installed and active.

  2. Sign in to your ProPluginsLab account, open My Account > Downloads and download the Bundle Add-ons zip file.

  3. In WordPress, go to Plugins > Add New > Upload Plugin, choose the zip file and click Install Now.

  4. Click Activate Plugin.

  5. Go to Instock Notifier > Add-ons and switch on the add-ons you need.

License and automatic updates

Bundle Add-ons works fully as soon as it is activated. The license key turns on automatic updates, so new versions arrive in WordPress like any other plugin update. Pro features never depend on it.

Activate your license

  1. Find your license key in My Account on propluginslab.io, in the license keys section. It is also in your order confirmation email.

  2. In WordPress, open Instock Notifier > License. When two or more ProPluginsLab plugins or add-ons are active on the site, WooCommerce > Licenses also appears and lists all of them in one place.

  3. Paste the key into the Bundle Add-ons - Back In Stock Notifier for WooCommerce row and click Activate. The status changes to Active and automatic updates are on.

The license screen with a license key field, an Activate button and the license status
Instock Notifier > License: paste the key and click Activate.

Receive updates automatically

Once the license is active, new versions of Bundle Add-ons show up under Dashboard > Updates and on the Plugins screen. Click Update now, or click Enable auto-updates in the Bundle Add-ons row on the Plugins screen and WordPress installs every future release for you.

Good to know

  • Keys are checked once a day in the background, so your site never waits for the license server. If the server is briefly unreachable, the plugin keeps its last known status.
  • An expired key or a key that is not accepted only stops updates. Bundle Add-ons keeps working. After renewing, click Check now in its row.
  • Moving to a new domain: click Deactivate on the old site first, then activate the key on the new one. The status shows Site address changed, checking until the new address is confirmed.
  • On the command line: wp ppl-license list, wp ppl-license activate <plugin> <key>, wp ppl-license check and wp ppl-license deactivate <plugin>.

Quick start

  1. Choose your add-ons

    Open Instock Notifier > Add-ons. The add-ons are grouped by purpose, for example Marketing platforms or Consent and compliance. Click Switch on or Switch off next to each one. To change several at once, tick their checkboxes and use Bulk actions with Apply.

  2. Open an add-on's settings

    Click the Settings link under an add-on, or go to Instock Notifier > Settings and open its tab (for example Mailchimp or Restock Reminders). Each tab starts with a short setup guide and a list of the placeholders you can use.

  3. Connect a marketing platform

    On a platform tab such as Mailchimp, paste your API key and click Save Changes. Then click Fetch lists and pick a Target list. Turn on Enable sync last. Existing subscribers are then sent across in the background.

  4. Protect and grow your list

    Check the Blocked Emails tab so disposable addresses stay off your waitlist. On the Unsubscribe tab, pick your unsubscribe page. If you need confirmed consent, turn on Require confirmation on the Double Opt-In tab.

  5. Check that everything works

    Open Instock Notifier > Help. The System status table and each add-on's panel show live checks, such as whether credentials are present and whether background jobs are scheduled.

Add-ons in this bundle

#Switching add-ons on and off

Manage the bundle from Instock Notifier > Add-ons. The screen groups the add-ons by purpose: Reaching customers, Marketing platforms, Measurement, Running the waitlist, Consent and compliance, Managing subscribers, Import and export, Storefront, Multilingual and List quality.

Each row shows the add-on's name, its version, a short description and a status dot. Each row also has links to its Documentation and Settings.

  • Click Switch on or Switch off to change a single add-on.
  • To change several at once, tick their checkboxes, choose an action from Bulk actions and click Apply.

Switching an add-on off leaves its settings and data alone, so you can turn it back on later exactly where you left it. When the bundle itself is deactivated, it still remembers which add-ons you had switched on.

Once switched on, an add-on with settings gets its own tab under Instock Notifier > Settings. Some add-ons also add their own menu items, such as Import CSV, Analytics or Never Restock.

The Back In Stock Notifier add-ons screen listing add-ons in groups, each with a description, Documentation and Settings links and a Switch off button
Each add-on has its own Switch on or Switch off button. You can also use Bulk actions to change several at once.

#Restock Reminders

Restock Reminders follows up with people who were told a product is back but have not bought it yet, while it is still in stock. You can send up to two reminders.

To set it up, open Instock Notifier > Settings > Restock Reminders:

  1. Tick First reminder and set First reminder delay in hours after the alert. Twenty four hours suits most stores. Go shorter for fast-moving lines.
  2. Write the subject and message. Use {cart_link} rather than the product link, because these people have already decided.
  3. To send one final reminder, tick Second reminder. Its delay is measured from the original alert, not from the first reminder, so set it comfortably later.
  4. If you want, set Stop below this stock level so reminders stop once only a few units remain. Zero means keep reminding while anything is in stock. This only applies to products with stock management enabled.

Placeholders: {product_name}, {cart_link}, {product_price}, {stock_left} and {subscriber_firstname}.

Each reminder is checked again just before it goes out. It is skipped, and not retried, in any of these cases:

  • the subscriber bought
  • the subscriber unsubscribed
  • the product sold out again or fell to your stock floor

The Reminders column in the subscribers list shows who has received what.

Switch on Track Sales as well. Without it, there is no way to know that a subscriber already bought.

The Restock Reminders settings tab with first and second reminder delays, subjects and messages, a stock level floor and reminders per run
The second reminder's delay counts from the original alert, not from the first reminder.

#Twilio SMS and WhatsApp

This add-on sends restock alerts by SMS, WhatsApp or both to subscribers who gave a phone number. Its settings are on the SMS and WhatsApp tab.

  1. Turn on the phone field on the Visibility Settings tab. Otherwise nobody has a number to message.
  2. Paste your Account SID and Auth Token from the Twilio console and save. Then use Send a test message to check them. The test uses the saved credentials and costs one message.
  3. Pick your Channels: SMS only, WhatsApp only, or WhatsApp first, SMS if that fails.
  4. For SMS, enter an SMS From number in international format. A Messaging Service SID is the better option: when you set one, it is used instead of the From number.
  5. For WhatsApp, connect a WhatsApp sender in Twilio. Create a content template for restock alerts and wait for Meta to approve it. Then paste its WhatsApp Content SID. Variables 1 to 3 are filled with the product name, the price and the add to cart link. Enter the WhatsApp From number without the whatsapp: prefix.
  6. If you want delivery results, paste the URL shown under Delivery receipts into your Twilio Messaging Service as the Delivery Status Callback. Results then appear in the subscribers list.

Keep the Restock message under 160 characters so it fits in one SMS segment. Signup confirmation texts people when they join a waitlist. It is off by default because it doubles your message spend. Country rules limits sending to the dialling codes you list.

Messages are queued, never sent inline. WhatsApp free text only works inside the twenty four hour service window. Outside it, Meta rejects the message and Twilio still charges for the failed attempt.

The SMS and WhatsApp settings tab with Twilio credentials, channel choice, sender numbers, WhatsApp Content SID, message texts, country rules and delivery receipts URL
Save your credentials before you click Send a test message. The test uses the saved values.

#ActiveCampaign

This add-on syncs waitlist subscribers into ActiveCampaign as contacts on a list you choose. Each contact is tagged with the product it is waiting for, so you can build automations on those tags.

  1. In ActiveCampaign, open Settings and then Developer. Copy the account URL into Account URL, with no trailing slash and no /api/3 on the end. Copy the key into API key and click Save Changes.
  2. Click Fetch lists, then pick the Target list.
  3. Adjust Tags if you want. Placeholders such as {only_product_name} and {product_id} are filled in per subscriber.
  4. Turn on Enable sync. Existing subscribers are backfilled in the background.

Tags that do not exist yet in ActiveCampaign are created automatically. With Mirror unsubscribes on, someone who leaves the waitlist is marked unsubscribed on that list. The contact is not deleted and your other lists are untouched. Catch-up sync retries failed rows every five minutes, up to 25 subscribers per run.

If you get a 403 error when fetching lists, the account URL is almost always the cause.

The ActiveCampaign settings tab with Enable sync, Account URL, API key, Target list with Fetch lists, Tags, Mirror unsubscribes and Catch-up sync
Enter your credentials and fetch your lists before you turn on Enable sync.

#Brevo

This add-on syncs waitlist subscribers into a Brevo list, with the product they want stored as contact attributes. It can also have Brevo send the restock alert from one of your transactional templates.

  1. Create a v3 API key in Brevo under SMTP and API and then API keys. It starts with xkeysib. Paste it into API key and save.
  2. Click Fetch lists and pick the Target list.
  3. Turn on Enable sync.

To let Brevo send the alert itself:

  1. Build a transactional template in Brevo and note its numeric ID.
  2. Enter the ID in Restock template ID.
  3. Turn on Send events.
  4. Turn on Replace the built-in email. Without it, customers get two emails about the same restock.

In the Brevo template, use the parameters PRODUCT_NAME, PRODUCT_URL, CART_URL, PRODUCT_PRICE, PRODUCT_IMAGE and FIRSTNAME. In Brevo's syntax you reference them as {{ params.PRODUCT_NAME }}. The names must match exactly, in capitals.

The Brevo settings tab with placeholder table, API key, Restock template ID, Replace the built-in email, Target list, Tags, Mirror unsubscribes, Catch-up sync and Send events
Brevo only replaces the WooCommerce email when a template ID is set and Send events is on.

#Constant Contact

This add-on syncs waitlist subscribers into a Constant Contact list. Constant Contact uses OAuth rather than a plain API key, so you register an app and then authorise your store once. After that, tokens are refreshed automatically.

  1. Sign in at developer.constantcontact.com and create an app of the "Authorization Code Flow" type.
  2. Copy the redirect URI shown in the Connection row into your app's Redirect URI list. It must match exactly, including https.
  3. Paste the app's API key (Constant Contact calls it the client ID) and App secret, then save.
  4. Click Connect to Constant Contact, approve access, and you are returned to your site.
  5. Click Fetch lists, pick a Target list, and turn on Enable sync.

Constant Contact has no tags. The product a person is waiting for is recorded as a note on the contact instead. When someone leaves the waitlist, the contact is removed from the selected list, but the contact record is kept.

The Constant Contact settings tab with API key, App secret, the redirect URI and Connect to Constant Contact button, Target list, Tags and sync options
Register the redirect URI in your Constant Contact app exactly as it is shown here.

#Klaviyo

This add-on syncs waitlist subscribers into Klaviyo with the product they want as profile properties. It also fires two metric events, Back In Stock Subscribed and Back In Stock Available, which Klaviyo flows can trigger on.

  1. In Klaviyo, create a private API key with full access under Settings and then API keys. Paste it into Private API key and save.
  2. Click Fetch lists and choose the Target list.
  3. Turn on Enable sync and Send events.
  4. Click Create templates and flows in Klaviyo. This creates two email templates and two flows. Running it again updates what is already there rather than making duplicates. Open the flows in Klaviyo, check the sender name and address, and send yourself a test.
  5. Once the flows work, turn on Let Klaviyo send the email. This stops the WooCommerce restock and subscription emails.

These event properties are available in your templates: event.product_title, event.product_url, event.cart_url, event.product_image and event.product_price.

A metric only exists in Klaviyo after it has been received once. If the setup reports that Klaviyo does not know the metric yet, do this:

  1. Subscribe a test address with events on.
  2. Run a restock.
  3. Run the setup again.
The Klaviyo settings tab with event placeholders, Private API key, Let Klaviyo send the email, the one-click setup button, Target list, Tags and sync options
Only turn on Let Klaviyo send the email after your flows are live and tested.

#Mailchimp

This add-on adds everyone who joins a waitlist to a Mailchimp audience, tagged with the product they are waiting for. You can then build a segment such as "everyone waiting for this product" and mail those people directly.

  1. Create an API key in Mailchimp under Account and then Extras and then API keys. Paste it into API key and save. The part after the dash is your data centre and is read automatically.
  2. Click Fetch lists to load your audiences and pick the Target list.
  3. Adjust Tags if you want. The default writes one general tag plus one tag per product.
  4. Turn on Enable sync last. Existing subscribers are backfilled in the background over the next few minutes.

By default, contacts are subscribed straight away. Turn on Mailchimp confirmation if you want Mailchimp to email them a confirmation first. They receive nothing until they click it.

First and last names go into FNAME and LNAME, and PHONE is filled if your audience has that field. Contacts who unsubscribed from or were deleted in Mailchimp cannot be re-added by API. That is Mailchimp policy.

The Mailchimp settings tab with Enable sync, API key, Mailchimp confirmation, Target list with Fetch lists, Tags, Mirror unsubscribes and Catch-up sync
Leave Mailchimp confirmation off if you already confirm consent on your own site.

#MailerLite

This add-on adds waitlist subscribers to a MailerLite group. The product they are waiting for is stored in custom fields, which you can use for segments and automation triggers.

  1. In MailerLite, go to Integrations and then MailerLite API and generate a token with read and write access to subscribers and groups. Paste it into API token and save.
  2. Click Fetch lists to load your groups, then choose one as the Target list.
  3. Turn on Enable sync. The custom fields are created on your account automatically before the first sync.
  4. In MailerLite, build an automation triggered by "joins a group" on that group.

The add-on creates these custom fields: bis_product, bis_product_id, bis_product_sku, bis_product_url and bis_tags. MailerLite holds one contact per email address, so the product fields reflect the most recent waitlist the person joined. bis_tags builds up the full set.

Leave Subscriber status off if you already confirm consent on your site, for example with Double Opt-In. Turning both on asks people to confirm twice.

The MailerLite settings tab with Enable sync, API token, Subscriber status, Target list with Fetch lists, Tags, Mirror unsubscribes and Catch-up sync
The product custom fields are created for you on the first sync.

#Omnisend

This add-on syncs waitlist subscribers into Omnisend as tagged contacts. It also fires two custom events, back_in_stock_subscribed and back_in_stock_available, so an Omnisend automation can send the whole alert. Omnisend segments on tags and events rather than lists, so there is no list to choose.

  1. Create an API key in Omnisend under Store settings and then Integrations and API and then API keys. Paste it into API key and save.
  2. Turn on Enable sync.
  3. If you want Omnisend to send the alert, turn on Send events. Then create an automation in Omnisend with a Custom event trigger and pick back_in_stock_available.
  4. In the automation, use the event properties productName, productUrl, cartUrl, productImage and productPrice.

Email channel opts contacts into marketing email. Turn it off to add contacts without opting them in. SMS channel also subscribes the phone number to SMS. Only use it if your form makes clear that giving a number means agreeing to texts. A contact who already unsubscribed in Omnisend is never flipped back to subscribed.

If Omnisend sends the alert, turn off the built-in notification under WooCommerce > Settings > Emails so customers do not receive both.

The Omnisend settings tab with event placeholders, Enable sync, API key, Email channel, SMS channel, Tags, Mirror unsubscribes, Catch-up sync and Send events
Custom events only appear in Omnisend's trigger list after Omnisend has received one.

#Track Sales

Track Sales links orders back to the restock email that produced them. Every add to cart link in a back in stock email is signed with the subscriber it was sent to. When an order from that link reaches a paid status, the subscriber is marked Purchased and the order and revenue are recorded.

Settings are on the Sales Attribution tab.

  1. Make sure your back in stock email uses the {cart_link} placeholder. That is the link this add-on signs. A plain {product_link} is still matched later by email address, but only the signed link gives same-session attribution.
  2. Leave Reconcile by email on. It catches customers who got the email, browsed away and came back later without the link.
  3. Set the Attribution window in days. It only applies to email matching. Signed links are always attributed.
  4. Leave Revenue on to record the line total of the subscribed product against each converted subscriber.

Converted subscribers show a Purchased status, and the Order and Revenue columns are filled in the subscribers list. Orders from a signed link are attributed immediately. Orders matched by email are picked up by a background job that runs every fifteen minutes.

Waitlist Analytics and Restock Reminders both rely on this add-on for conversion and purchase data.

The Sales Attribution settings tab with Reconcile by email, Attribution window in days and Revenue options
Signed links are always attributed. The attribution window only limits matching by billing email.

#Waitlist Analytics

Waitlist Analytics turns the waitlist into reports. Open Instock Notifier > Analytics, choose a Period and click Apply.

At the top are summary cards:

  • People waiting now
  • Signups in period
  • Notified in period
  • Converted
  • Attributed revenue

Below them:

  • Signups and notifications over time: a chart of signups against restock alerts sent.
  • Where everyone stands: every waitlist entry by status.
  • Unmet demand: products with people waiting, ranked by count, with Waiting, Oldest signup, Stock and Potential value. Start here. It is the closest thing to a purchase order this data can give you.
  • Notification performance: Notified, Purchased, Conversion and Revenue per product.

Use Export this table to CSV under a table to download it. The export contains product names and counts, not subscriber addresses.

Figures are cached for fifteen minutes. Click Refresh figures to recompute now. Conversion and revenue need the Track Sales add-on.

The Waitlist Analytics settings tab only controls the default period, the dashboard widget and how many rows each table shows.

The Waitlist Analytics report with period selector, summary cards, a signups and notifications chart, a status bar, the unmet demand table and the notification performance table
Use Refresh figures to bypass the fifteen minute cache. Each table can be exported to CSV.
The Waitlist Analytics settings tab with Default period, Dashboard widget and Rows per table
These settings only change how the reports are shown, not what they count.

#Team Alerts

Team Alerts posts waitlist signals to a chat channel your team already uses.

  1. Create an incoming webhook for the channel:
    • Slack: create an Incoming Webhook.
    • Discord: use Channel settings and then Integrations and then Webhooks.
    • Microsoft Teams: add an Incoming Webhook connector.
  2. Paste the URL into Webhook URL and choose the matching Destination: Slack, Discord, Microsoft Teams or Plain JSON webhook. Message formats differ, so this must match.
  3. Save, then click Send a test message. The test uses the saved URL and destination.
  4. Set the alerts you want. Start with Demand threshold.

The Demand threshold alert fires when a product passes that many waiting subscribers, and again at each multiple of it. Zero turns it off. Restock summaries are batched over a few minutes, so a popular restock produces one message instead of one per subscriber. Daily digest posts yesterday's signups, notifications and top demand. Mention on threshold alerts adds something like <!here> in Slack or @here in Discord.

Alerts carry product names, counts and potential values only. No email addresses or phone numbers are sent. The webhook URL is encrypted at rest and shown masked.

The Team Alerts settings tab with Webhook URL and Send a test message, Destination, Demand threshold, Restock summaries, Daily digest and Mention on threshold alerts
Pick the Destination that matches your webhook, then send a test message to check it.

#Waitlist Priority

Waitlist Priority decides who hears first when stock is limited, and how many people hear at a time.

Under Notify in this order, choose one of these:

  • First come, first served (the default, and the one to keep unless you run a VIP tier)
  • Highest lifetime spend first
  • Priority customer roles first, then signup order
  • Registered customers first, then guests

For role ordering, list role slugs in Priority roles, highest first, for example vip_customer, wholesale.

Turn on Wave release if your restocks are often smaller than your waitlists. Then set these:

  • People per unit of stock: how many subscribers to notify per available unit. Three is a sensible start.
  • Gap between waves: minutes between waves. Under fifteen minutes there is little point having waves.
  • Maximum waves
  • Stop at this stock level: hold back a few units, for example for walk-in or wholesale.

Stock is re-read before every wave. Once the product sells out, the remaining waves are cancelled and those subscribers stay on the waitlist for the next restock. Wave sizing needs a stock number. For products without stock management, the add-on paces sending with a fixed wave size instead. Spend ordering computes a score per customer the first time, which takes a moment on a large waitlist.

The Waitlist Priority settings tab with notify order, priority roles, wave release and wave sizing options
Wave release only rations alerts for products that manage stock.

#Double Opt-In

With Double Opt-In on, joining a waitlist sends a confirmation email first. The entry stays at Awaiting confirmation until the link is clicked. Only then does it become active and count towards your subscriber numbers.

  1. On the Double Opt-In tab, tick Require confirmation.
  2. Make sure Confirmation message contains {doubleoptin_verify_link}, usually inside a link or button. Without it, nobody can confirm.
  3. Edit the on-screen messages for after signing up, a pending confirmation, after confirming, and an expired link.
  4. Set Delete unconfirmed entries after in days. Older unconfirmed entries are deleted automatically.

Placeholders: {doubleoptin_verify_link}, {product_name}, {subscriber_name} and {shopname}.

Unconfirmed entries appear under the Awaiting confirmation filter in the subscribers list. You can resend the email there, row by row. With Consent evidence on, the add-on stores the confirmation time, the originating page and a salted hash of the IP address. The raw IP is never kept.

Confirmation only applies to new signups. People already on a waitlist stay active.

The Double Opt-In settings tab with Require confirmation, confirmation subject and message, on-screen messages, the expiry in days and Consent evidence
The confirmation message must include the {doubleoptin_verify_link} placeholder.

#Unsubscribe

The Unsubscribe add-on gives people three ways to leave a waitlist:

  • a signed one-click link in your emails
  • the mailbox Unsubscribe button in Gmail and Yahoo
  • a Subscribed List tab in My Account
  1. On the Unsubscribe tab, choose your Unsubscribe page. A page is created for you the first time the add-on is switched on. It must contain the [cwginstocknotifier_unsubscribe] shortcode. The tab shows Ready with a View page link when the page is set up.
  2. Add {cwginstock_unsubscribe} to your subscription and back in stock email templates, usually in an "unsubscribe" link at the foot of the message. Use {cwginstock_unsubscribe_all} for a link that removes the person from every waitlist.
  3. Leave Mailbox unsubscribe button on. It sends the List-Unsubscribe and List-Unsubscribe-Post headers. Turning it off makes it more likely your notifications land in spam.
  4. If you change My Account endpoint, save your permalinks once afterwards so the new URL works.

You can also edit these:

  • the confirmation, already-unsubscribed and invalid-link messages
  • the My Account tab label and heading, and the link text
  • whether the Subscribed List shows thumbnails, hides SKUs, or shows how many people are waiting for each product
The Unsubscribe settings tab with the Unsubscribe page selector, mailbox header option, page messages, My Account endpoint and Subscribed List display options
The selected page must contain the [cwginstocknotifier_unsubscribe] shortcode.

#Edit Subscribers

With Edit Subscribers on, every row in Instock Notifier > All Subscribers gains an Edit link, and Add New Subscriber appears in the menu. Use it to fix a mistyped address, move someone to a different variation, or add a customer who asked to be notified by phone.

  1. Go to Instock Notifier > All Subscribers, hover over a row and click Edit.
  2. You can change the email, name, phone, product, quantity or status. The product field searches your catalogue, including variations, so you do not need to know the ID.
  3. Setting someone back to Subscribed makes them eligible for the next restock notification.

Edits are silent. No email is sent because of an edit. Only users who can manage WooCommerce can edit subscribers.

On the Editing Subscribers tab, Change history records which fields changed, when and by whom. The latest entries show under the edit form. Leave Duplicates off, because the same address on the same product twice means duplicate notification emails.

The subscribers list also shows columns added by other add-ons, such as Reminders, Confirmed, the sync status for each marketing platform, Order and Revenue.

The Editing Subscribers settings tab with Change history and Duplicates options
Leave Duplicates off unless you have a specific reason to turn it on.
The Subscribers list with Add New Subscriber, Export CSV and Import CSV buttons, status filters, and columns added by add-ons
Add-ons add their own columns and buttons to the subscribers list.

#Never Restock

Never Restock is for products that are gone for good. You map a discontinued product to one or more replacements. When a replacement comes into stock, everyone on the discontinued product's waitlist is emailed about it instead.

  1. On the Never Restock tab, tick Enable and save. A Never Restock item appears in the Instock Notifier menu.
  2. There, add a rule: pick the discontinued product, then one or more replacements.
  3. Write the Email subject and Email message. Be honest that the original is discontinued.
  4. Lower Emails per batch if your mail provider rate limits you.

Placeholders:

  • {replacement_product}, {replacement_product_link}, {replacement_product_add_to_cart} and {replacement_product_price}
  • {product_name} (the original product)
  • {subscriber_name} and {shopname}

Rule priority decides what happens when one replacement is named in several rules. Apply every matching rule can mean several emails to the same person.

Stock is checked again before each batch is sent. Each subscriber is told once per replacement and is then marked Notified.

The Never Restock settings tab with placeholders, Enable, Rule priority, email subject and message, and Emails per batch
Use the replacement placeholders in the message so the email actually names the alternative.

#Export CSV

Export CSV downloads your subscriber list as a CSV file.

  1. Go to Instock Notifier > All Subscribers.
  2. Click Export CSV above the list.
  3. Tick the columns you want and, if you like, narrow the export by status, product or date. The file downloads straight away.

The file is UTF-8 with a byte order mark, so Excel shows accented names correctly. Any value starting with =, +, - or @ gets an apostrophe in front so spreadsheets treat it as text. Rows are fetched in batches, so large waitlists do not run out of memory.

On the CSV Export tab you can change two things:

  • Category columns: how many category columns the file gets, so every row lines up.
  • Delimiter: Comma, Semicolon or Tab. Semicolon suits regional Excel builds where comma is the decimal separator.

Only users who can manage WooCommerce can export. The file can contain personal data, so treat it with care.

The CSV Export settings tab with Category columns and Delimiter
Switch the delimiter to Semicolon if everything lands in one column in Excel.

#Import CSV

Import CSV brings waitlist subscribers in from another platform or a backup. Open Instock Notifier > Import CSV.

  1. Prepare a CSV file with a header row. You need an Email column plus either Product ID or Product SKU. Everything else is optional. The screen has a Download a sample file link.
  2. Choose the file and click Upload and read columns. The maximum size is 20 MB, so split larger lists into several files.
  3. Map each column to a field. Match products by ID if you have it, or by SKU when the data came from another store.
  4. Review the preview of the first few rows, then start the import. It runs in chunks with a progress bar, and you can close it and resume.

Rows whose email and product are already on the waitlist are skipped and counted as duplicates. Your Ban Emails block list applies to imports too. Use dates in the format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. The uploaded file is deleted when the import finishes.

On the CSV Import tab:

  • Status for rows with no status column sets the status for rows that have none.
  • Run integrations on import is off by default, so imported rows are not pushed to your marketing platform and do not trigger confirmations.
  • Leave Unknown products on to skip rows whose product does not exist in your store.
The Import subscribers from CSV screen with a file chooser, the Upload and read columns button and a note about the header row
Map Email plus either Product ID or Product SKU. Everything else is optional.
The CSV Import settings tab with default status, Run integrations on import and Unknown products
Run integrations on import is off by default, so migrated rows do not trigger emails.

#Custom CSS

Custom CSS restyles the front-end subscribe form, button and popup without editing theme files. Its settings are on the Subscribe Form Styling tab.

  1. Pick the layout first. Use Subscribe Form Design on the Frontend Form tab (and the popup design if you use the pop-up form). This tab then recolours whichever design you chose.
  2. Set the sizes and colours you want and save. Leave a field empty to keep your theme's styling.
  3. View an out of stock product to check the result. If you use a page cache, purge it once after saving.
  4. For anything the fields do not cover, use the Custom CSS box at the bottom. It is output after every other rule, so it always wins. Tags and scripts are stripped on save.

The tab covers these areas:

  • form width on desktop and mobile (mobile applies below 768px)
  • heading, button, form panel and input styling
  • popup backdrop, background, corner radius and maximum width
  • popup button, success and error message colours
  • the guest notice

Colour fields use Select Color pickers. The mobile width is written as a media query, so it works behind page caching.

The Subscribe Form Styling tab with width, font size, colour picker and corner radius settings for the form, inputs and popup
Leave a field empty to inherit your theme's styling.
The Frontend Form settings tab with Frontend Subscribe Form Display Type and Subscribe Form Design selectors and form text fields
Choose the form design on the Frontend Form tab first, then fine-tune it on Subscribe Form Styling.

#Demand Signals

Demand Signals shows how many people are already waiting for an out of stock product. It can also tell a new subscriber their place in the queue.

  1. On the Demand Signals tab, set Minimum before showing. Below this number, nothing is shown. The add-on's own guidance suggests ten as a reasonable floor.
  2. Choose Where to show it:
    • Above the subscribe form, outside the box
    • Inside the form, above the fields
    • Below the subscribe button
    • Inside the form heading bar
    • Only where I place the shortcode
  3. Edit the Message. Use {count} for the number.
  4. If you want, tick Queue position and edit the Queue position message, using {position}. It is shown straight after someone subscribes.
  5. If you want, tick Shop and category pages to show a short badge on product listings, and choose the Appearance.

The Showing right now panel tells you how many products or variations are at or above your minimum. Variations are counted separately from their parent product.

To place the count anywhere else, use the [bis_demand_count] shortcode. Only real counts are shown, and there is no setting to inflate them. When you switch the add-on on, counts are rebuilt from the existing waitlist.

The Demand Signals settings tab with minimum count, the Showing right now panel, placement, message, queue position and listing badge options
The Showing right now panel tells you whether any product currently meets your minimum.

#Polylang

The Polylang add-on records the language each person subscribed in. It treats every translation of a product as one waitlist and sends each notification in the subscriber's own language.

  1. Go to Languages > String translations and filter by the group "Back In Stock Notifier". Translate the email subject, heading and body for each language you sell in.
  2. Check the translation status table in the add-on's settings. A cross means that language will get the original text.
  3. Leave "Treat translations as one waitlist" on, unless each translation of a product really has its own stock.
  4. Test by subscribing on a translated product page and then restocking.

You edit the original email text under WooCommerce > Settings > Emails, on the Back In Stock emails. Editing it registers a new string, so check the status table again afterwards. If the strings are not listed yet, open WooCommerce > Settings > Emails once and look again.

A fallback language code covers subscribers with no recorded language, such as imported rows. Leave it empty to use the site default. Do not run this add-on together with the WPML add-on.

#TranslatePress

The TranslatePress add-on records the language a person was browsing in when they subscribed. It then sends their restock notification in that language.

TranslatePress translates rendered pages, and an email is never rendered as a page. So you write the email text in the add-on's settings instead of the TranslatePress editor.

  1. Write the email subject, heading and body for each language in the add-on's fields. There is one set per language configured in TranslatePress.
  2. Check the translation status table. A cross means that language will receive the original text, never a blank email.
  3. Test by switching the shop to another language, subscribing on an out of stock product, and restocking it.

TranslatePress does not duplicate products, so each product already has one waitlist and no shared waitlist setting is needed. Set a fallback language code for subscribers with no recorded language, for example rows imported from elsewhere.

#Weglot

The Weglot add-on records the language a person was browsing in when they subscribed. It then sends their restock notification in that language.

Weglot translates pages as they are served, and emails never pass through it. Without this add-on, every notification goes out in your original language.

  1. Write the email subject, heading and body for each language in the add-on's fields. There is one set per destination language configured in Weglot.
  2. Install the WordPress language pack for each language under Settings > General, so the surrounding email template is translated too.
  3. Check the translation status table. A cross means that language will receive the original text.
  4. Test by switching the shop to another language, subscribing on an out of stock product, and restocking it.

The email text is stored on your site and never sent to Weglot, so it does not use your Weglot word quota. Each product has one waitlist, so no shared waitlist setting is needed. Set a fallback language code for subscribers with no recorded language.

#WPML

The WPML add-on records the language each person subscribed in. It treats every translation of a product as one waitlist and sends each notification in the subscriber's own language.

  1. Go to WPML > String Translation and filter by the domain "Back In Stock Notifier". Translate the email subject, heading and body for each language you sell in.
  2. Check the translation status table in the add-on's settings. A cross means that language will receive the original text.
  3. Leave "Treat translations as one waitlist" on, unless each translation of a product really has its own stock. Without it, a restock on the original product does not reach people who signed up on a translation.
  4. Test by subscribing on a translated product page and then restocking. The email should arrive translated, with a link to the translated product.

The original email text is under WooCommerce > Settings > Emails, on the Back In Stock emails. Editing it creates a new string, so check the status table again afterwards. Set a fallback language code for subscribers with no recorded language. Do not run this add-on together with the Polylang add-on.

#Ban Emails

Ban Emails keeps junk addresses off your waitlist. Every rule runs before a subscription is stored, so a blocked address never appears in your subscriber list. The settings are on the Blocked Emails tab.

  1. Leave Disposable providers on. It uses a list of throwaway mail domains that ships with the add-on and updates with it. Click Show the full list to see it.
  2. If you want, tick Role accounts to block shared mailboxes such as info@, admin@ and sales@.
  3. If you want, tick Deliverability check to reject domains with no mail server. This catches typos such as gmial.com.
  4. Add your own Blocked domains and Blocked addresses, one per line or comma separated. Wildcards work for domains, for example *.example.com.
  5. Put genuine customers in Always allow. It is checked first and overrides every other rule.
  6. Set the Message shown when blocked. Keep it vague.

With Logging on, blocked attempts are written to the plugin log with the address partly masked. That helps when a customer says they cannot subscribe. Rules apply at signup and to CSV imports. Existing subscribers are left alone.

The Blocked Emails settings tab with disposable provider blocking, role accounts, deliverability check, blocked domains and addresses, Always allow, the blocked message and logging
Always allow is checked before every other rule, so use it for a real customer who is being blocked.

#Help and status checks

Instock Notifier > Help is the first place to look when an add-on is not doing what you expect.

  • The System status table lists your parent plugin, WooCommerce and PHP versions, background processing, credential encryption, how many add-ons are switched on, and how many people are on waitlists.
  • Copy system report copies versions and configuration state for a support request. It contains no subscriber addresses and no API keys.
  • The Add-ons list shows every add-on with an ON or OFF badge. Expand an add-on for its current status, setup steps, settings reference, error messages, troubleshooting, and what it stores and sends. Start with red and amber rows.
  • Use the filter box (for example whatsapp, csv or unsubscribe) to find an add-on quickly.

The parent plugin's Instock Notifier > Status screen has a Test Email button. Use it when confirmation or restock emails never arrive for anyone.

The add-on help screen with a System status table, a Copy system report button and an expandable list of add-ons with ON and OFF badges
Each add-on panel shows live checks, so you can see why an add-on is not working.
The Plugin Status screen with cron status, settings configuration, an email status Test Email button and active add-ons
Use Test Email to check that your site can send mail at all.

Settings reference

Instock Notifier > Settings > Restock Reminders

SettingTypeDefaultWhat it does
Send a reminder to people who have not bought yet checkbox Off Turns on the first reminder.
First reminder delay number 24 Hours after the restock alert.
First reminder subject text Still available: {only_product_name} Subject of the first reminder.
First reminder message textarea - Body of the first reminder. Use {cart_link} so people can add the product straight to their basket.
Send one final reminder checkbox Off Turns on the second reminder.
Second reminder delay number 72 Measured from the original alert, not from the first reminder. Set it comfortably later than the first delay.
Second reminder subject text Last chance on {only_product_name} Subject of the second reminder.
Second reminder message textarea - Body of the second reminder.
Stop below this stock level number 0 Reminders stop once stock falls to this level or below. Zero means keep reminding while anything is in stock. Only applies to products with stock management enabled.
Reminders per run number 50 How many reminders are sent per background run.

Instock Notifier > Settings > SMS and WhatsApp

SettingTypeDefaultWhat it does
Account SID text - From the Twilio console.
Auth Token text - From the Twilio console. Save your settings first. The test uses the saved credentials and the channel you selected, and it costs one message.
Channels select SMS only SMS only, WhatsApp only, or WhatsApp first, SMS if that fails. The third option falls back to SMS when the number has no WhatsApp account or the template is rejected.
Messaging Service SID text - Optional but recommended for SMS. When set it is used instead of the From number and Twilio picks the best sender per destination.
SMS From number text - A number on your Twilio account, in international format. Ignored when a Messaging Service SID is set.
WhatsApp From number text - Your approved WhatsApp sender, in international format. Do not include the whatsapp: prefix; it is added for you.
WhatsApp Content SID text - The approved template used for restock alerts. Variables 1 to 3 are filled with the product name, the price and the add to cart link, in that order.
Send the message body as free text when no Content SID is set checkbox Off Only works inside the twenty four hour service window. Outside it Meta rejects the message, which Twilio still charges you for as a failed attempt.
Message subscribers when their product is back in stock checkbox On Sends the restock alert by SMS or WhatsApp.
Restock message textarea {only_product_name} is back in stock at {shopname}. Grab it here: {cart_link} Keep it under 160 characters to stay in one SMS segment. Longer messages still send, they just cost more per recipient.
Send a short confirmation when someone joins a waitlist checkbox Off Off by default. It doubles your message spend and most stores confirm by email instead.
Signup confirmation message textarea You are on the list for {only_product_name} at {shopname}. We will text you the moment it is back. Text of the signup confirmation.
Country rules text - Comma separated dialling codes to allow, for example 1, 44, 61. Leave empty to message every country.

Instock Notifier > Settings > ActiveCampaign

SettingTypeDefaultWhat it does
Send waitlist subscribers to ActiveCampaign checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
Account URL url - From Settings and then Developer in ActiveCampaign. No trailing slash and no /api/3 on the end.
API key text - On the same Developer screen, directly below the account URL.
Target list select - Save your credentials first, then use "Fetch lists" to load the audiences on your account.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on ActiveCampaign too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run, so a rate limit or an outage does not lose anybody.

Instock Notifier > Settings > Brevo

SettingTypeDefaultWhat it does
Send waitlist subscribers to Brevo checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
API key text - From SMTP and API and then API keys in your Brevo account. A v3 key, which starts with xkeysib.
Restock template ID number - Optional. The numeric ID of a Brevo transactional template. When set, and "Send events" is on, the restock alert is sent from Brevo using this template instead of the WooCommerce email.
Suppress the WooCommerce restock email when Brevo sends its own checkbox Off Only takes effect when a template ID is set and events are on. Without it your customers receive two emails about the same restock.
Target list select - Save your credentials first, then use "Fetch lists" to load the audiences on your account.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on Brevo too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run.
Send "subscribed" and "back in stock" events to Brevo checkbox Off Turn this on when you want to build the notification e-mail on the other platform rather than in WooCommerce.

Instock Notifier > Settings > Constant Contact

SettingTypeDefaultWhat it does
Send waitlist subscribers to Constant Contact checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
API key text - The API key of your app in the Constant Contact developer portal. Constant Contact calls this the client ID.
App secret text - Generated alongside the API key. It is stored encrypted and only shown masked.
Target list select - Save your credentials first, then use "Fetch lists" to load the audiences on your account.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on Constant Contact too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run.

Instock Notifier > Settings > Klaviyo

SettingTypeDefaultWhat it does
Send waitlist subscribers to Klaviyo checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
Private API key text - Create one under Settings and then API keys in Klaviyo. It needs full access, because this add-on writes profiles, events, templates and flows.
Suppress the WooCommerce restock and subscription emails checkbox Off Turn this on only once your Klaviyo flows are live and tested. Until then, leaving it off means customers still receive the built-in notification.
Target list select - Save your credentials first, then use "Fetch lists" to load the audiences on your account.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on Klaviyo too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run.
Send "subscribed" and "back in stock" events to Klaviyo checkbox Off Turn this on when you want to build the notification e-mail on the other platform rather than in WooCommerce.

Instock Notifier > Settings > Mailchimp

SettingTypeDefaultWhat it does
Send waitlist subscribers to Mailchimp checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
API key text - From Account and then Extras and then API keys in Mailchimp. The part after the dash is your data centre and is read automatically.
Add contacts as pending so Mailchimp sends its own confirmation email checkbox Off Off means the contact is subscribed straight away. On means Mailchimp emails them to confirm, and they receive nothing until they click it.
Target list select - Save your credentials first, then use "Fetch lists" to load the audiences on your account.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on Mailchimp too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run.

Instock Notifier > Settings > MailerLite

SettingTypeDefaultWhat it does
Send waitlist subscribers to MailerLite checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
API token text - From Integrations and then MailerLite API in your MailerLite account. Give the token read and write access to subscribers and groups.
Add contacts as unconfirmed so MailerLite sends its own opt-in email checkbox Off Leave off when you already confirm consent on your own site, for example with the Double Opt-In add-on.
Target list select - Save your credentials first, then use "Fetch lists" to load the groups on your account.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on MailerLite too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run.

Instock Notifier > Settings > Omnisend

SettingTypeDefaultWhat it does
Send waitlist subscribers to Omnisend checkbox Off Leave this off while you are still entering credentials. Nothing is sent until it is on.
API key text - From Store settings and then Integrations and API and then API keys in Omnisend.
Mark the email channel as subscribed checkbox On Turn this off to add contacts without opting them into marketing email. They can still receive automation messages triggered by the events.
Also subscribe the phone number to SMS when one was given checkbox Off Only turn this on if your subscribe form makes clear that giving a phone number means agreeing to texts.
Tags text Back In Stock, {only_product_name} Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber.
When someone leaves the waitlist, mark them unsubscribed on Omnisend too checkbox On Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform.
Retry rows that have not reached the platform yet, in the background checkbox On Runs every five minutes and handles up to 25 subscribers per run.
Send "subscribed" and "back in stock" events to Omnisend checkbox Off Turn this on when you want to build the notification e-mail on the other platform rather than in WooCommerce.

Instock Notifier > Settings > Sales Attribution

SettingTypeDefaultWhat it does
Also attribute orders whose billing email matches a notified subscriber checkbox On Catches customers who received the email, browsed away, and came back later without using the link.
Attribution window number 30 Days after the notification an order still counts. Only applies to email reconciliation; signed links are attributed regardless.
Record the attributed line total against each converted subscriber checkbox On Stores the line total of the subscribed product as revenue.

Instock Notifier > Settings > Waitlist Analytics

SettingTypeDefaultWhat it does
Default period select Last 30 days The period the reports open with: Last 7 days, Last 30 days, Last 90 days, Last 12 months or All time.
Show the top unmet demand on the WordPress dashboard checkbox On Adds a dashboard widget with the products most people are waiting for.
Rows per table number 25 How many rows each report table shows.

Instock Notifier > Settings > Team Alerts

SettingTypeDefaultWhat it does
Webhook URL text - Treated as a credential: anybody holding this URL can post into your channel, so it is encrypted at rest and shown masked.
Destination select Slack Slack, Discord, Microsoft Teams or Plain JSON webhook. Must match the webhook URL.
Demand threshold number 25 Announce when a product passes this many waiting subscribers, and again at each multiple of it. Zero turns the alert off.
Post a summary after a batch of restock alerts goes out checkbox Off Batched over a few minutes rather than one message per subscriber, so a restock of a popular line does not flood the channel.
Post yesterday's signups, notifications and top demand once a day checkbox Off The daily digest.
Mention on threshold alerts text - Optional, for example <!here> in Slack or @here in Discord. Only applied to the demand threshold alert.

Instock Notifier > Settings > Waitlist Priority

SettingTypeDefaultWhat it does
Notify in this order select First come, first served First come, first served; Highest lifetime spend first; Priority customer roles first, then signup order; or Registered customers first, then guests.
Priority roles text - Comma separated role slugs, highest priority first, for example vip_customer, wholesale. Only used by the role ordering.
Release alerts in waves sized to available stock checkbox Off Turns on wave release.
People per unit of stock number 3 How many subscribers to notify per available unit. Three is a sensible start: not everybody who is told will buy.
Gap between waves number 30 Minutes between waves. Long enough for the first wave to actually order. Under fifteen minutes there is little point having waves at all.
Maximum waves number 5 The most waves released for one restock.
Stop at this stock level number 0 Waves stop once stock falls to this level. Useful when you hold a few units back for walk-in or wholesale.

Instock Notifier > Settings > Double Opt-In

SettingTypeDefaultWhat it does
New waitlist entries must be confirmed by email checkbox Off Turns on double opt-in for new signups.
Confirmation subject text Confirm your alert for {product_name} Subject of the confirmation email.
Confirmation message textarea - Must contain {doubleoptin_verify_link}, otherwise nobody can confirm.
Message shown after signing up text Almost done. Check your inbox and confirm your alert. Shown on the product page after someone subscribes.
Message when a confirmation is already pending text We already sent a confirmation to that address. Check your inbox, including the spam folder. Shown when the same address signs up again before confirming.
Message shown after confirming text Confirmed. We will email you as soon as this product is back in stock. Shown after the confirmation link is clicked.
Message shown for an expired link text That confirmation link is no longer valid. Sign up again on the product page and we will send a new one. Shown when a link no longer verifies or the entry was already deleted.
Delete unconfirmed entries after number 7 Days before unconfirmed entries are deleted.
Record when and where each confirmation happened checkbox On Stores the timestamp, the originating page and a salted hash of the IP address. The raw IP is never kept.

Instock Notifier > Settings > Unsubscribe

SettingTypeDefaultWhat it does
Unsubscribe page select - Must contain the [cwginstocknotifier_unsubscribe] shortcode. A page is created for you the first time the add-on is switched on.
Send List-Unsubscribe and List-Unsubscribe-Post headers checkbox On Strongly recommended. Turning this off makes it more likely your notifications land in spam.
Offer a "remove me from all waitlists" option on the confirmation page checkbox On Lets people leave every waitlist at once.
Confirmation message textarea You have been removed from this waitlist. We will not email <strong>{email_id}</strong> about this product again. Supports {email_id} and {product_name}.
Already unsubscribed message textarea <strong>{email_id}</strong> was already removed from this waitlist. You can rejoin at any time from the product page. Shown when the person had already left the waitlist.
Invalid link message textarea That unsubscribe link is not valid or has expired. If you have an account with us you can manage your waitlist from My Account. Shown when a link does not verify.
My Account endpoint text cwg-unsubscribe The URL segment for the Subscribed List tab. Save your permalinks once after changing it.
My Account tab label text Subscribed List Label of the tab in My Account.
Subscribed List heading text Products you are waiting for Heading on the Subscribed List tab.
Unsubscribe link text text Remove Text of the remove link in the Subscribed List.
Show a thumbnail in the Subscribed List checkbox On Shows product images in the list.
Hide the SKU in the Subscribed List checkbox Off Hides product SKUs in the list.
Show how many people are waiting for each product checkbox Off A little social proof. Leave it off if you would rather not reveal how thin demand is on slow lines.

Instock Notifier > Settings > Editing Subscribers

SettingTypeDefaultWhat it does
Record who changed what on each subscriber checkbox On Keeps a change history shown under the edit form.
Allow the same address on the same product more than once checkbox Off Leave this off unless you have a specific reason. Duplicates mean duplicate notification emails.

Instock Notifier > Settings > Never Restock

SettingTypeDefaultWhat it does
Redirect waitlists for discontinued products onto replacements checkbox Off Turns the add-on on and adds the Never Restock menu item for rules.
Rule priority select Use the first matching rule only Applies when one replacement product is named by more than one rule. "Every matching rule" can mean several emails to the same person, so use it deliberately.
Email subject text We found you an alternative to {only_product_name} Subject of the replacement email.
Email message textarea - Body of the replacement email. Include {replacement_product} and {replacement_product_link}.
Emails per batch number 50 How many subscribers are emailed per background run. Lower this if your mail provider rate limits you.

Instock Notifier > Settings > CSV Export

SettingTypeDefaultWhat it does
Category columns number 5 Products can sit in several categories. This is how many category columns the file gets, so every row lines up.
Delimiter select Comma Comma, Semicolon or Tab. Semicolon suits regional Excel builds where comma is the decimal separator.

Instock Notifier > Settings > CSV Import

SettingTypeDefaultWhat it does
Status for rows with no status column select Subscribed Subscribed, Notified or Unsubscribed.
Treat imported rows as new subscriptions checkbox Off Off by default. Turning it on means every imported row is pushed to your marketing platform and can trigger a subscription confirmation.
Skip rows whose product does not exist in this store checkbox On Leave this on. A subscriber attached to a product that is not here can never be notified.

Instock Notifier > Settings > Subscribe Form Styling

SettingTypeDefaultWhat it does
Form width on desktop number 100 Percentage of the available column width.
Form width on mobile number 100 Applied below 768px. Rendered as a media query, so it survives page caching that serves one HTML document to every device.
Heading font size number 18 Font size of the form heading, in pixels.
Button font size number 14 Font size of the subscribe button, in pixels.
Button corner radius number - Optional. Leave empty to inherit the theme.
Form panel corner radius number - Rounds the whole panel. Most visible on the Card and Bold designs.
Form panel shadow select Leave as the design sets it Leave as the design sets it, None, Subtle or Pronounced.
Input corner radius number - Rounds the name, email and phone fields.
Popup backdrop opacity number - Opacity of the backdrop behind the popup, in percent.
Popup corner radius number - Rounds the popup.
Popup maximum width number - Ignored by the Side Drawer, which is sized to the edge of the screen.
Popup button font size number - Font size of the popup button.
Guest notice font size number - Font size of the guest notice.
Custom CSS textarea - Emitted after every rule above, so it always wins. Tags and scripts are stripped on save.

Instock Notifier > Settings > Demand Signals

SettingTypeDefaultWhat it does
Minimum before showing number - Below this number of waiting people, nothing is shown.
Where to show it select - On a variable product the notice is rendered inside each variation form, so it always reflects the variation the shopper has selected. The heading bar option sits on a coloured background, so pick a text colour that suits it.
Message text {count} people are waiting for this to come back. Use {count} for the number.
Tell a new subscriber where they are in the queue checkbox Off Shows the queue position message after signup.
Queue position message text You are number {position} in the queue. Use {position} for their place. Shown straight after they subscribe.
Also show a short badge on product listings checkbox Off Adds the count to shop and category pages.
Appearance select Quiet text Quiet text, Coloured badge, or No styling, inherit the theme.

Instock Notifier > Settings > Blocked Emails

SettingTypeDefaultWhat it does
Block the bundled list of throwaway mail providers checkbox On Uses the list of disposable mail domains that ships with the add-on.
Blocked providers textarea - Read only, because this list is refreshed when the add-on updates. To allow one of these domains, add it to "Always allow". To block more, use "Blocked domains".
Block shared mailboxes such as info@, admin@ and sales@ checkbox Off Blocks role accounts.
Reject domains with no mail server configured checkbox Off Performs a DNS lookup for an MX record, cached for a day per domain. Catches typos such as gmial.com.
Blocked domains textarea - One per line or comma separated. Wildcards allowed, for example *.example.com.
Blocked addresses textarea - Full addresses, one per line or comma separated.
Always allow textarea - Addresses or domains that bypass every rule above. Checked first.
Message shown when blocked text We cannot use that email address. Please try another one. Shown to a visitor whose address is blocked.
Record blocked attempts in the plugin log checkbox On Addresses are partially masked in the log. Useful when a customer reports they cannot subscribe.

Shortcodes

[bis_demand_count]

Shows how many people are waiting for a product (Demand Signals add-on). Without an attribute, it shows the count for the current product. Use it to place the count anywhere, for example in a page builder layout. Set **Where to show it** to `Only where I place the shortcode` if you only want the count where you put it.

[bis_demand_count id="123"]
AttributeDefaultDescription
id-The product ID to show the count for. Leave it out to use the current product.

[cwginstocknotifier_unsubscribe]

Handles unsubscribe links on the page you select as **Unsubscribe page** on the Unsubscribe tab. The page must contain this shortcode.

[cwginstocknotifier_unsubscribe]

On your site

Several add-ons change what shoppers see on an out of stock product page.

  • Demand Signals adds a line such as "{count} people are waiting for this to come back." to the subscribe form, placed where you chose. Nothing shows until the count reaches your minimum. If you turn it on, new subscribers also see their place in the queue.
  • Custom CSS changes the colours, sizes and widths of the subscribe form, its button and the popup.
  • Double Opt-In shows your on-screen messages after signup, after confirming and for expired links.
  • Ban Emails shows your Message shown when blocked when an address is rejected.
  • Unsubscribe adds the unsubscribe page and a Subscribed List tab in My Account, where logged-in customers can remove themselves from waitlists.
An out of stock product page with an Email when stock available form showing a waiting count line above the name and email fields and a Subscribe Now button
The waiting count from Demand Signals appears inside the subscribe form, above the fields.

Frequently asked questions

Does switching an add-on off delete its settings or data?

No. Switching an add-on off leaves its settings and data alone. Turn it back on under Instock Notifier > Add-ons and it picks up exactly where you left it.

I already have some individual add-on plugins installed. What should I do?

Deactivate the individual add-on plugins and manage everything from the bundle instead. Your existing add-on selection and settings carry forward, so nothing needs re-entering.

Can I use the WPML and Polylang add-ons together?

No. Switch on only the add-on that matches the multilingual plugin you actually use.

Why are revenue and conversion empty in Waitlist Analytics?

Conversion and revenue come from the Track Sales add-on. It links an order back to the notification that caused it. Switch it on and make sure your restock email uses {cart_link}.

Does importing subscribers from CSV send emails?

Not by default. Imported rows are added at the status you map. They are not pushed to your marketing platform unless you turn on Run integrations on import on the CSV Import tab.

Will Double Opt-In affect people already on my waitlists?

No. Confirmation only applies to new signups from the moment you turn it on. Anyone already on a waitlist stays active.

Are my API keys stored safely?

API credentials are encrypted at rest and shown masked in the settings. The Copy system report on the Help screen leaves out API keys and subscriber addresses.

Can I show a higher waiting count to create urgency?

No. Demand Signals only shows real counts, and there is no setting to inflate them. Use Minimum before showing to hide small counts instead.

Troubleshooting

An add-on's settings tab, menu item or Edit link is missing

The add-on is probably switched off. Go to Instock Notifier > Add-ons and click Switch on next to it. For Edit Subscribers, the user also needs permission to manage WooCommerce.

Subscribers are not reaching my marketing platform
  1. Check that Enable sync is on and a Target list is selected.
  2. Click Fetch lists to confirm the key works.
  3. Look at the platform's column in the subscribers list, which shows the sync state per row.
  4. Open Instock Notifier > Help. The add-on's panel shows what is queued or failing.

For ActiveCampaign, a 403 error almost always means the account URL is wrong.

Customers receive two restock emails

Both the platform and WooCommerce are sending the alert. Fix it for your platform:

  • Brevo: turn on Replace the built-in email.
  • Klaviyo: turn on Let Klaviyo send the email once your flows are live.
  • Omnisend: turn off the built-in notification under WooCommerce > Settings > Emails.
Subscribe form styling changes are not showing

This is almost always a page cache or a CDN. Purge both, then hard reload the product page. If the page still looks the same, your theme may load its own stylesheet later. Put your rule in the Custom CSS box on the Subscribe Form Styling tab, because it is output last.

Confirmation or restock emails never arrive for anyone

This is an email delivery problem, not an add-on problem. Use Test Email on Instock Notifier > Status to check that your site can send mail. If you send through PHP mail, consider an SMTP plugin.

Translated notifications arrive in the site language

That language has no translation yet, so the original text is sent. Check the translation status table in the add-on's settings and add the missing text.

  • WPML and Polylang: also make sure "Treat translations as one waitlist" is on.
  • Weglot: install the WordPress language pack under Settings > General so the email template is translated too.