Shopify themes, liquid, logos, and UX
I'm trying to add a count of the number of available colors for an item on the listing on the collection page. I have looked at many different articles and threads to build my code. Based on the articles I've read my code should work, but it only outputs the total count of all variants (size/color) plus 1. Here's my code:
{% assign value = 0 %} {% if product.available %} {% for product_option in product.options_with_values %} {% if product_option.name == 'Sizes' or product_option.name == 'sizes' or product_option.name == 'size' or product_option.name == 'Size' %} {% for value in product_option.values %} {% assign value = value | plus: 1 %} {% endfor %} {% endif %} {% endfor %} {% endif %} {% if value > 0 %}<small>Colors available - {{ value }}</small>{% endif %}
Hi,
You don't need to loop and count the number of options. The Liquid template language has a filter called size that counts the number of items.
This is how I use on my shop:
{% if product.available %}
{% for product_option in product.options_with_values %}
{% if product_option.name == 'Color' or product_option.name == '色' %}
<div class="h5">
Available colours: {{ product_option.values | size }}
</div>
{% endif %}
{% endfor %}
{% endif %}
(I have a multilingual shop hence the '色' option value).
Here is an alternative way to get the count:
product.options_by_name['Color'].values.size
User | RANK |
---|---|
71 | |
66 | |
65 | |
53 | |
49 |
We're excited to announce improvements to the threaded messaging experience in our communi...
By TyW May 31, 2023Thank you to everyone who participated in our AMA with Klaviyo. It was great to see so man...
By Jacqui May 30, 2023Photo by Marco Verch Sales channels on Shopify are various platforms where you can sell...
By Ollie May 25, 2023