With a back in stock notification form, customers can let you know if they want to be informed when a sold out product becomes available again. When a customer uses the form to submit their email address, you will be sent information about the product that they are interested in. When more stock becomes available, you can let the customer know.
Note: If a product has variants, then each variant must be sold out for the form to appear on the product page. To use a form that appears for sold out variants, even when other variants for the same product are available, you will need to install a free or paid back in stock app from the Shopify App Store.
The steps for this tutorial differ depending on whether you are using a sectioned or a non-sectioned theme. A sectioned theme is a newer theme that lets you drag and drop to arrange the layout of your store's pages.
To figure out whether your theme supports sections, go to the theme's Edit code page. If there are files in the Sections directory, you are using a sectioned theme. Non-sectioned themes were released before October 2016, and do not have files in the Sections directory.
If you are using a sectioned theme, then click the Sectioned themes link and follow the instructions. If you are using an older, non-sectioned theme, then click the Non-sectioned themes link and follow the instructions.
TyW | Online Community Manager @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
When a customer submits the back in stock notification form for a sold out product, you will receive an email to the email address you have specified in the admin in the Customer email field.
To view or change your Customer email, from your Shopify admin, click Settings, then click General.
product-template.liquid
.<form>
tag. It will look similar to this:<form action="/cart/add" method="post" enctype="multipart/form-data">
Wrap the opening
<form>
tag in conditional Liquid tags, so that on a new line above it is {% if product.available %}
, and on a new line below it is {% endif %}
. Your code should look like this:{% if product.available %} <form action="/cart/add" method="post" enctype="multipart/form-data"> {% endif %}
</form>
tag. Wrap it in conditional Liquid tags, so that on a new line above it is {% if product.available %}
, and on a new line below it is {% endif %}
. Your code should look like this:{% if product.available %} </form> {% endif %}
{% unless product.available %} <div id="sold-out"> {% form 'contact' %} {% if form.posted_successfully? %} <p class="accent-text">Thanks! We will notify you when this product becomes available!</p> {% else %} <p>Click <a id="notify-me" href="#"><strong>here</strong></a> to be notified by email when {{ product.title }} becomes available.</p> {% endif %} {% if form.errors %} <div class="error feedback accent-text"> <p>Please provide a valid email address.</p> </div> {% endif %} {% unless form.posted_successfully? %} <div id="notify-me-wrapper" class="clearfix" style="display:none"> {% if customer %} <input type="hidden" name="contact[email]" value="{{ customer.email }}" /> {% else %} <input style="float:left; width:180px;" required="required" type="email" name="contact[email]" placeholder="your@email.com" class="styled-input{% if form.errors contains 'email' %} error{% endif %}" value="{{ contact.fields.email }}" /> {% endif %} <input type="hidden" name="contact[body]" value="Please notify me when {{ product.title | escape }} becomes available." /> <input style="float:left; margin-left:5px;" class="btn styled-submit" type="submit" value="Send" /> </div> {% endunless %} {% endform %} </div> {% endunless %}
You can experiment with placing the code in different areas of the file to have the notification form display in a different position on the product page.
theme.js
, or theme.js.liquid
.jQuery('#notify-me').click(function() { jQuery('#notify-me-wrapper').fadeIn(); return false; } );
TyW | Online Community Manager @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
When a customer submits the back in stock notification form for a sold out product, you will receive an email to the email address you have specified in the admin in the Customer email field.
To view or change your Customer email, from your Shopify admin, click Settings, then click General.
product-template.liquid
.<form>
tag. It will look similar to this:<form action="/cart/add" method="post" enctype="multipart/form-data">
Wrap the opening
<form>
tag in conditional Liquid tags, so that on a new line above it is {% if product.available %}
, and on a new line below it is {% endif %}
. Your code should look like this:{% if product.available %} <form action="/cart/add" method="post" enctype="multipart/form-data"> {% endif %}
</form>
tag. Wrap it in conditional Liquid tags, so that on a new line above it is {% if product.available %}
, and on a new line below it is {% endif %}
. Your code should look like this:{% if product.available %} </form> {% endif %}
{{ product.title }}
. On a new line below the line of code that contains the product title, paste the following code:{% unless product.available %} <div id="sold-out"> {% form 'contact' %} {% if form.posted_successfully? %} <p class="accent-text">Thanks! We will notify you when this product becomes available!</p> {% else %} <p>Click <a id="notify-me" href="#"><strong>here</strong></a> to be notified by email when {{ product.title }} becomes available.</p> {% endif %} {% if form.errors %} <div class="error feedback accent-text"> <p>Please provide a valid email address.</p> </div> {% endif %} {% unless form.posted_successfully? %} <div id="notify-me-wrapper" class="clearfix" style="display:none"> {% if customer %} <input type="hidden" name="contact[email]" value="{{ customer.email }}" /> {% else %} <input style="float:left; width:180px;" required="required" type="email" name="contact[email]" placeholder="your@email.com" class="styled-input{% if form.errors contains 'email' %} error{% endif %}" value="{{ contact.fields.email }}" /> {% endif %} <input type="hidden" name="contact[body]" value="Please notify me when {{ product.title | escape }} becomes available." /> <input style="float:left; margin-left:5px;" class="btn styled-submit" type="submit" value="Send" /> </div> {% endunless %} {% endform %} </div> {% endunless %}
You can experiment with placing the code in different areas of the file to have the notification form display in a different position on the product page.
theme.js
, or theme.js.liquid
.jQuery('#notify-me').click(function() { jQuery('#notify-me-wrapper').fadeIn(); return false; } );
TyW | Online Community Manager @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
to be clear, this does not automatically notify customers (who filled out the form) once the product is back in stock.
in fact, out of hundreds of contact emails that a store might receive, it'll be cumbersome to pick the ones that relate to a specific product.
@facesandplaces you may need to look for a liquid style tag rather than the HTML tag mentioned in the tutorial. It will look something like this:
{% form 'product', product, class:form_classes, novalidate: 'novalidate', data-product-form: '' %}
I have the same question, how would you adapt your solution with this kind of code ? How do you wrap it with the conditional Liquid tags
{% if product.available %} <form action="/cart/add" method="post" enctype="multipart/form-data"> {% endif %}
And
{% if product.available %} </form> {% endif %}
Thank you tremendously for the valuable help, you would make my day!
User | Count |
---|---|
421 | |
209 | |
144 | |
56 | |
42 |