Переменные доступные в шаблоне product.liquid, а так же в цикле продуктов коллекции.
Данные о товаре
{% if product.available %}
Товар в наличии
{% else %}
Товара нет в наличии
{% endif %}
{% for collection in product.collections %}
{{ collection.title }}
{% endfor %}
На странице товара:
{{ product.description }}
Внутри массива товаров:
{% for product in collection.products %}
{{ product.description }}
{% endfor %}
Ссылка на первое изображение товара:
{{ product.first_image.medium_url }}
Имя первого изображения товара:
{{ product.first_image.title }}
Имя файла первого изображения товара:
{{ product.first_image.file_name}}
Возможные размеры:
48x48 small_url
100x100 thumb_url
160x160 compact_url
240x240 medium_url
480x480 large_url
original image original_url
Ссылка на товар - demo.myinsales.ru/product/my_product
{{ product.handle }}
>> my_product
<form action="{{ cart_url }}" method="post" data-product-id="{{ product.id }}">
{% if product.show_variants? %}
<select name="variant_id" data-product-variants>
{% for variant in product.variants %}
<option value="{{ variant.id }}">{{ variant.title | escape }}</option>
{% endfor %}
</select>
{% else %}
<input type="hidden" name="variant_id" value="{{product.variants.first.id}}" >
{% endif %}
<input type="text" name="comment" value="">
<div data-quantity>
<input type="text" name="quantity" value="1" />
<span data-quantity-change="-1">-</span>
<span data-quantity-change="1">+</span>
</div>
<button type="submit" data-item-add>
Добавить в корзину
</button>
</form>
<div class="images">
{% for image in product.images %}
<div class="images-item">
<img src="{{ image.large_url }}" alt="{{ image.title }} " />
</div>
{% endfor %}
</div>
meta description страницы товара
<meta name="description" content="{{ product.meta_description }}">
На всём сайте следует пользваться следующим примером:
<meta name="description" content="{{ description }}">
meta keywords страницы товара
{% if product.meta_keywords %}
Meta keywords страницы товара: {{ product.meta_keywords }}
{% endif %}
Старая цена товара (цена до скидки).
{% if product.old_price %}
Старая цена: {{ product.old_price | money }}
{% endif %}
Максимальная старая цена товара (если несколько модификаций).
{% if product.old_price_varies? %}
{{ product.old_price_min }} - {{ product.old_price_max }}
{% else %}
{{ product.old_price }}
{% endif %}
Минимальная старая цена товара (если несколько модификаций).
{% if product.old_price_varies? %}
{{ product.old_price_min }} - {{ product.old_price_max }}
{% else %}
{{ product.old_price }}
{% endif %}
Отличаются ли старые цены на модификации у товара (если несколько модификаций).
{% if product.old_price_varies? %}
{{ product.old_price_min }} - {{ product.old_price_max }}
{% else %}
{{ product.old_price }}
{% endif %}
Свойства товара. Например, вывод всех свойств товара вместе с их значениями
{% for option in product.options %}
{{ option.title }} : {% for value in option.values %}{{ value.title }}{% unless forloop.last %},{% endunless %}{% endfor %}
{% endfor %}
Цена товара (минимальная цена, если несколько модификаций).
{{ product.price | money }}
Максимальная цена товара (если несколько модификаций).
{% if product.price_varies? %}
от {{ product.price_min | money }} до {{ product.price_max | money }}
{% endif %}
Минимальная цена товара (если несколько модификаций).
{% if product.price_varies? %}
от {{ product.price_min | money }} до {{ product.price_max | money }}
{% endif %}
Отличаются ли цены на модификации у товара (если несколько модификаций).
{% if product.price_varies? %}
от {{ product.price_min | money }} до {{ product.price_max | money }}
{% endif %}
Параметры товара.
{% for property in product.properties %}
{{property.name}}: {% for item in property.characteristics %}{{item.name}},{% endfor %}
{% endfor %}
Так же можно обращаться к параметру напрямую, зная его пермалинк (handle):
{{ product.properties.handle.characteristics.first.name }}
Рейтинг товара, основанный на отзывах.
{% if product.rating %}
Рейтинг товара: {{ product.rating }}
{% endif %}
Массив отзывов на товар
{% if account.reviews_enabled? %}
{% if product.reviews == empty %}
<div class="notice notice--info">
Пока нет отзывов
</div>
{% else %}
<ul class="reviews-list">
{% for review in product.reviews %}
<li class="review">
<div class="review-details">
<span class="review-name">{{ review.author }}</span> {{ review.created_at | date: "%d.%m.%Y %H:%M" }}
</div>
<div class="review-content">
{{ review.content | newline_to_br }}
</div>
{% if review.rating %}
<div class="review-rating rating">
Оценка: {{ review.rating }}
</div>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
Количество отзывов на товар.
{% if product.reviews_count > 0 %}
<ul class="reviews-list">
{% for review in product.reviews %}
<li class="review">
<div class="review-details">
<span class="review-name">{{ review.author }}</span> {{ review.created_at | date: "%d.%m.%Y %H:%M" }}
</div>
<div class="review-content">
{{ review.content | newline_to_br }}
</div>
{% if review.rating %}
<div class="review-rating rating">
Оценка: {{ review.rating }}
</div>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
Краткое описание товара.
{% if product.short_description %}
<div class="product-short_description">
{{ product.short_description }}
</div>
{% endif %}
Есть ли модификации для отображения (true, если больше одной, либо если одна и она не является дефолтной базовой модификацией).
{% if product.show_variants? %}
<div class="product-variants">
<select name="variant_id" id="variant-select">
{% for variant in product.variants %}
<option value="{{ variant.id }}">{{ variant.title | escape }}</option>
{% endfor %}
</select>
</div>
{% else %}
<input type="hidden" name="variant_id" value="{{ product.variants.first.id }}" />
{% endif %}
Аналогичные товары.
{% if product.similar_products.size > 0 %}
<div class="similar_products">
<div class="similar_products-title">
Аналогичные товары
</div>
<div class="similar_products-slider">
{% for product in product.similar_products %}
<div class="product_preview">
<div class="product_preview-img">
<a href="{{ product.url }}">
<img src="{{ product.first_image.large_url }}" alt="{{ product.title }}" />
</a>
</div>
<div class="product_preview-price">
{{ product.price | money }}
</div>
<div class="product_preview-title">
<a href="{{ product.url }}">
{{ product.title }}
</a>
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
Название товара.
<div class="product">
<div class="product-title">
{{ product.title }}
</div>
{% if product.description %}
<div class="product-description">
{{ product.description }}
</div>
{% endif %}
</div>
JSON-объект товара.
// результат функции console.log({{product | json}}), использовать можно только в ликвид файле, а именно шаблоне product.liquid
{
'id': 60749685,
'url': '/collection/napitki/product/mokkachino',
'title': 'Моккачино',
'short_description': 'Мокаччи́но — кофейный напиток, созданный в Америке и являющийся разновидностью латте с добавлением шоколада.',
'available': true,
'unit': 'pce',
'permalink': 'mokkachino',
'images': [ {
'created_at': '2016-06-16T14:06:21+03:00',
'id': 82136971,
'image_processing': false,
'position': 1,
'product_id': 60749685,
'title': null,
'url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/thumb_Mokkachino.jpg',
'original_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/Mokkachino.jpg',
'medium_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/medium_Mokkachino.jpg',
'small_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/micro_Mokkachino.jpg',
'thumb_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/thumb_Mokkachino.jpg',
'compact_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/compact_Mokkachino.jpg',
'large_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/large_Mokkachino.jpg',
'filename': 'Mokkachino.jpg'
} ],
'first_image': {
'created_at': '2016-06-16T14:06:21+03:00',
'id': 82136971,
'image_processing': false,
'position': 1,
'product_id': 60749685,
'title': null,
'url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/thumb_Mokkachino.jpg',
'original_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/Mokkachino.jpg',
'medium_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/medium_Mokkachino.jpg',
'small_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/micro_Mokkachino.jpg',
'thumb_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/thumb_Mokkachino.jpg',
'compact_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/compact_Mokkachino.jpg',
'large_url': 'https://static-eu.insales.ru/images/products/1/3979/82136971/large_Mokkachino.jpg',
'filename': 'Mokkachino.jpg'
},
'category_id': 4911689,
'canonical_url_collection_id': 5681718,
'price_kinds': [ ],
'option_names': [ {
'id': 612392,
'position': 1,
'title': 'Размер'
} ],
'properties': [ {
'backoffice': false,
'id': 2018587,
'is_hidden': false,
'is_navigational': true,
'position': 2,
'permalink': 'ingredient',
'title': 'Ингредиент'
} ],
'characteristics': [ {
'id': 19611934,
'property_id': 2018587,
'position': 1,
'title': 'шоколад',
'permalink': 'shokolad'
} ],
'variants': [ {
'id': 95292397,
'available': true,
'product_id': 60749685,
'title': 'Стандарт',
'base_price': '120.0',
'prices': [ ],
'price': '120.0',
'old_price': null,
'sku': null,
'barcode': null,
'option_values': [ {
'id': 5954429,
'option_name_id': 612392,
'position': 8,
'title': 'Стандарт'
} ],
'quantity': null,
'weight': null,
'created_at': '2016-06-16T14:06:10+03:00',
'updated_at': '2016-06-16T14:08:29+03:00'
}, {
'id': 95292614,
'available': true,
'product_id': 60749685,
'title': 'Большой',
'base_price': '150.0',
'prices': [ ],
'price': '150.0',
'old_price': null,
'sku': null,
'barcode': null,
'option_values': [ {
'id': 5954430,
'option_name_id': 612392,
'position': 9,
'title': 'Большой'
} ],
'quantity': null,
'weight': null,
'created_at': '2016-06-16T14:08:40+03:00',
'updated_at': '2016-06-16T14:08:44+03:00'
} ]
}
Единица измерения товара. Доступные значения: "шт", "кг", "л; дм3", "м", "м2", "г", "т"
{{ product.unit }}
>> шт
URL продукта
{% for product in collection.products %}
<a href="{{ product.url }}">{{ product.title }}</a>
{% endfor %}
Модификации товара.
{% if product.show_variants? %}
<div class="product-variants">
<select name="variant_id" id="variant-select">
{% for variant in product.variants %}
<option value="{{ variant.id }}">{{ variant.title | escape }}</option>
{% endfor %}
</select>
</div>
{% else %}
<input type="hidden" name="variant_id" value="{{ product.variants.first.id }}" />
{% endif %}
возвращает дополнительные поля товара в формате пермалинк:значение. Например, есть поле "Название книги", с пермалинком - "book" и со значением для конкретного товара "Как увеличить продажи в интернете"
{{ product.fields.book.value }},{{ product.fields.book.title }}
>> "Как увеличить продажи в интернете","Название книги"
Является ли товар комплектом?
{% if product.is_bundle %}
<div class="bundle">
<div class="bundle-title">
Состав комплекта:
</div>
<div class="bundle-list">
{% for bundle_component in product.bundle_components %}
<div class="bundle-item">
<div class="bundle-img">
<img src="{{ bundle_component.product.first_image.medium_url }}" />
</div>
<div class="bundle-name">
{{ bundle_component.product.title }}
</div>
<div class="bundle-price">
{% if bundle_component.is_free %}
В подарок
{% else %}
{{ bundle_component.quantity }} × {{ bundle_component.product.sale_price | money }}
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% if product.bundle_discount > 0 %}
<div class="bundle-discount">
Экономия: {{ product.bundle_discount | money }}
</div>
{% endif %}
</div>
{% endif %}
{% if product.is_bundle %}
<div class="bundle">
<div class="bundle-title">
Состав комплекта:
</div>
<div class="bundle-list">
{% for bundle_component in product.bundle_components %}
<div class="bundle-item">
<div class="bundle-img">
<img src="{{ bundle_component.product.first_image.medium_url }}" />
</div>
<div class="bundle-name">
{{ bundle_component.product.title }}
</div>
<div class="bundle-price">
{% if bundle_component.is_free %}
В подарок
{% else %}
{{ bundle_component.quantity }} × {{ bundle_component.product.sale_price | money }}
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% if product.bundle_discount < 0 %}
<div class="bundle-discount">
Экономия: {{ product.bundle_discount | money }}
</div>
{% endif %}
</div>
{% endif %}
{% if product.is_bundle %}
<div class="bundle">
{% if product.bundle_discount < 0 %}
<div class="bundle-discount">
Экономия при покупке комплекта: {{ product.bundle_discount | money }}
</div>
{% endif %}
</div>
{% endif %}
<a href="{{ product.canonical_collection.url }}">
{{ product.canonical_collection.title }}
</a>
Значение типа базовой(первой) типа цены. Актуально если используются дополнительные(priceN) типы цен в разделе Настройки - Типы цен
Кол-во модификаций: {{ product.variants.size }}
{{ product.updated_at | date: '%d.%m.%y' }}
Это страница отзывов?
{% if account.order_line_comments_enabled %}
<input type="text" name="comment" value="">
{% endif %}
Массив ссылок на видео
{% for video in product.video_links %}
{{ video.url }}
{% endfor %}
Модификации товара
{% if product.show_variants? %}
<div class="product-variants">
<select name="variant_id" id="variant-select">
{% for variant in product.variants %}
<option value="{{ variant.id }}">{{ variant.title | escape }}</option>
{% endfor %}
</select>
</div>
{% else %}
<input type="hidden" name="variant_id" value="{{ product.variants.first.id }}" />
{% endif %}
Есть ли в наличии
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
<div class="variant-available">
{% if variant.available %}
{% assign variant_available = 'в наличии' %}
{% else %}
{% assign variant_available = 'нет в наличии' %}
{% endif %}
Наличие: {{ variant_available }}
</div>
</div>
{% endfor %}
</div>
</div>
Вес модификации
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
{% if variant.weight %}
<div class="variant-old_price">
Вес модификации: {{ variant.weight }} {{ product.unit }}
</div>
{% endif %}
</div>
{% endfor %}
</div>
</div>
Название модификации
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
<div class="variant-available">
{% if variant.available %}
{% assign variant_available = 'в наличии' %}
{% else %}
{% assign variant_available = 'нет в наличии' %}
{% endif %}
Наличие: {{ variant_available }}
</div>
<div class="variant-quantity">
{% if variant.quantity %}
{% assign variant_quantity = variant.quantity %}
{% else %}
{% assign variant_quantity = 'много' %}
{% endif %}
Остаток: {{ variant_quantity }}
</div>
{% if variant.sku %}
<div class="variant-sku">
Артикул: {{ variant.sku }}
</div>
{% endif %}
{% if variant.barcode %}
<div class="variant-barcode">
Штрих-код: {{ variant.barcode }}
</div>
{% endif %}
<div class="variant-price">
Цена модификации: {{ variant.price | money }}
</div>
{% if variant.old_price %}
<div class="variant-old_price">
Старая цена модификации: {{ variant.old_price | money }}
</div>
{% endif %}
{% if variant.weight %}
<div class="variant-old_price">
Вес модификации: {{ variant.weight }} {{ product.unit }}
</div>
{% endif %}
</div>
{% endfor %}
</div>
</div>
Цена модификации
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
<div class="variant-price">
Цена модификации: {{ variant.price | money }}
</div>
</div>
{% endfor %}
</div>
</div>
Цена закупки
Массив значений свойств товара, характеризующих данную модификацию.
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-option_values">
{% for variant in product.variants %}
<div>
Модификация: {{ variant.title }}
</div>
<div>
Свойства модификации:
</div>
{% for option_value in variant.option_values %}
<div>
{{ option_value.option_name.title }}: {{ option_value.title }}
</div>
{% endfor %}
{% endfor %}
</div>
</div>
Старая цена модификации.
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
{% if variant.old_price %}
<div class="variant-old_price">
Старая цена модификации: {{ variant.old_price | money }}
</div>
{% endif %}
</div>
{% endfor %}
</div>
</div>
Штрих-код модификации
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
{% if variant.barcode %}
<div class="variant-barcode">
Штрих-код: {{ variant.barcode }}
</div>
{% endif %}
</div>
{% endfor %}
</div>
</div>
Остатки модификации
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
<div class="variant-quantity">
{% if variant.quantity %}
{% assign variant_quantity = variant.quantity %}
{% else %}
{% assign variant_quantity = 'много' %}
{% endif %}
Остаток: {{ variant_quantity }}
</div>
</div>
{% endfor %}
</div>
</div>
Артикул модификации
<div class="variants">
<div class="variants-title">
Модификации товара:
</div>
<div class="variants-list">
{% for variant in product.variants %}
<div class="variant">
<div class="variant-title">
Имя модификации: {{ variant.title }}
</div>
{% if variant.sku %}
<div class="variant-sku">
Артикул: {{ variant.sku }}
</div>
{% endif %}
</div>
{% endfor %}
</div>
</div>
Ссылка на первое изображение варианта:
{{ variant.first_image.medium_url }}
Остатки на складе
Возвращает остатки в таком виде:
{"Москва": 10, "Санкт-Петербург": 105}
Возвращает дополнительные поля варианта в формате пермалинк:значение. Например, есть поле "Название книги", с пермалинком - "book" и со значением для конкретного варианта "Как увеличить продажи в интернете"
{{ variant.fields.book.value }},{{ variant.fields.book.title }}
>> "Как увеличить продажи в интернете","Название книги"
Типы цен варианта продукта.
{% for variant in product.variants %}
{% for item in variant.variant_price_kinds %}
title : {{ item.title }}
price_handle: {{ item.price_handle }}
price: {{ item.price }}
prcie_rules :{{ item.price_rules }}
show: {{ item.show_in_lists }}
{% endfor %}
{% endfor %}
Габариты варианта
{{variant.dimensions.width}}x{{variant.dimensions.depth}}x{{variant.dimensions.height}}
Параметры товара
{% for property in product.properties %}
{{property.name}}: {% for item in property.characteristics %}{{item.name}},{% endfor%}
{% endfor %}
Так же можно обращаться к параметру напрямую, зная его пермалинк (handle):
{{ product.properties.handle.characteristics.first.name }}
{% for property in product.properties %}
{{ property.name }}: {% for characteristic in property.characteristics %}{{ characteristic.name }},{% endfor%}
{% endfor %}
Так же можно обращаться к параметру напрямую, зная его пермалинк (handle):
{% if product.properties.handle.characteristics.size > 0 %}
{% for characteristic in product.properties.handle.characteristics %}
{{ characteristic.name }}
{% endfor %}
{% endif %}
Обращение к параметру зная его пермалинк (handle):
{% if product.properties.handle.characteristics.size > 0 %}
{% for characteristic in product.properties.handle.characteristics %}
{{ characteristic.name }}
{% endfor %}
{% endif %}
Значения параметров товара
{% for property in product.properties %}
<div>
{{ property.name }}: {% for characteristic in property.characteristics %}{{ characteristic.name }},{% endfor %}
</div>
{% endfor %}
Применение characteristic.handle на примере вывода стикеров через параметры. В нашем случае handle характеристики стикер — stiker.
Из characteristic.handle мы формируем уникальные css классы, чтобы каждому стикеру сделать свой стиль.
{% assign labels_list = '' %}
{% if product.properties.stiker %}
{% for characteristic in product.properties.stiker.characteristics %}
{% assign labels_list = labels_list | append: '<div class="stiker stiker-'| append: characteristic.handle | append: '">' | append: characteristic.title | append: '</div>' %}
{% endfor %}
{% endif %}
<div class="product">
{{ labels_list }}
<div class="product-title">
{{ product.title }}
</div>
</div>
Параметр, которому принадлежит данная характеристика.
{% for property in product.properties %}
{% for characteristic in property.characteristics %}
{{ characteristic.property.name }} / {{ characteristic.property.handle }} / {{ characteristic.property.characteristics.size }}
{% endfor %}
{% endfor %}
URL для фильтрации товаров по данной характеристике в текущей коллекции. (Доступно только в коллекции)
{% for property in collection.properties %}
<div class="property">
<div class="property-title">
{{ property.title }}
</div>
<div class="property-characteristics">
{% for characteristic in property.characteristics %}
<div class="characteristic {% if characteristic.current? %}is-checked{% endif %}">
<a href="{{ characteristic.url }}">
{{ characteristic.title }} ({{characteristic.products_count}})
</a>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
Число товаров с данной характеристикой в текущей коллекции. (Доступно только в коллекции)
{% for property in collection.properties %}
<div class="property">
<div class="property-title">
{{ property.title }}
</div>
<div class="property-characteristics">
{% for characteristic in property.characteristics %}
<div class="characteristic {% if characteristic.current? %}is-checked{% endif %}">
<a href="{{ characteristic.url }}">
{{ characteristic.title }} ({{characteristic.products_count}})
</a>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
{% for property in collection.properties %}
<div class="property">
<div class="property-title">
{{ property.title }}
</div>
<div class="property-characteristics">
{% for characteristic in property.characteristics %}
<div class="characteristic {% if characteristic.current? %}is-checked{% endif %}">
<a href="{{ characteristic.url }}">
{{ characteristic.title }} ({{characteristic.products_count}})
</a>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
Свойства товара
{%for option_name in product.options %}
<div>
Имя свойства: {{ option_name.title }}
</div>
<div>
ID свойства: {{ option_name.id }}
</div>
{%endfor%}
Значения свойства.
{%for option_name in product.options %}
{{ option_name.title }} : {% for option_value in option_name.values %}{{ option_value.title }}{% unless forloop.last %},{% endunless %} {% endfor %}
{%endfor%}
{%for option_name in product.options %}
<div>
Имя свойства: {{ option_name.title }}
</div>
<div>
Кол-во значений свойства: {{ option_name.values.size }}
</div>
{%endfor%}
Значение свойств товара
{%for option_name in product.options %}
{% for option_value in option_name.values %}
{{ option_value.title }} / {{ option_value.id }}
{% endfor %}
{%endfor%}
Название значения свойства.
<div class="options">
{% for option_name in product.options %}
<div class="option">
<div class="option-title">
{{ option_name.title }}
</div>
<div class="option-values">
{% for option_value in option_name.values %}
<div class="option-value">
{{ option_value.title }}
</div>
{% endfor %}
</div>
</div>
{% endfor %}
</div>
Свойства товара, значением которого является данное значение.
{%for option_name in product.options %}
{% for option_value in option_name.values %}
{{ option_value.option_name.title }} / {{ option_value.option_name.id }} / {{ option_value.option_name.values.size }}
{% endfor %}
{%endfor%}
{% for option in collection.options %}
<div class="option">
<div class="option-title">
{{ option.title }}
</div>
<div class="option-values">
{% for option_value in option.values %}
<div class="option-value {% if option_value.selected %}is-selected{% endif %}">
{{ option_value.title }}
</div>
{% endfor %}
</div>
</div>
{% endfor %}
{% for option in collection.options %}
<div class="option">
<div class="option-title">
{{ option.title }}
</div>
<div class="option-values">
{% for option_value in option.values %}
<div class="option-value {% if option_value.selected %}is-selected{% endif %}">
{{ option_value.title }} ({{ option_value.products_count }})
</div>
{% endfor %}
</div>
</div>
{% endfor %}
Отзывы к товару
Имя автора отзыва
{% if account.reviews_enabled? %}
{% if product.reviews == empty %}
<div class="notice notice--info">
Пока нет отзывов
</div>
{% else %}
<ul class="reviews-list">
{% for review in product.reviews %}
<li class="review">
<div class="review-details">
<span class="review-name">{{ review.author }}</span> {{ review.created_at | date: "%d.%m.%Y %H:%M" }}
</div>
<div class="review-content">
{{ review.content | newline_to_br }}
</div>
{% if review.rating %}
<div class="review-rating rating">
Оценка: {{ review.rating }}
</div>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
урл используемый для отправки post запроса на создание отзыва.
<div id="review_form" class="review_form">
<form action="{{ review.action_url }}" method="post">
<h3>Оставить отзыв</h3>
{% if form.posted_successfully? %}
{% if account.reviews_moderated? %}
<div class="review_form-notice notice notice--success">
Отзыв успешно отправлен.<br />
Он будет промодерирован владельцем магазина перед публикацией.
</div>
{% else %}
<div class="review_form-notice notice notice--success">Отзыв добавлен.</div>
{% endif %}
{% endif %}
{% if review.errors.size > 0 %}
<div class="review_form-notice notice notice--warning">
Не все поля заполнены правильно!
</div>
{% endif %}
<div class="notice notice--info">
Все поля обязательны к заполнению
</div>
<div class="review_form-input input input--required
{% if review.errors contains 'author' %} input--error{% endif %}"
>
<label for="review_author" class="input-label">
Имя
</label>
<input type="text"
name="review[author]"
value="{{ review.author }}"
class="input-field"
/>
</div>
<div class="review_form-input input input--required
{% if review.errors contains 'email' %} input--error{% endif %}"
>
<label for="review_email" class="input-label">
E-mail (на сайте не публикуется)
</label>
<input type="email"
name="review[email]"
value="{{ review.email }}"
class="input-field"
/>
</div>
<div class="review_form-input input input--required
{% if review.errors contains 'content' %} input--error{% endif %}"
>
<label for="review_body" class="input-label">
Отзыв
</label>
<textarea name="review[content]"
rows="4"
class="input-field"
>{{ review.content }}</textarea>
<span class="input-notice notice notice--warning">
нам интересно Ваше мнение о товаре
</span>
</div>
<div class="review_form-input rating_wrapper">
<label for="rating" class="rating-label">Оцените товар:</label>
<select class="js-rating" name="review[rating]">
<option value=""></option>
{% for i in (1..5) %}
<option value="{{ i }}">{{ i }}</option>
{% endfor %}
</select>
</div>
{% if review.captcha_enabled? %}
<div id="captcha"
class="review_form-input input input--captcha input--required
{% if review.errors contains 'captcha_solution' %} input--error{% endif %}"
>
<label class="input-label">
Наберите текст, изображённый на картинке
</label>
<div id="captcha_challenge" class="input-captcha">
{{ review | captcha_challenge }}
</div>
<input type="text"
name="review[captcha_solution]"
class="input-field"
/>
</div>
{% endif %}
{% if account.reviews_moderated? %}
<div class="notice notice--info">
Перед публикацией отзывы проходят модерацию
</div>
{% endif %}
<input type="submit"
class="review_form-submit button"
value="Отправить отзыв"
/>
</form>
</div>
Дата создания отзыва.
{% for review in product.reviews %}
{{ review.created_at | date: "%d.%m.%Y %H:%M" }}
{% endfor %}
{% for review in product.reviews %}
{{ review.email }}
{% endfor %}
Список имен неправильно заполненных полей.
{{ review.errors }}
>> captcha_solutionemail
{% for error in review.errors %}
{{ error }}
{% endfor %}
>> captcha_solution
>> email
Оценка товара, поставленная в отзыве.
{% for review in product.reviews %}
{% assign r = 5 %}
{% for i in (1..5) %}
<span class="star-item {% if review.rating == r %}active{% endif %}"></span>
{% assign r = r | minus: 1 %}
{% endfor %}
{% endfor %}
{% ifaccount.reviews_enabled? %}
{% if product.reviews == empty %}
<div class="notice notice--info">
Пока нет отзывов
</div>
{% else %}
<ul class="reviews-list">
{% for review in product.reviews %}
<li class="review">
<div class="review-details">
<span class="review-name">{{ review.author }}</span> {{ review.created_at | date: "%d.%m.%Y %H:%M" }}
</div>
<div class="review-content">
{{ review.content | newline_to_br }}
</div>
{% if review.rating %}
<div class="review-rating rating">
Оценка: {{ review.rating }}
</div>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
{% for review in product.reviews %}
<div class="reviews-item">
<div class="review-header">
<div class="author">{{ review.author }}</div>
<div class="date">{{ review.created_at | date: "%d.%m.%Y %H:%M" }}</div>
</div>
<div class="review-body">
<div class="text">
{{ review.content }}
</div>
{% if review.replied? %}
<div class="review-manager_reply">
{{ review.manager_reply }}
</div>
<div class="review-replied_at">
{{ review.replied_at | date: "%d.%m.%Y %H:%M" }}
</div>
{% endif %}
</div>
</div>
{% endfor %}
Картинка к отзыву.
В настройках отзывов нужно включить чекбокс - Включить картинки в отзывах.
{% for review in product.reviews %}
<img src="{{ review.image.medium_url }}">
{% endfor %}
Комплекты
{% if product.is_bundle %}
<div class="bundle">
<div class="bundle-title">
Состав комплекта:
</div>
<div class="bundle-list">
{% for bundle_component in product.bundle_components %}
<div class="bundle-item">
<div class="bundle-img">
<img src="{{ bundle_component.product.first_image.medium_url }}" />
</div>
<div class="bundle-name">
{{ bundle_component.product.title }}
</div>
<div class="bundle-price">
{% if bundle_component.is_free %}
В подарок
{% else %}
{{ bundle_component.quantity }} × {{ bundle_component.product.sale_price | money }}
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% if product.bundle_discount < 0 %}
<div class="bundle-discount">
Экономия: {{ product.bundle_discount | money }}
</div>
{% endif %}
</div>
{% endif %}
{% if product.is_bundle %}
<div class="bundle">
<div class="bundle-title">
Состав комплекта:
</div>
<div class="bundle-list">
{% for bundle_component in product.bundle_components %}
<div class="bundle-item">
<div class="bundle-img">
<img src="{{ bundle_component.product.first_image.medium_url }}" />
</div>
<div class="bundle-name">
{{ bundle_component.product.title }}
</div>
<div class="bundle-price">
{% if bundle_component.is_free %}
В подарок
{% else %}
{{ bundle_component.quantity }} × {{ bundle_component.product.sale_price | money }}
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% if product.bundle_discount < 0 %}
<div class="bundle-discount">
Экономия: {{ product.bundle_discount | money }}
</div>
{% endif %}
</div>
{% endif %}
{% if product.is_bundle %}
<div class="bundle">
<div class="bundle-title">
Состав комплекта:
</div>
<div class="bundle-list">
{% for bundle_component in product.bundle_components %}
<div class="bundle-item">
<div class="bundle-img">
<img src="{{ bundle_component.product.first_image.medium_url }}" />
</div>
<div class="bundle-name">
{{ bundle_component.product.title }}
</div>
<div class="bundle-price">
{% if bundle_component.is_free %}
В подарок
{% else %}
{{ bundle_component.quantity }} × {{ bundle_component.product.sale_price | money }}
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% if product.bundle_discount < 0 %}
<div class="bundle-discount">
Экономия: {{ product.bundle_discount | money }}
</div>
{% endif %}
</div>
{% endif %}