I would like to offer my customers the ability to sign up for a notification when a product they’re interested in is back in stock.
I’m currently using Shopify Flow, but I’m unsure how to set it up to notify customers when a product is available again without using external apps.
I’ve already added a form where customers can enter their email address and the product they are interested in.
Now, I need a solution where Shopify automatically sends the notification when the stock of the product is updated to “available”.
Has anyone figured out how to do this without using external apps?
If you’re using Shopify Forms, it’s possible to fire a Flow when form submitted.
There you should be able to find the product, and add this user into a metafield list of users on this product.
Then when product inventory is positive again another Flow should fire, send e-mail to these users and remove the metafield.
Looks like doable without paid apps, however, I am sure there will be a lot of hiccups to work around.
Since you specifically want to avoid an app, here’s what Shopify can and can’t do natively, so you know what you’re signing up for.
What you can build without an app:
In your theme, edit the product template so that when a variant is sold out (product.selected_or_first_available_variant.available is false), you hide the buy button and show a small “email me when it’s back” form instead.
Send those submissions somewhere you can use them. Simplest is a Shopify customer form or a plain form tool, so you end up with a list of who wants what.
Shopify Flow (free on all plans now) can watch inventory and notify YOU when an item goes back above zero, so you know it’s time to email.
What Shopify won’t do for you natively: automatically match each signup to the exact product and send that person an email the moment it restocks. That last mile is manual. For one or two products it’s very manageable. Across a big catalog it gets old quick, which is the honest reason people end up reaching for an app even when they wanted to avoid one.
Technically, Flow can add customer e-mail to variant metafield on notify-when-back form submission.
When variant is back in stock, Flow can fetch this list of e-mails from the variant metafield and… here is the problematic part – e-mail sending is not free.
A bit of custom coding would be needed to feed current variant id into Forms form though.
Late to this, but I think the thread has a wrong turn worth flagging.
Everyone’s landed on the same design — dump emails into a metafield on the variant, then have a second Flow read that list on restock. It can’t work, and the reason isn’t cost.
Flow’s Send internal email won’t accept a variable in the To field. Shopify’s docs say the action is for staff, and that customer email should go through a marketing automation. So you can get a nice list of addresses into a metafield and then just sit there looking at it. Nothing in Flow can send to it.
(On the cost point — Shopify Email is free for the first 10k sends a month, so that’s not really the blocker.)
The contact form is a dead end upstream too. {% form ‘contact’ %} emails your store address and that’s it — no record, nothing for Flow to hook into. Shopify Forms gets around it, and since it’s Shopify’s own free app I’d say it still counts as “no external apps.” A submission there creates a metaobject entry, and Flow has a Metaobject entry created trigger.
The fix is to flip the storage: put the signup on the customer, not the variant. Send marketing email only sends to the customer in context, so the signup has to become a customer record.
Form captures email + hidden variant ID, with a real marketing opt-in.
Flow 1: metaobject entry created → create/update customer → tag bis-.
Flow 2: trigger on Product variant back in stock (not Inventory quantity changed — that fires on every stock movement). Get customer data with tag:bis- → For each → Send marketing email → strip the tag.
Annoyances: Get customer data returns 100 at a time, so a big restock needs a scheduled re-run. Wait, Get data and Run code can’t follow a For each loop. And pulling the current variant ID into the form needs a bit of theme JS — that’s the custom coding tim mentioned.
Doable natively and free within Shopify Email’s limits, but you’re hand-building dedup, unsubscribes and delivery visibility. Fine for a handful of products; past that the upkeep is the real cost.