2015-06-25 2 views
0

У меня есть created a way для фильтрации продуктов в моем магазине Shopify по размеру на любой странице коллекции. Однако он работает только тогда, когда размер является единственным вариантом.Вывести только варианты размера в жидкой логике Shopify

Для моего магазина это нормально, но поскольку я открыл фильтр, я бы хотел, чтобы он работал только для одного варианта, даже если существует несколько вариантов.

Проблема состоит в том, что строка типа {% for variant in product.variants %} работает только для одного варианта (например, размер), но я не могу передать аргумент размера, например {% for variant in product.variants.size %}.

Я даже попробовал the recommendedvariant.option1 (т. Е. {% for variant in product.variants.size.option %}), но безрезультатно.

Есть ли способ вывода только массива вариантов размера, даже если для продукта существует несколько вариантов?

Further context.

Кроме того, нашел этот similar question, но это не было достаточно похоже, чтобы обеспечить решение для моего случая использования.

+0

Я думаю, что 'product.variants.size' вернет только количество вариантов продукта. –

ответ

2
{% capture sizes %}{% endcapture %} 
{% for variant in product.variants %} 
    {% if variant.option1 == 'Size' %}{% capture sizes %}{{ sizes }},{{ variant.option1 }}{% endcapture %}{% endif %} 
    {% if variant.option2 == 'Size' %}{% capture sizes %}{{ sizes }},{{ variant.option2 }}{% endcapture %}{% endif %} 
    {% if variant.option3 == 'Size' %}{% capture sizes %}{{ sizes }},{{ variant.option3 }}{% endcapture %}{% endif %} 
{% endfor %} 

Вы можете использовать {{ sizes }} сейчас, через запятую, в качестве альтернативы поменять запятую на HTML, например:

{% capture sizes %}{{ sizes }}<li>{{ variant.option1 }}</li>{% endcapture %} 

Затем можно вывести элементы списка размера как ул используя <ul>{{sizes}}</ul>.

Наконец, если вы действительно нужны размеры как массив можно использовать split{% assign sizes_array = sizes | split: ',' }} глядя на the size filter и the forloops "range" parameter может представлять собой способ петли через это.

Смежные вопросы