Show only one product on page by specific tag in shopify
<div class="row">
{% for product in collections.all.products %}
{% if product.tags contains 'frontpagedeal' %}
{% if product.price_min < product.compare_at_price_min %}
{% include 'today-sale' %}
{% endif %}
{% endif %}
{% endfor %}
</div>
I try below code but this is also not working.
<div class="row">
{% for product in collections.Daily_Deals.products %}
{% if product.tags contains 'frontpagedeal' %}
{% include 'dailydeal-countdown' %}
{% endif %}
{% endfor %}
</div>
how I can display a only one product with specific tag ??
Answer
Solution:
{% for product in collections.Daily_Deals.products %}
{% if product.tags contains 'frontpagedeal' %}
{% if forloop.first == true %}
{% include 'dailydeal-countdown' %}
{% endif %}
{% endif %}
{% endfor %}
Can you please test this and tell me if this is what you want.
all i did is adding{% if forloop.first == true %} .... {% endif %}
which will display only one product.
Answer
Solution:
In your second example handles are always lower case so:
<div class="row">
{% assign oneShown = false %}
{% for product in collections.daily_deals.products %}
{% if oneShown %}
{% break %}
{% endif %}
{% if product.tags contains 'frontpagedeal' %}
{% include 'dailydeal-countdown' %}
{% assign oneShown = true %}
{% endif %}
{% endfor %}
</div>
Should work. However if your collection has more than 50 products you may not find the product you are looking for so you'll need to make sure the collection has fewer than 50 products. Ideally for something like this "Daily Deals" would be a smart collection that includes products based on them being a 'frontpagedeal' and you can skip the tag check.
Answer
Solution:
Maybe it would be useful to create a "sale collection" directly in store administration and display it then.
If it is for a client, you may add an option to theme to allow client to select sale collection in theme settings.
Source
Didn't find the answer?
Our community is visited by hundreds of Shopify development professionals every day. Ask your question and get a quick answer for free.
Similar questions
Find the answer in similar questions on our website.
Write quick answer
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.