Back in Stock Alerts is launching on the Shopify App Store this month
From the blog

How to add a back in stock button to your Shopify product pages

Three real routes for adding a notify-me button when a variant sells out: theme code, Shopify's native workarounds, and a purpose-built app block, plus what to check before you trust any of them.

07/05/2026

A rounded green notify button being placed onto a small storefront card by a precise mechanical arm

You have a product page with a sold-out variant, and you want a button there today that lets a customer say “tell me when this is back.” That is a small ask, but the actual options for building it range from a five-minute theme editor step to a multi-day custom build, and most of what you find searching for this mixes the two up. Here is what each route actually involves.

The three routes, honestly compared

Route 1: theme code, written or pasted in yourself. You add a Liquid snippet to your product template that checks variant availability and swaps the Add to Cart button for a form when the selected variant is out of stock. This is fully free and fully yours. It is also the option with the most ongoing cost, just not a cost you pay in dollars. Every theme update risks breaking the snippet if it touches the same template file. Every new product template (a different layout for a collaboration drop, a wholesale page) needs the same code added again by hand. And you still need somewhere for the emails to go: a spreadsheet, a basic email tool, or a database you build yourself, plus logic to actually detect the restock and trigger a send. The button is the easy 20 percent. Reliable detection and delivery is the harder 80 percent, and theme code alone does not give you either.

Route 2: Shopify’s native workarounds. Shopify does not ship a built-in back in stock notification feature as of mid-2026. What people mean when they ask about “native” options is usually one of two things. First, Shopify’s own customer management tools let you track whether a customer agreed to receive marketing emails, which is useful bookkeeping but is not a restock trigger by itself. Second, some merchants wire up a generic contact form (Shopify Forms, or a form block) to collect an email address on the product page, then manually email everyone on that list when the item restocks. This works at very small volume and falls apart fast: nothing ties the signup to the specific variant, nothing fires automatically when inventory changes, and you are the one remembering to check the list and send the email. It is a stopgap, not a system, and it is worth being honest with yourself about which one you are building.

Route 3: a purpose-built app added as a theme app block. This is the option most merchants land on once they realize routes 1 and 2 both dead-end at “now I need automated detection and sending,” which is a different problem than “now I need a button.” A back in stock app handles the button, the signup capture, the restock detection, and the send, as one connected piece, and it installs through Shopify’s theme app extension system rather than by editing your theme’s code directly. That distinction matters more than it sounds: an app block lives outside your theme files, so a theme update does not silently break it, and removing the app cleanly removes the block.

Step by step: adding the app-block button

If you go the app-block route, the actual setup looks roughly like this, though exact labels vary slightly by app:

  1. Install the app from the Shopify App Store and complete whatever onboarding it asks for (usually just connecting your store, no code).
  2. Open the theme editor. Go to Online Store > Themes > Customize.
  3. Navigate to a product template, since that is where the button needs to render.
  4. Add the app’s block. Click “Add block” inside the product information section, then look under the Apps tab for the block the app provides. Shopify’s own instructions for this walk through the same steps for any app block, not just this category.
  5. Position it where the Add to Cart button normally sits, since that is the moment a customer is already looking at.
  6. Save, then check a genuinely sold-out product page to confirm the button actually shows.

The step people skip is the last one, and it is the step that catches the most common configuration mistake. The button is supposed to appear only when the currently selected variant is out of stock, not whenever any variant of that product is unavailable. A product with five sizes where only Small is sold out should show the normal Add to Cart button for every other size and the notify button only when a shopper has Small selected. If your test shows the notify button sitting there for in-stock variants too, or missing entirely on the genuinely sold-out one, the block is not reading variant-level inventory correctly, and that is worth fixing before you rely on it, because a notify button that shows up on in-stock items trains customers to ignore it.

What to check before you trust any solution

The button rendering correctly is necessary and is also the smallest part of whether the whole system works. Before you commit to an app, or before you trust a theme-code build you or a developer wrote, ask these:

