Docs
Everything you need to set up Reshelf and understand what it does.
Setup in five minutes
- Install the app from the Shopify App Store and approve the permissions (products, inventory, orders and customers).
- On the app’s home screen, choose Open theme editor. The editor opens on your product page with the Back-in-stock alert block already placed. Drag it where you want it (usually just under the Add to cart button) and click Save.
- Open a sold-out product in your store. The form appears. Request an alert with your own email, then set the product’s inventory above zero: you’ll get the email within a minute.
The home screen’s status section confirms each step: it shows “Form is live on your storefront” once a shopper (or you) has loaded a page with the block.
The storefront form
The block shows only while the selected variant is sold out and hides as soon as the shopper picks an available one, unless price-drop alerts are on (see below). In the theme editor you can choose an inline form or a button that opens a popup, set the heading, button and success text, the colours, and whether to show a newsletter opt-in checkbox.
Leave the text fields blank to use the built-in wording, which appears in the shopper’s language (English, Spanish, French, German, Italian, Portuguese and Dutch). Anything you type is shown as typed.
Two more block settings: Show mobile number field for text alerts adds an optional phone field with an SMS consent checkbox (see Text alerts below), and Offer price-drop alerts on in-stock products shows the form on in-stock items too, with a price-drop heading (see Price-drop alerts).
Signups are protected against bots with a hidden field and rate limits. A shopper who asks twice for the same variant keeps their original place in line.
The alert email
Emails are sent from our domain with your store’s name as the sender; replies go to your store’s email address. In Settings you can edit the subject and message and see a live preview. {{product}} and {{shop}} are replaced with the product name and your store name. Every email includes the product image, a link to that exact variant, and a link to cancel the request, which opens a page where the shopper confirms with one click. It also carries a one-click List-Unsubscribe header, so mail apps that support it show their own unsubscribe button.
Every email ends with your store’s name and postal address, which marketing email has to show. The address is the store address saved in your Shopify admin’s settings; Reshelf checks it once a day. To show a different one, such as a PO box or a registered agent address, type it under Postal address shown in emails in the app’s Settings. If there is no address in either place, alert emails wait and none are sent until you add one; the app’s home screen and an email from Reshelf tell you. Text alerts don’t carry an address.
Text alerts (SMS)
Texts are sent through Twilio, always from a number that belongs to your store alone. US and Canadian carriers require every texting number to be verified for the one business that sends from it, so there is no shared number. On the app’s SMS page, choose how they go out:
- Use my Twilio account: enter your Account SID, auth token and a texting-enabled number from that account. The app checks them before saving. Texts then carry your name alone, and Twilio bills you directly for them. Leave Let Reshelf handle replies ticked and replies to the number come to Reshelf, so STOP, START and requests in words to stop are handled for your store; if the number already sends replies somewhere else, the app shows where and asks before replacing it. The SMS page also shows the address, if you’d rather set it in Twilio yourself. The number has to be registered with the carriers in your Twilio account (an approved toll-free verification for a toll-free number, an approved A2P 10DLC campaign for a US local one), or carriers block its texts and Twilio still charges for them. The SMS page shows the number’s status and the wording to submit, and your store offers texts only while Twilio doesn’t show the number unregistered (a toll-free number: once its verification is approved).
- A dedicated number in your business name: Reshelf buys a toll-free number for your store, registers it with the carriers in your business’s name and keeps it compliant. You fill in three steps on the SMS page: the product page carriers should check (with a screenshot of the form, which the page’s review preview link shows), your business details as they appear on your official records, and the agreement. Before anything is bought, the app checks that your store isn’t password-protected and that your Terms of service and Privacy policy carry the text-message wording carriers require; if they don’t, it gives you the wording to paste. Carrier review usually takes 3 to 5 business days. If you already text from your own Twilio account, texts keep going out from it until the new number is approved, then switch over once Reshelf has read the opt-outs sent to your own number. A rejection shows the carriers’ reason and the date to correct it by. The number costs $2.15 for each monthly billing period, starting with the one in which it’s approved; no fee is charged while your plan’s free trial runs. Every store gets 5 free texts; after that, each text costs 2¢ per segment to US and Canadian numbers, confirmation and test texts included, and texts pause at a monthly spend cap you set on the SMS page. Shopify bills both with your plan, which must be a paid plan billed monthly. You can release the number from the SMS page at any time. Reshelf releases an approved number 14 days after your store moves to the Free plan, unless you move to a paid plan billed monthly by then. It also releases a number whose registration stays rejected or unsubmitted for 30 days, unless you resubmit it by then; you’re emailed the date in both cases. On a development store, which is always password-protected, the number runs in review mode: after the same steps and agreement, the store texts from Reshelf’s test number straight away, nothing is bought or registered, and Shopify doesn’t bill the usage.
Then turn on Show mobile number field for text alerts on the Back-in-stock alert block in the theme editor. The field appears once texts are set up on the SMS page and your store has a published Privacy policy and Terms of service (Settings > Policies in Shopify): the consent box links to both, as carriers require. Shoppers can give an email, a mobile number, or both.
A number is only accepted when the shopper ticks the consent box. Its wording names your store, says what the texts are about, says they are marketing texts, and carries the rates, HELP and STOP lines carriers require. The app keeps a record of each consent: when, the exact wording shown and the page. If Twilio asks for proof of consent, export these records as CSV from the SMS page, for every number or for one. Each request then gets a confirmation text right away, and the alert when the item is back or cheaper. Alert texts go out between 8 a.m. and 9 p.m. in the shopper’s time zone; one that comes due overnight waits until morning. A STOP reply cancels the shopper’s text requests with your store, and later requests from that number wait until they text START. Texts appear in the alert log with the delivery status reported by Twilio.
The text’s wording is yours to set on the SMS page, with a live preview and a segment count. Your store name is added at the start when your wording doesn’t begin with it, and “Reply STOP to opt out” is added unless your wording already says “Reply STOP”. A shopper who signed up in German, Spanish, French, Italian, Dutch or Portuguese gets that line and the confirmation text in their language, and the default wording too while you keep it; wording you change is sent as you wrote it.
Texts go to mobile numbers in the countries your number can reach: the US and Canada for a dedicated toll-free number or a toll-free number of your own, and your number’s own country for a local number from the US, Canada, the UK, Australia, Germany, Spain, Italy, the Netherlands or Sweden. A store that sells alcohol or other age-restricted products never texts Canadian numbers, whichever number it uses. Shoppers with numbers elsewhere are offered email instead.
Price-drop alerts
Turn on Offer price-drop alerts on in-stock products on the block. On an in-stock variant the form appears with a price-drop heading; the app remembers the price the shopper saw. When the variant’s price goes below it and the item is still purchasable, the shopper gets an email or text with the old and new price. With Shopify Markets, the price is the one for the shopper’s country, in its currency, so a shopper is alerted when their own price falls and sees it in the currency they shop in. Product updates trigger the check, with a re-check every five minutes as a backstop. The email and text wording lives in Settings and on the SMS page, with {{old_price}} and {{new_price}} available.
Sending rules
In Settings → Sending rules:
- Minimum stock: don’t send until at least this many units are available. Useful when a single returned item shouldn’t trigger alerts.
- Who gets emailed: everyone waiting as soon as the item is back, or a set number of people per unit in stock, oldest requests first, with the next group after a delay you choose if stock remains.
Send now on the Requests page ignores these rules for one product, for the times you want everyone told immediately.
Alert log and status
The Alert log lists every email and text: who, which product, the channel, what triggered it (a restock, a price drop, the five-minute re-check, a follow-up batch, or Send now), when the change was detected, when the message was handed to the provider, and its delivery status: sent, delayed, delivered, bounced, marked as spam, or send failed. A shopper who marks an email as spam or replies STOP to a text is unsubscribed automatically.
The home screen’s Status section checks, each time you open the app, that:
- the sending service is running (if not, it says “Alerts are paused” and requests wait safely),
- the form has been seen on your storefront recently,
- no sends were rejected in the last 24 hours,
- delivery tracking is connected,
- the app still has the store permissions it needs, and
- SMS is set up and, for a dedicated number, where carrier approval stands.
Requests and exports
Requests shows demand by product (how many are waiting and since when), price-drop requests with the lowest price shoppers are waiting for, and the latest individual requests with their channel. You can delete a request, or export everything as CSV, including phone numbers, consent times and, for email requests, whether the shopper ticked the newsletter box.
Shopify customers
Shoppers who ask for an alert are added to Customers in your Shopify admin, usually within five minutes, with the email address or mobile number they gave and the tag Reshelf. Filter your customers by that tag to see everyone who came from the form. A shopper who is already a customer only gets the tag; their name, address and other details are never changed. A shopper who gave both an email and a mobile number becomes one customer when Shopify allows it.
When the shopper ticked the newsletter box, the customer is marked as subscribed to email marketing (single opt-in, dated when they ticked it), the same tick that is sent to Klaviyo. Reshelf never unsubscribes anyone, and leaves a customer who unsubscribed after ticking as they are. Without the tick, consent isn’t touched. The form can’t confirm the address, so if the law where you sell requires double opt-in, confirm these shoppers before emailing them. SMS marketing consent is never set: the form’s SMS checkbox covers texts about that one item, its confirmation and its alert.
Requests made before this was added are synced too, a batch every five minutes. To turn it off, go to Settings → Shopify customers and choose Off; newsletter ticks then aren’t sent to Shopify either (Klaviyo, if connected, still gets them). Customers already added stay in your Shopify admin, where you can edit or delete them. If the home screen’s Status section says a new permission needs approving, reopen the app and approve it; alerts keep sending in the meantime.
Recovered revenue
When an order includes a variant that a shopper was alerted about within the previous 14 days, that order is counted on the home screen as revenue from alerts. Matching is by the shopper’s email on the order, so only email alerts are counted; text alerts aren’t attributed.
Klaviyo
On Integrations, paste a Klaviyo private API key with full access to events, lists, profiles and subscriptions. Only shoppers who tick the newsletter box on the form are sent to Klaviyo, so turn on Show newsletter opt-in checkbox in the block’s settings first; without it nothing syncs. For those shoppers the app records four events on their profile: “Back in stock requested”, “Back in stock alert sent”, “Price drop requested” and “Price drop alert sent”, each with the product and variant, and subscribes them to the list you choose.
Mobile numbers are never sent to Klaviyo. A shopper is identified there by email address only, and the “alert sent” events are recorded for alerts sent by email, not for texts.
Shopify Flow
Two triggers are available in Flow once the app is installed. Both are for back-in-stock requests by email:
- Back-in-stock request created: product, email, product and variant titles.
- Back-in-stock alert sent: the same fields, when an email goes out.
Text requests and price-drop requests don’t fire them.
Use them to tag customers, post to Slack, or feed your own reports.
Plans
Every alert feature is on every plan; plans differ in the monthly number of alerts, and a dedicated texting number needs a paid plan billed monthly. See the pricing section. Change plans from the app; Shopify handles the charge.
Texts cost what your texting option costs (see Text alerts). With your own Twilio account, Twilio bills you directly at its rates and Reshelf adds no charge, on every plan, including Free. With a dedicated number from Reshelf, the number costs $2.15 per monthly billing period once it’s approved, and texts cost 2¢ per segment to US and Canadian numbers after your store’s 5 free texts, under the monthly spend cap you set. Shopify bills both with a paid plan billed monthly. Emails are never charged per message.