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 |
---|---|
148 | |
105 | |
92 | |
55 | |
50 |
Connect your PayPal account to allow your customers to checkout using the PayPal gateway a...
ByYour online store speed can enhance your store’s discoverability, boost conversion rates a...
ByShopping is at our fingertips with mobile devices. Is your theme optimized to be user-frie...
By