Does it detect restocks two ways, or one? Most apps watch for Shopify’s inventory update webhook and trigger a send from that. Webhooks are not guaranteed to fire every single time, so an app that only listens for the webhook can miss a restock silently, with no error, no alert, nothing. A more resilient setup also runs a periodic check that polls actual inventory levels on a schedule, independent of whether any webhook arrived, so a missed webhook is not a missed customer notification. Ask directly whether detection is webhook-only or webhook-plus-polling.

Does it pace sends, or blast them all at once? A popular item restocking can trigger hundreds or thousands of emails within the same minute. Sending that volume in one burst looks, to a receiving mail server, like the kind of pattern spam filters are built to catch, which can tank deliverability at the exact moment it matters most. A system with pacing controls releases a large batch in waves instead of all at once. Ask what happens, specifically, when a restock triggers two thousand notifications simultaneously.

Can you see an audit log? When a customer says “I never got my alert,” you need to be able to look up that specific subscriber and that specific product and see what actually happened: queued, sent, bounced, or never triggered at all. Without that record, every complaint is a guess. Ask the app to show you one real example from your own store’s send history before you assume the feature exists.

None of these three checks require technical knowledge to ask about. They just require asking, since a pricing page or a feature list will not tell you the answers on its own.

If you sell into the EU or UK, collecting an email address for restock alerts is a marketing consent question, not just a signup form question. The general practice under GDPR-adjacent rules is double opt-in: the customer submits their email, then confirms it through a follow-up email or link before they start receiving alerts. A single checkbox on a popup is thinner cover than a confirmed opt-in, and it is worth checking whether your back in stock tool supports double opt-in as a setting rather than assuming a plain signup form clears the bar. This is a genuine compliance question, and if you operate at any real volume in the EU, it is worth a few minutes with whoever handles your store’s privacy policy rather than guessing.

The short version

A back in stock button is easy to add. A back in stock system, one that detects restocks reliably, sends without tanking your deliverability, and gives you a record when something goes wrong, is the part worth being careful about. Kelso is built as a theme app block for exactly this: the button installs in a few minutes, detection runs on webhook plus a scheduled reconciliation check, and every send is logged per subscriber so a “did they get it” question has an actual answer. Whichever app you pick, ask the three questions above before you turn it on for real customers.

Back in Stock Alerts

Stop losing restocks

Kelso emails your customers the moment a sold-out product is back. Join the waitlist and get one email on launch day.

Launching on the Shopify App Store this month. Join and we'll email you once, the day it goes live.

Founding 50

The first 50 stores lock today's price for as long as they stay subscribed. Joining the waitlist holds your spot.

More from the blog

Keep reading

07/05/2026

Stocky is shutting down August 31. Here's what small Shopify stores can do

Stocky's shutdown timeline, what breaks and when, the supplier data you need to export now, and an honest roundup of native, budget, and enterprise alternatives for small Shopify stores.

07/04/2026

Your restock email is late, and that is deciding who gets the sale

How demand decays after a restock, why batch pacing and send speed both matter, and how to audit your back in stock app's actual send latency, timestamp by timestamp.

07/02/2026

Back in stock apps for Shopify: what the pricing actually costs at scale

A line-by-line pricing teardown of Swym, Appikon, Amp, STOQ, Notify!, and Kbite, plus what per-subscriber vs. per-send metering means for your actual monthly bill as your list grows.

06/30/2026

Why restock alert emails fail at the exact moment they matter

The three engineering reasons back in stock emails go missing: unreliable webhook delivery, burst sends that trip deliverability limits, and no audit trail to diagnose what happened. How to check your own app for each one.

06/28/2026

How to migrate your back in stock waitlist to a new app without losing subscribers

A practical walkthrough for moving a back in stock waitlist between Shopify apps: exporting your data, matching CSV columns, verifying the import, and timing the cutover around a restock.