Переменные liquid

Product

Переменные доступные в шаблоне product.liquid, а так же в цикле продуктов коллекции.

Product

Данные о товаре

product.available Если ли товар в наличии. boolean

Если ли товар в наличии.
Liquid
        
          

{% if product.available %}
  Товар в наличии
  {% else %}
  Товара нет в наличии
{% endif %}

product.collections Список категорий, в которых выставлен товар. array

Список категорий, в которых выставлен товар.
Liquid
        
          

{% for collection in product.collections %}
  {{ collection.title }}
{% endfor %}

product.description Описание товара. <html>

Описание товара.
Liquid
        
          

На странице товара:
{{ product.description }}

 

Внутри массива товаров:
{% for product in collection.products %}
  {{ product.description }}
{% endfor %}

product.first_image Первое (основное) изображение товара. string

Первое (основное) изображение товара.
Liquid
        
          

Ссылка на первое изображение товара:
{{ 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

 

product.handle Пермалинк товара (название товара в URL) string

Пермалинк товара (название товара в URL)
Liquid
        
          

Ссылка на товар - demo.myinsales.ru/product/my_product
{{ product.handle }}
>> my_product

product.id Идентификатор товара (уникальный числовой номер). number

Идентификатор товара (уникальный числовой номер).
Liquid
        
          

<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>

product.images Массив изображений товара Возможные размеры: 48x48 small_url 100x100 thumb_url 160x160 compact_url 240x240 medium_url 480x480 large_url original image original_url array

Массив изображений товара

Возможные размеры:

48x48 small_url

100x100 thumb_url

160x160 compact_url

240x240 medium_url

480x480 large_url

original image original_url
Liquid
        
          

<div class="images">
{% for image in product.images %}
  <div class="images-item">
    <img src="{{ image.large_url }}" alt="{{ image.title }} " />
  </div>
{% endfor %}
</div>

product.meta_description string

meta description страницы товара

Liquid
        
          

<meta name="description" content="{{ product.meta_description }}">

На всём сайте следует пользваться следующим примером:
<meta name="description" content="{{ description }}">

product.meta_keywords string

meta keywords страницы товара

Liquid
        
          

{% if product.meta_keywords %}
  Meta keywords страницы товара: {{ product.meta_keywords }}
{% endif %}

product.old_price number

Старая цена товара (цена до скидки).

Liquid
        
          

{% if product.old_price %}
  Старая цена: {{ product.old_price | money }}
{% endif %}

product.old_price_max number

Максимальная старая цена товара (если несколько модификаций).

Liquid
        
          

{% if product.old_price_varies? %}
  {{ product.old_price_min }} - {{ product.old_price_max }}
  {% else %}
  {{ product.old_price }}
{% endif %}

product.old_price_min number

Минимальная старая цена товара (если несколько модификаций).

Liquid
        
          

{% if product.old_price_varies? %}
  {{ product.old_price_min }} - {{ product.old_price_max }}
  {% else %}
  {{ product.old_price }}
{% endif %}

product.old_price_varies? boolean

Отличаются ли старые цены на модификации у товара (если несколько модификаций).

Liquid
        
          

{% if product.old_price_varies? %}
  {{ product.old_price_min }} - {{ product.old_price_max }}
  {% else %}
  {{ product.old_price }}
{% endif %}

product.options array

Свойства товара. Например, вывод всех свойств товара вместе с их значениями

Liquid
        
          

{% for option in product.options %}
  {{ option.title }} : {% for value in option.values %}{{ value.title }}{% unless forloop.last %},{% endunless %}{% endfor %}
{% endfor %}

product.price number

Цена товара (минимальная цена, если несколько модификаций).

Liquid
        
          {{ product.price | money }}
        
      

product.price_max number

Максимальная цена товара (если несколько модификаций).

Liquid
        
          

{% if product.price_varies? %}
  от {{ product.price_min | money }} до {{ product.price_max | money }}
{% endif %}

product.price_min number

Минимальная цена товара (если несколько модификаций).

Liquid
        
          

{% if product.price_varies? %}
  от {{ product.price_min | money }} до {{ product.price_max | money }}
{% endif %}

product.price_varies? boolean

Отличаются ли цены на модификации у товара (если несколько модификаций).

Liquid
        
          

{% if product.price_varies? %}
  от {{ product.price_min | money }} до {{ product.price_max | money }}
{% endif %}

product.properties object

Параметры товара.

Liquid
        
          

{% for property in product.properties %}
  {{property.name}}: {% for item in property.characteristics %}{{item.name}},{% endfor %}
{% endfor %}

Так же можно обращаться к параметру напрямую, зная его пермалинк (handle):

{{ product.properties.handle.characteristics.first.name }}

product.rating number

Рейтинг товара, основанный на отзывах.

Liquid
        
          

{% if product.rating %}
  Рейтинг товара: {{ product.rating }} 
{% endif %}

product.related_products array

Сопутствующие товары.

Liquid
        
          

{% if product.related_products.size > 0 %}
  <div class="related_products">
    <div class="related_products-title">
      Сопутствующие товары
    </div>
    <div class="related_products-slider">
      {% for product in product.related_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 %}

product.reviews array

Массив отзывов на товар 

Liquid
        
          

{% 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 %}

product.reviews_count number

Количество отзывов на товар.

Liquid
        
          

{% 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 %}

product.short_description string

Краткое описание товара.

Liquid
        
          

{% if product.short_description %}
  <div class="product-short_description">
    {{ product.short_description }}
  </div>
{% endif %}

product.show_variants? boolean

Есть ли модификации для отображения (true, если больше одной, либо если одна и она не является дефолтной базовой модификацией).

Liquid
        
          

{% 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 %}

product.similar_products array

Аналогичные товары.

Liquid
        
          

{% 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 %}

product.title string

Название товара.

Liquid
        
          

<div class="product">
  <div class="product-title">
    {{ product.title }}
  </div>
  {% if product.description %}
  <div class="product-description">
    {{ product.description }}
  </div>
  {% endif %}
</div>

product | json object

JSON-объект товара.

js
        
          

// результат функции 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'
  } ]
}

product.unit string

Единица измерения товара. Доступные значения: "шт", "кг", "л; дм3", "м", "м2", "г", "т"

Liquid
        
          

{{ product.unit }}
>> шт

product.url string

URL продукта

Liquid
        
          

{% for product in collection.products %}
  <a href="{{ product.url }}">{{ product.title }}</a>
{% endfor %}

product.variants array

Модификации товара.

Liquid
        
          

{% 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 %}

product.fields object

возвращает дополнительные поля товара в формате пермалинк:значение. Например, есть поле "Название книги", с пермалинком - "book" и со значением для конкретного товара "Как увеличить продажи в интернете"

Liquid
        
          

{{ product.fields.book.value }},{{ product.fields.book.title }}

>> "Как увеличить продажи в интернете","Название книги"

product.is_bundle Является ли товар комплектом? boolean

Является ли товар комплектом?
Liquid
        
          

{% 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 %}

product.bundle_components Массив товаров входящих в комплект. array

Массив товаров входящих в комплект.
Liquid
        
          

{% 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 %}

product.bundle_discount Разница между ценой за комплект и суммой всех товаров комплекта. Например если комплект стоит 500 р., а сумма всех товаров комплетка 1200 р., product.bundle_discount => 700 р.. Если комплект стоит 5000 р., а сумма всех товаров комплетка 2000 р., product.bundle_discount => -3000 р.. number

Разница между ценой за комплект и суммой всех товаров комплекта.
Например если комплект стоит 500 р., а сумма всех товаров комплетка 1200 р., product.bundle_discount => 700 р..
Если комплект стоит 5000 р., а сумма всех товаров комплетка 2000 р., product.bundle_discount => -3000 р..
Liquid
        
          

{% if product.is_bundle %}
  <div class="bundle">
    {% if product.bundle_discount < 0 %}
    <div class="bundle-discount">
      Экономия при покупке комплекта: {{ product.bundle_discount | money }}
    </div>
    {% endif %}
  </div>
{% endif %}

product.canonical_collection Каноническая категория товара object

Каноническая категория товара
Liquid
        
          

<a href="{{ product.canonical_collection.url }}">
  {{ product.canonical_collection.title }}
</a>

product.base_price Значение типа базовой(первой) типа цены. Актуально если используются дополнительные(priceN) типы цен в разделе Настройки - Типы цен number

Значение типа базовой(первой) типа цены. Актуально если используются дополнительные(priceN) типы цен в разделе Настройки - Типы цен

Значение типа базовой(первой) типа цены. Актуально если используются дополнительные(priceN) типы цен в разделе Настройки - Типы цен

product.related_articles Список статей, к которым привязан товар array

Список статей, к которым привязан товар

product.variants.size Количество модификаций number

Количество модификаций
Liquid
        
          

Кол-во модификаций: {{ product.variants.size }} 

variant in product.variants

Модификации товара

variant.id Id модификации number

Id модификации
Liquid
        
          

{% 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 %}

variant.available boolean

Есть ли в наличии

Liquid
        
          

<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>

variant.weight number

Вес модификации

Liquid
        
          

<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>

variant.title string

Название модификации

Liquid
        
          

<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>

variant.price number

Цена модификации

Liquid
        
          

<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>

variant.option_values array

Массив значений свойств товара, характеризующих данную модификацию.

Liquid
        
          

<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>

variant.old_price number

Старая цена модификации.

Liquid
        
          

<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>

variant.barcode string

Штрих-код модификации

Liquid
        
          

<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>

variant.quantity number

Остатки модификации

Liquid
        
          

<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>

variant.sku string

Артикул модификации

Liquid
        
          

<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 Первое (основное) изображение варианта. string

Первое (основное) изображение варианта.
Liquid
        
          

Ссылка на первое изображение варианта:
{{ variant.first_image.medium_url }}

property in product.properties

Параметры товара

property.name Название параметра. string

Название параметра.
Liquid
        
          

{% for property in product.properties %}
  {{property.name}}: {% for item in property.characteristics %}{{item.name}},{% endfor%}
{% endfor %}

Так же можно обращаться к параметру напрямую, зная его пермалинк (handle):

{{ product.properties.handle.characteristics.first.name }}

property.characteristics Массив значений данного параметра. Например, вывод всех характеристик с указанием числа товаров. array

Массив значений данного параметра. Например, вывод всех характеристик с указанием числа товаров.
Liquid
        
          

{% 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 %}

property.handle Пермалинк параметра. Пермалинк можно посмотреть в бэк-офисе Настройки -> Параметры товаров -> редактировать параметр string

Пермалинк параметра.
Пермалинк можно посмотреть в бэк-офисе Настройки -> Параметры товаров -> редактировать параметр
Liquid
        
          

Обращение к параметру зная его пермалинк (handle):
{% if product.properties.handle.characteristics.size > 0 %}
  {% for characteristic in product.properties.handle.characteristics %}
    {{ characteristic.name }}
  {% endfor %}
{% endif %}

property.gt_value Минимальное значение числового параметра number

Минимальное значение числового параметра

property.lt_value Максимальное значение числового параметра number

Максимальное значение числового параметра

characteristic in property.characteristics

Значения параметров товара

characteristic.name Название характеристики. string

Название характеристики.
Liquid
        
          

{% for property in product.properties %} 
  <div>
    {{ property.name }}: {% for characteristic in property.characteristics %}{{ characteristic.name }},{% endfor %} 
  </div>
{% endfor %}

characteristic.handle Прмалинк характеристики. string

Прмалинк характеристики.
Liquid
        
          

Применение 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>

characteristic.property object

Параметр, которому принадлежит данная характеристика.

Liquid
        
          

{% for property in product.properties %}
  {% for characteristic in property.characteristics %}
    {{ characteristic.property.name }} / {{ characteristic.property.handle }} / {{ characteristic.property.characteristics.size }}
  {% endfor %}
{% endfor %}

characteristic.url string

URL для фильтрации товаров по данной характеристике в текущей коллекции. (Доступно только в коллекции)

Liquid
        
          

{% 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 }}&nbsp;({{characteristic.products_count}})
            </a>
          </div>
        {% endfor %}
      </div>
  </div>
{% endfor %}

characteristic.products_count number

Число товаров с данной характеристикой в текущей коллекции.  (Доступно только в коллекции)

Liquid
        
          

{% 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 }}&nbsp;({{characteristic.products_count}})
            </a>
          </div>
        {% endfor %}
      </div>
  </div>
{% endfor %}

characteristic.current? Текущая характеристика? (Доступно только в коллекции) boolean

Текущая характеристика? (Доступно только в коллекции)
Liquid
        
          

{% 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 }}&nbsp;({{characteristic.products_count}})
            </a>
          </div>
        {% endfor %}
      </div>
  </div>
{% endfor %}

characteristic.id id значения параметра number

id значения параметра

option_name in product.options

Свойства товара

option_name.id Id свойства. number

Id свойства.
Liquid
        
          

{%for option_name in product.options %}
  <div>
    Имя свойства: {{ option_name.title }}
  </div>
  <div>
    ID свойства: {{ option_name.id }}
  </div>
{%endfor%}

option_name.values array

Значения свойства. 

Liquid
        
          

{%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%} 

option_name.title Название свойства. string

Название свойства.
Liquid
        
          

{%for option_name in product.options %}
  <div>
    Имя свойства: {{ option_name.title }}
  </div>
  <div>
    Кол-во значений свойства: {{ option_name.values.size }}
  </div>
{%endfor%}

option_value in option_name.values

Значение свойств товара

option_value.id Id значения свойства. number

Id значения свойства.
Liquid
        
          

{%for option_name in product.options %}
  {% for option_value in option_name.values %}
    {{ option_value.title }} / {{ option_value.id }}
  {% endfor %}
{%endfor%}

option_value.title number

Название значения свойства.

Liquid
        
          

<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>

option_value.option_name object

Свойства товара, значением которого является данное значение.

Liquid
        
          

{%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%}

option_value.selected Отмеченное значение в фильтре свойств? (доступно только в коллекции) boolean

Отмеченное значение в фильтре свойств? (доступно только в коллекции)
Liquid
        
          

{% 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 %}

option_value.products_count Кол-во товара с данным значением свойства. (доступно только в коллекции) number

Кол-во товара с данным значением свойства. (доступно только в коллекции)
Liquid
        
          

{% 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 %}

review in product.reviews

Отзывы к товару

review.author Имя автора отзыва string

Имя автора отзыва
Liquid
        
          

{% 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 %}

review.action_url string

урл используемый для отправки post запроса на создание отзыва.

Liquid
        
          

<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>

review.created_at date

Дата создания отзыва.

Liquid
        
          

{% for review in product.reviews %}

  {{ review.created_at | date: "%d.%m.%Y %H:%M" }}

{% endfor %}

review.email Email автора отзыва. (Как правило не следует выводить email автора на сайт) string

Email автора отзыва. (Как правило не следует выводить email автора на сайт)
Liquid
        
          

{% for review in product.reviews %}
  {{ review.email }}
{% endfor %}

review.errors array

Список имен неправильно заполненных полей.

Liquid
        
          

{{ review.errors }}
>> captcha_solutionemail

 

{% for error in review.errors %}
  {{ error }}
{% endfor %}
>> captcha_solution
>> email

review.rating number

Оценка товара, поставленная в отзыве.

Liquid
        
          

{% 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 %}

review.content Текст отзыва. <html>

Текст отзыва.
Liquid
        
          

{% 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 %}

bundle_component in product.bundle_components

Комплекты

bundle_component.product Ссылка на товар из списка товаров комплекта object

Ссылка на товар из списка товаров комплекта
Liquid
        
          

{% 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 %}

bundle_component.variant Cодержит информацию о конкретном варианте товара, который привязан к комплекту object

Cодержит информацию о конкретном варианте товара, который привязан к комплекту

bundle_component.quantity Колличество товарной позиции в комплекте number

Колличество товарной позиции в комплекте
Liquid
        
          

{% 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 %}

bundle_component.is_free Товарная позиция является бесплатной? (для активации бесплатной позиции нужно выставить чекбокс "FREE" в бекофисе) boolean

Товарная позиция является бесплатной? (для активации бесплатной позиции нужно выставить чекбокс "FREE" в бекофисе)
Liquid
        
          

{% 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 %}

Collection

Переменные доступные в шаблоне collection.liquid

collection

collection.title Название категории. string

Название категории.
Liquid
        
          

<h1>
  {{ collection.title }}
</h1>

collection.url URL коллекции string

URL коллекции
Liquid
        
          

<ul class="menu is-collection">
  {% for collection in collections.all.subcollectons %}
    <li class="menu-item">
      <a href="{{ collection.url }}" class="menu-link {% if collection.current? %}is-current{% endif %}">
        {{ collection.title }}
      </a>
    </li>
  {% endfor %}
</ul>

collection.id Id коллекции number

Id коллекции
Liquid
        
          

{% if collection.id == 4223326 %}
  // ваш код
{% endif %}

collection.current_collections Массив родительских категорий, включая текущую. array

Массив родительских категорий, включая текущую.
Liquid
        
          

{% assign collection_title = 'бренды' %}
{% for current_collection in collection.current_collections %}
  {% assign inner_title = current_collection.title | downcase %}
  {% if inner_title contains collection_title %}
    Данная категория является подкатегорией категории «бренды»
  {% endif %}
{% endfor %}

collection.current? Является ли категория текущей? boolean

Является ли категория текущей?
Liquid
        
          

<ul class="menu is-collection">
  {% for collection in collections.all.subcollectons %}
    <li class="menu-item">
      <a href="{{ collection.url }}" class="menu-link {% if collection.current? %}is-current{% endif %}">
        {{ collection.title }}
      </a>
    </li>
  {% endfor %}
</ul>

collection.current_option_values Свойства товаров выбранные в фильтре категории. array

Свойства товаров выбранные в фильтре категории.
Liquid
        
          

{% for option in collection.current_option_values %}
  {{ option.title }}
{% endfor %}

collection.description Описание категории. <html>

Описание категории.
Liquid
        
          

{% if collection.description %}
  <div class="collection-description">
    {{ collection.description }}
  </div>
{% endif %}

collection.fields Дополнительные поля категорий object

Дополнительные поля категорий
Liquid
        
          

Вывести конкретное доп. поле:
{% if collection.fields.banner.value %}
  {{ collection.fields.banner.title }}
  {{ collection.fields.banner.value }}
{% endif %}

Вывести все доп. поля:
{% for collection_field in collection.fields %}
  <div class="field-title is-{{ collection_field.handle }}">
    {{ collection_field.title }}
  </div>
  <div class="field-value">
    {{ collection_field.value }}
  </div>
{% endfor %}

collection.handle Пермалинк коллекции string

Пермалинк коллекции
Liquid
        
          

Пермалинк категории: {{ collection.handle }}

collection.image Изображение категории. object

Изображение категории.

Возможные размеры:

48x48 small_url

100x100 thumb_url

160x160 compact_url

240x240 medium_url

480x480 large_url

original image original_url

Liquid
        
          

<img src="{{ collection.image.large_url }}" alt="{{ collection.title }}" />

collection.level Уровень вложенности категории (начинается с 1). number

Уровень вложенности категории (начинается с 1).
Liquid
        
          

Категория находится на {{ collection.level }} уровне

collection.meta_description meta description страницы категории string

meta description страницы категории
Liquid
        
          

{% if collection.meta_description %}
  Meta description:{{ collection.meta_description }}
{% endif %}

collection.meta_keywords meta keywords страницы категории string

meta keywords страницы категории
Liquid
        
          

{% if collection.meta_keywords %}
  Meta keywords страницы категории: {{ collection.meta_keywords }}
{% endif %}

collection.options Свойства всех товаров категории. array

Свойства всех товаров категории.
Liquid
        
          

{% for option in collection.options %}
  <ul>
    <li>
      {{ option.title }}
      {% if option.values.size > 0 %}
        <ul>
        {% for option_value in option.values %}
          <li>
            {{ option_value.title }}
          </li>
        {% endfor %}
        </ul>
      {% endif %}
    </li>
  </ul>
{% endfor %}

collection.parent Родительская категория. object

Родительская категория.
Liquid
        
          

{% if collection.parent %}
  Родительская категория: {{ collection.parent.title }}
  {% else %}
  Нет родительских категорий
{% endif %}

collection.next_product При помощи этого объекта можно организовать в карточке товара переход к следующему товару категории (горизонтальная навигация). object

При помощи этого объекта можно организовать в карточке товара переход к следующему товару категории (горизонтальная навигация).
Liquid
        
          
{% if collection.products.size > 1 %}  
  <div class="prods-paginate">
     <a href="{% if collection.previous_product.url %}{{ collection.previous_product.url }}
     {% else %}
     {{ collection.products.last.url }}{% endif %}" class="fl"><span class="prev">⟨</span>предыдущий товар</a>
     <a href="{% if collection.next_product.url %}{{ collection.next_product.url }} 
    {% else %}
    {{ collection.products.first.url }}{% endif %}" class="fr">следующий товар<span class="next">⟩</span></a>
  </div>
{% endif %}

collection.previous_product При помощи этого объекта можно организовать в карточке товара переход к предыдущему товару категории (горизонтальная навигация). object

При помощи этого объекта можно организовать в карточке товара переход к предыдущему товару категории (горизонтальная навигация).
Liquid
        
          

{% if collection.products.size > 1 %}  
  <div class="prods-paginate">
     <a href="{% if collection.previous_product.url %}{{ collection.previous_product.url }}
     {% else %}
     {{ collection.products.last.url }}{% endif %}" class="fl"><span class="prev">⟨</span>предыдущий товар</a>
     <a href="{% if collection.next_product.url %}{{ collection.next_product.url }} 
    {% else %}
    {{ collection.products.first.url }}{% endif %}" class="fr">следующий товар<span class="next">⟩</span></a>
  </div>
{% endif %}

 

collection.products Массив товаров категории. array

Массив товаров категории.
Liquid
        
          

{% for product in collection.products %}
  <a href="{{ product.url }}">{{ product.title }}</a>
{% endfor %}

collection.products_count Количество товаров в данной категории. number

Количество товаров в данной категории.
Liquid
        
          

{% if collection.products_count > 0 %}
  Товаров в категории: {{ collection.products_count }}
  {% else %}
  Простите, в данном разделе пока нет товаров. Мы работаем над этим.
{% endif %}

collection.current_characteristics Текущие значения параметров всех товаров категории. array

Текущие значения параметров всех товаров категории.
Liquid
        
          

{% for characteristic in collection.current_characteristics %}
  {{ characteristic.title }}
{% endfor %}

collection.seo_description Дополнительное описание категории. <html>

Дополнительное описание категории.
Liquid
        
          

{% if collection.seo_description %}
  <div class="collection-seo_description">
    {{ collection.seo_description }}
  </div>
{% endif %}

collection.properties Параметры всех товаров категории. array

Параметры всех товаров категории.
Liquid
        
          

{% for property in collection.properties %}
  <div>
    {{ property.name }}
  </div>
  {% for characteristic in property.characteristics %}
    <div>
      {{ characteristic.name }}
    </div>
  {% endfor %}
{% endfor %}

Также можно обратится к параметру по пермалинку (handle)
{% for characteristic in collection.properties.handle.characteristics %}
  <div>
    {{ characteristic.name }}
  </div>
{% endfor %}

collection.subcollections Подколлекции данной категории. array

Подколлекции данной категории.
Liquid
        
          

{% for collection in collection.subcollections %}
    <a href="{{ collection.url }}">{{ collection.title }}</a>
 {% endfor %}

current_collections Список текущих категорий (полезно в случае многоуровневой структуры каталога), например для вывода хлебных крошек. array

Список текущих категорий (полезно в случае многоуровневой структуры каталога), например для вывода хлебных крошек.
Liquid
        
          

{% for collection in current_collections %}
    <a href="{{ collection.url }}">{{ collection.title }}</a>
 {% endfor %}

collections Все категории верхнего уровня из каталога на сайте. Каждый элемент массива является объектом с типом collection object

Все категории верхнего уровня из каталога на сайте. Каждый элемент массива является объектом с типом collection
Liquid
        
          

Примеры: Вывод всех категорий верхнего уровня:
{% for collection in collections %}
  {{ collection.title }}
{% endfor %}

collections[handle] Обращение к объекту конкретной категории (handle — пермалинк категории) object

Обращение к объекту конкретной категории (handle — пермалинк категории)
Liquid
        
          

{% assign collection_handle = 'all' %}

Следующие вызовы вернут одинаковое значение:

collections[collection_handle].title

collections['all'].title

collections.all.title

Пример использования в цикле:

{% for collection in collections.all.subcollections %}
  {{ collection.title }}
{% endfor %}

collections.flatten Вывод дерева категорий (полный список категорий магазина) array

Вывод дерева категорий (полный список категорий магазина)
Liquid
        
          

{% for collection in collections.flatten %}
  {% if collection.first? %}<ul>{% endif %}
  {% if collection.show? %}
    <li {% if collection.current? %}class="active"{% endif %}
      <a href="{{ collection.url }}">{{ collection.title }}</a>
    </li>
  {% endif %}
  {% if collection.last? %} {% for i in (1..collection.level_difference) %}</ul>{% endfor %} {% endif %}
{% endfor %}

collection.first? Первая ли категория среди подкатегорий родительской категории. Метод используется в выводе дерева категорий (collections.flatten). boolean

Первая ли категория среди подкатегорий родительской категории. Метод используется в выводе дерева категорий (collections.flatten).
Liquid
        
          

{% for collection in collections.flatten %}
  {% if collection.first? %}<ul>{% endif %}
  {% if collection.show? %}
    <li {% if collection.current? %}class="active"{% endif %}
      <a href="{{ collection.url }}">{{ collection.title }}</a>
    </li>
  {% endif %}
  {% if collection.last? %} {% for i in (1..collection.level_difference) %}</ul>{% endfor %} {% endif %}
{% endfor %}

collection.last? Последняя ли категория среди подкатегорий родительской категории. Метод используется в выводе дерева категорий (collections.flatten). boolean

Последняя ли категория среди подкатегорий родительской категории. Метод используется в выводе дерева категорий (collections.flatten).
Liquid
        
          

{% for collection in collections.flatten %}
  {% if collection.first? %}<ul>{% endif %}
  {% if collection.show? %}
    <li {% if collection.current? %}class="active"{% endif %}
      <a href="{{ collection.url }}">{{ collection.title }}</a>
    </li>
  {% endif %}
  {% if collection.last? %} {% for i in (1..collection.level_difference) %}</ul>{% endfor %} {% endif %}
{% endfor %}

collection.show? Нужно ли показывать категорию при отображения дерева. Верно, если это категория верхнего уровня, текущая или родительская категория является текущей. Метод используется в выводе дерева категорий. boolean

Нужно ли показывать категорию при отображения дерева. Верно, если это категория верхнего уровня, текущая или родительская категория является текущей. Метод используется в выводе дерева категорий.
Liquid
        
          

{% for collection in collections.flatten %}
  {% if collection.first? %}<ul>{% endif %}
  {% if collection.show? %}
    <li {% if collection.current? %}class="active"{% endif %}
      <a href="{{ collection.url }}">{{ collection.title }}</a>
    </li>
  {% endif %}
  {% if collection.last? %} {% for i in (1..collection.level_difference) %}</ul>{% endfor %} {% endif %}
{% endfor %}

collection.level_difference? Возвращает разницу уровней между текущей и предыдущей категорией, по сути число означает сколько закрывающих тегов надо вывести при отображении дерева. number

Возвращает разницу уровней между текущей и предыдущей категорией, по сути число означает сколько закрывающих тегов надо вывести при отображении дерева.
Liquid
        
          

Вывод дерева категорий (с использованием объекта collections.flatten - полный список категорий магазина, всех уровней вложенности):
{% for collection in collections.flatten %}
  {% if collection.first? %}<ul>{% endif %}
  {% if collection.show? %}
    <li {% if collection.current? %}class="active"{% endif %}
      <a href="{{ collection.url }}">{{ collection.title }}</a>
    </li>
  {% endif %}
  {% if collection.last? %} {% for i in (1..collection.level_difference) %}</ul>{% endfor %} {% endif %}
{% endfor %}

collection.filters Массив всех seo-фильтров категории. array

Массив всех seo-фильтров категории.
Liquid
        
          

{% for seo_filter in collection.filters %}
  <a href="{{ collection.url }}/{{ seo_filter.handle }}" class="{% if filter.handle == seo_filter.handle %}is-active{% endif %}">
    {{ seo_filter.title }}
  </a>
{% endfor %}

collection.show_subcollections? Вернет true если категория является текущей и в ней есть субколлекции boolean

Вернет true если категория является текущей и в ней есть субколлекции

collection.subcollections.size > 0 Есть ли у категории подкатегории. Метод используется только в выводе дерева категорий через collections.flatten. boolean

Есть ли у категории подкатегории. Метод используется только в выводе дерева категорий через collections.flatten.
Liquid
        
          

{% if collection.subcollections.size > 0 %}

...

{% endif %}

(SEO) filter

filter.description Описание фильтра. <html>

Описание фильтра.
Liquid
        
          

{% if filter %}
  <div class="filter-description">
    {{ filter.description }}
  </div>
{% endif %}

filter.handle Пермалинк фильтра. string

Пермалинк фильтра.
Liquid
        
          

{% if filter %}
  <div class="filter-description filter-{{ filter.handle }}">
    {{ filter.description }}
  </div>
{% endif %}

filter.id id фильтра number

id фильтра
Liquid
        
          

{% if filter %}
  <div class="filter-description filter-{{ filter.handle }}">
    ID seo фильтра - {{ filter.id }}
  </div>
{% endif %}

filter.meta_description Значение мета тега keywords фильтра. string

Значение мета тега keywords фильтра.
Liquid
        
          

{% if filter.meta_description %}
  Meta description seo фильтра: {{ filter.meta_description }}
{% endif %}

filter.meta_keywords Значение мета тега description фильтра. string

Значение мета тега description фильтра.
Liquid
        
          

{% if filter.meta_keywords %}
  Meta keywords seo фильтра: {{ filter.meta_keywords }}
{% endif %}

filter.title Название фильтра. string

Название фильтра.
Liquid
        
          

{% if filter %}
  <h1>{{ filter.title }}</h1>
  {% else %}
  <h1>{{ collection.title }}</h1>
{% endif %}

filter.seo_description Доп. описание <html>

Доп. описание
Liquid
        
          

{% if filter %}
  <div class="filter-seo_description">
    {{ filter.seo_description}}
  </div>
{% endif %}

Cart

Объект cart доступен во всех шаблонах темы.

Cart

cart.coupon Введенный код купона. string

Введенный код купона.
Liquid
        
          

{% if cart.enable_coupon? %}
  <form action="{{ cart_url }}" method="post" >
    <input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
    <button type="submit">
      Применить купон
    </button>
    {% if cart.invalid_coupon? %}
      <div class="discounts-notice notice notice-error">
        {{ cart.coupon_error }}
      </div>
    {% endif %}
    {% if cart.discounts.size > 0 %}
    {% for discount in cart.discounts %}
      <div class="discount">
      <div class="discount-title">
        {{ discount.description }}
      </div>
          <div class="discount-prices prices">
            <span class="prices-current">
              - {{ discount.amount | money }}
            </span>
          </div>
        </div>
      {% endfor %}
    {% endif %}
  </form>
{% endif %}

cart.coupon_error Сообщение ошибки ввода купона. string

Сообщение ошибки ввода купона.
Liquid
        
          

{% if cart.enable_coupon? %}
  <form action="{{ cart_url }}" method="post" >
    <input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
    <button type="submit">
      Применить купон
    </button>
    {% if cart.invalid_coupon? %}
      <div class="discounts-notice notice notice-error">
        {{ cart.coupon_error }}
      </div>
    {% endif %}
    {% if cart.discounts.size > 0 %}
    {% for discount in cart.discounts %}
      <div class="discount">
      <div class="discount-title">
        {{ discount.description }}
      </div>
          <div class="discount-prices prices">
            <span class="prices-current">
              - {{ discount.amount | money }}
            </span>
          </div>
        </div>
      {% endfor %}
    {% endif %}
  </form>
{% endif %}

cart.discounts Массив скидок. array

Массив скидок.
Liquid
        
          

{% if cart.discounts.size > 0 %}
  {% for discount in cart.discounts %}
  <div class="discount">
  <div class="discount-title">
    {{ discount.description }}
  </div>
      <div class="discount-prices prices">
        <span class="prices-current">
          - {{ discount.amount | money }}
        </span>
      </div>
    </div>
  {% endfor %}
{% endif %}

cart.enable_coupon? Флаг, обозначающий, включено использование купонов или нет, - если купоны запрещены тарифом - возвращает true. boolean

Флаг, обозначающий, включено использование купонов или нет, - если купоны запрещены тарифом - возвращает true.
Liquid
        
          

{% if cart.enable_coupon? %}
  <form action="{{ cart_url }}" method="post" >
    <input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
    <button type="submit">
      Применить купон
    </button>
    {% if cart.invalid_coupon? %}
      <div class="discounts-notice notice notice-error">
        {{ cart.coupon_error }}
      </div>
    {% endif %}
    {% if cart.discounts.size > 0 %}
    {% for discount in cart.discounts %}
      <div class="discount">
      <div class="discount-title">
        {{ discount.description }}
      </div>
          <div class="discount-prices prices">
            <span class="prices-current">
              - {{ discount.amount | money }}
            </span>
          </div>
        </div>
      {% endfor %}
    {% endif %}
  </form>
{% endif %}

cart.invalid_coupon? Флаг, обозначающий, что введенн неверный купон, если купон не задан возвращает false. boolean

Флаг, обозначающий, что введенн неверный купон, если купон не задан возвращает false.
Liquid
        
          

{% if cart.enable_coupon? %}
  <form action="{{ cart_url }}" method="post" >
    <input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
    <button type="submit">
      Применить купон
    </button>
    {% if cart.invalid_coupon? %}
      <div class="discounts-notice notice notice-error">
        {{ cart.coupon_error }}
      </div>
    {% endif %}
    {% if cart.discounts.size > 0 %}
    {% for discount in cart.discounts %}
      <div class="discount">
      <div class="discount-title">
        {{ discount.description }}
      </div>
          <div class="discount-prices prices">
            <span class="prices-current">
              - {{ discount.amount | money }}
            </span>
          </div>
        </div>
      {% endfor %}
    {% endif %}
  </form>
{% endif %}

cart.items Массив товаров (товарных позиций) в корзине. array

Массив товаров (товарных позиций) в корзине.
Liquid
        
          

{% for item in cart.items %}
  <div class="item">
    <div class="item-title">
      {{ item.title }}
    </div>
    <div class="item-title">
      {{ item.quantity | money }} &times; {{ item.sale_price }} = {{ item.total_price | money }}
    </div>
  </div>
{% endfor %}

cart.items_count Число позиций в корзине. number

Число позиций в корзине.
Liquid
        
          

Товаров в корзине: {{ cart.items_count }}

cart.items_price Сумма с учетом скидки без учета доставки number

Сумма с учетом скидки без учета доставки
Liquid
        
          

Итого: {{ cart.items_price | money }}

cart.items_weight Суммарный вес всех позиций в корзине. number

Суммарный вес всех позиций в корзине.
Liquid
        
          

{% if cart.items_weight %}
  Сумарный вес товаров в корзине: {{ cart.items_weight }}
{% endif %}

cart.total_price Сумма с учетом скидки и с учетом доставки number

Сумма с учетом скидки и с учетом доставки
Liquid
        
          

Суммарная стоимость заказа с учетом доставки: {{ cart.total_price | money }}

item in cart.items

item.comment Комментарий к позиции заказа. string

Комментарий к позиции заказа.

Для работы данного функционала нужно включить настройку в бэк-офисе: Настройки -> Карточка магазина -> Включить комментарии к позициям заказа

Liquid
        
          

<!-- Вывод комментария в корзине -->

<form action="{{ cart_url }}" method="post">
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">
  {% for item in cart.items %}
  <div class="cart-item" data-item-block="{{ item.id }}">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
    <div class="item-comment">
      <!-- изменить комментарий в корзине -->
      <input type="text" name="cart[order_line_comments][{{ item.id }}]" value="{{ item.comment }}" />
      <!-- Просто вывести комментарий -->
      <span>
        {{ item.comment }}
      </span>
    </div>
  </div>
  {% endfor %}
  <input type="submit" value="Оформить">
</form>

 

<!-- Форма добавления товара с комментарием -->

<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>

item.id Идентификатор позиции. number

Идентификатор позиции.

Активно используется в атрибутах name полей формы корзины.
Например:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" />
<input type="text" name="cart[order_line_comments][{{ item.id }}]" value="{{ item.comment }}" />

Liquid
        
          

<form action="{{ cart_url }}" method="post">
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">
  {% for item in cart.items %}
  <div class="cart-item" data-item-block="{{ item.id }}">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
    {% if item.weight %}
      <div class="item-weight">
        Вес товара: {{ item.weight }} {{ item.unit }}
      </div>
      <div class="item-weight">
        Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
      </div>
    {% endif %}
    <div class="item-quantity">
      Изменить количество товаров позиции:
      <input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
    </div>
    <a href="{{ item.url }}" data-item-target="{{ item.id }}" class="item-remove js-item-remove">
      Удалить
    </a>
  </div>
  {% endfor %}
  <input type="submit" value="Оформить">
</form>

 

<!-- jQuery скрипт удаления -->
<script type="text/javascript">
  $(document).ready(function() {
    $('.js-item-remove').click(function(event) {
      event.preventDefault();
      var itemUrl = $(this).attr('href');
      var removeUrl = itemUrl + '.json';
      var _targetId = $(this).data('item-target');
      var $itemBlock = $('[data-item-block="'+ _targetId +'"]')
      $.ajax({
        url: itemUrl,
        type: 'POST',
        data: { _method: 'delete'}
      })
      .done(function() {
        console.log("Товар успешно удален");
        $itemBlock.remove();
      })
      .fail(function() {
        console.log("Что то пошло не так");
      })
    });
  });
</script>

item.product Товар позиции. object

Товар позиции.
Liquid
        
          

{% for item in cart.items %}
  <div class="cart-item">
    <div class="item-image">
      <a class="item-image-link" href="{{item.product.url}}?variant_id={{item.variant.id}}">
        <img  src="{{ item.product.first_image.medium_url }}">
      </a>
    </div>
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
  </div>
{% endfor %}

item.quantity Число товаров в позиции. number

Число товаров в позиции.
Liquid
        
          

<form action="{{ cart_url }}" method="post">
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">
  {% for item in cart.items %}
  <div class="cart-item" data-item-block="{{ item.id }}">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
    <div class="item-quantity">
      Изменить количество товаров позиции:
      <input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
    </div>
  </div>
  {% endfor %}
  <input type="submit" value="Оформить">
</form>

item.sale_price Цена одного товара позиции. number

Цена одного товара позиции.
Liquid
        
          

{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
  <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
    {{ item.product.title }}
  </a>
  <div class="item-price">
    {{ item.sale_price | money }} &times; {{ item.quantity }} = {{ item.total_price | money }}
  </div>
</div>
{% endfor %}

item.title Название позиции. string

Название позиции.

Если у товара позиции есть модификация, помимо имени товара, в скобках через слеш будет выведена информация о модификации.
Например: Футболка (Белая / XL)

Liquid
        
          

{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
  <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
    {{ item.title }}
  </a>
</div>
{% endfor %}

item.total_price Суммарная стоимость товаров позиции. number

Суммарная стоимость товаров позиции.
Liquid
        
          

{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
  <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
    {{ item.product.title }}
  </a>
  <div class="item-price">
    {{ item.sale_price | money }} &times; {{ item.quantity }} = {{ item.total_price | money }}
  </div>
</div>
{% endfor %}

item.weight Вес одного товара позиции. number

Вес одного товара позиции.
Liquid
        
          

<form action="{{ cart_url }}" method="post">
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">
  {% for item in cart.items %}
  <div class="cart-item" data-item-block="{{ item.id }}">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
    {% if item.weight %}
      <div class="item-weight">
        Вес товара: {{ item.weight }} {{ item.unit }}
      </div>
      <div class="item-weight">
        Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
      </div>
    {% endif %}
    <div class="item-quantity">
      Изменить количество товаров позиции:
      <input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
    </div>
  </div>
  {% endfor %}
  <input type="submit" value="Оформить">
</form>

item.total_weight Суммарный вес товаров позиции. number

Суммарный вес товаров позиции.
Liquid
        
          

<form action="{{ cart_url }}" method="post">
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">
  {% for item in cart.items %}
  <div class="cart-item" data-item-block="{{ item.id }}">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
    {% if item.weight %}
      <div class="item-weight">
        Вес товара: {{ item.weight }} {{ item.unit }}
      </div>
      <div class="item-weight">
        Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
      </div>
    {% endif %}
    <div class="item-quantity">
      Изменить количество товаров позиции:
      <input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
    </div>
  </div>
  {% endfor %}
  <input type="submit" value="Оформить">
</form>

item.url URL применяющийся для удаления товаров из корзины. string

URL применяющийся для удаления товаров из корзины.
Liquid
        
          

{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
  <div class="item-image">
    <a class="item-image-link" href="{{item.product.url}}?variant_id={{item.variant.id}}">
      <img  src="{{ item.product.first_image.medium_url }}">
    </a>
  </div>
  <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
    {{ item.product.title }}
  </a>
  <a href="{{ item.url }}" data-item-target="{{ item.id }}" class="item-remove js-item-remove">
    Удалить
  </a>
</div>
{% endfor %}

<!-- jQuery скрипт удаления -->
<script type="text/javascript">
  $(document).ready(function() {
    $('.js-item-remove').click(function(event) {
      event.preventDefault();
      var itemUrl = $(this).attr('href');
      var removeUrl = itemUrl + '.json';
      var _targetId = $(this).data('item-target');
      var $itemBlock = $('[data-item-block="'+ _targetId +'"]')
      $.ajax({
        url: itemUrl,
        type: 'POST',
        data: { _method: 'delete'}
      })
      .done(function() {
        console.log("Товар успешно удален");
        $itemBlock.remove();
      })
      .fail(function() {
        console.log("Что то пошло не так");
      })
    });
  });
</script>

item.variant Модификация товара позиции. object

Модификация товара позиции.
Liquid
        
          

{% for item in cart.items %}
  <div class="cart-item">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.title }}
    </a>
    {% if item.variant.option_values.size > 0 %}
      <div class="item-option_values">
        {% for option_value in item.variant.option_values %}
        <div class="item-option_name">
          <span>{{ option_value.option_name.title }}</span> - <span>{{ option_value.title }}</span>
        </div>
        {% endfor %}
      </div>
    {% endif %}
  </div>
{% endfor %}

item.unit Единица измерения товара. Доступные значения: "шт", "кг", "л; дм3", "м", "м2", "г", "т" string

Единица измерения товара. Доступные значения: "шт", "кг", "л; дм3", "м", "м2", "г", "т"
Liquid
        
          

<form action="{{ cart_url }}" method="post">
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">
  {% for item in cart.items %}
  <div class="cart-item" data-item-block="{{ item.id }}">
    <a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
      {{ item.product.title }}
    </a>
    {% if item.weight %}
      <div class="item-weight">
        Вес товара: {{ item.weight }} {{ item.unit }}
      </div>
      <div class="item-weight">
        Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
      </div>
    {% endif %}
    <div class="item-quantity">
      Изменить количество товаров позиции:
      <input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
    </div>
  </div>
  {% endfor %}
  <input type="submit" value="Оформить">
</form>

Linklists

Linklists

linklist.handle Пермалинк меню. string

Пермалинк меню.

Через пермалинк можно обращаться к массиву пуктов меню.

Liquid
        
          

<ul>
{% for link in linklists.main-menu.links %}
  {% assign current_class = '' %}
  {% if link.current? %}
    {% assign current_class = 'active' %}
  {% endif %}
  <li class="{{ current_class }}" >
    <a href="{{ link.url }}">{{ link.title }}</a> 
  </li>
{% endfor %}
</ul>

linklist.title Title меню string

Title меню
Liquid
        
          

Вывод имени меню с пермалинком main-menu
{{ linklists.main-menu.title }}

Blog

blog

blog.articles Массив статей array

Массив статей
Liquid
        
          

<h1>Список статей блога {{ blog.title }}:</h1>
<ul>
{% for article in blog.articles %}
  <li>
    <a href="{{ article.url }}">{{ article.title }}</a>
  </li>
{% endfor %}
</ul>

blog.articles_count Кол-во статей number

Кол-во статей

blog.comments_enabled? Разрешены ли комментарии? boolean

Разрешены ли комментарии?

blog.handle Пермалинк блога string

Пермалинк блога

blog.id Id блога. number

Id блога.

blog.moderated? Модерируются ли комментарии. boolean

Модерируются ли комментарии.

blog.title Заголовок блога string

Заголовок блога
Liquid
        
          

<!-- Если заголовки блогов ['Новости', 'Статьи'] -->
{% for blog in blogs %}
  {{ blog.title }}
{% endfor %}
#=> Новости
#=> Статьи

blog.url URL блога string

URL блога
Liquid
        
          

<h1>Список блогов:</h1>
<ul>
{% for blog in blogs %}
  <li>
    <a href="{{ blog.url }}">
      {{ blog.title }}
    </a>
  </li>
{% endfor %}
</ul>

blog.tags Облако тегов для блога array

Облако тегов для блога
Liquid
        
          

<div class="tagcloud-block">

    {% unless blog.tags == empty %}

    <div class="tagcloud">

      <div class="tagcloud-header">
        <h3>Теги:</h3>
      </div><!-- /.tagcloud-header -->

      <ul class="tags-list list-horizontal">
        {% for tag in blog.tags %}
        <li class="list-item">
          <a class="list-link {% if tag.current? %}is-active{% endif %}" href='{{ tag.url }}' title='{{ tag.title }}'>
            {{ tag.title }}
          </a>
        </li>
        {% endfor %}
      </ul>

    </div><!-- /.tags -->

    {% endunless %}
</div>

blogs Массив блогов сайта array

Массив блогов сайта
Liquid
        
          

<h1>Список блогов:</h1>
<ul>
{% for blog in blogs %}
  <li>
    <a href="{{ blog.url }}">
      {{ blog.title }}
    </a>
  </li>
{% endfor %}
</ul>

article in blog.articles

article.author Автор статьи. string

Автор статьи.

article.comments Массив расположенных в хронологическом порядке комментариев. array

Массив расположенных в хронологическом порядке комментариев.

article.comments_count Количество комментариев к статье. number

Количество комментариев к статье.

article.comments_enabled? Возвращает true, если комментарии разрешены boolean

Возвращает true, если комментарии разрешены

article.content Содержание статьи. <html>

Содержание статьи.

article.created_at Время публикации статьи. date

Время публикации статьи.

article.id Id статьи number

Id статьи

article.image Изображение статьи. object

Изображение статьи.

Возможные размеры:

48x48 small_url

100x100 thumb_url

160x160 compact_url

240x240 medium_url

480x480 large_url

original image original_url

Liquid
        
          

{{ article.image.large_url }}

article.moderated? Возвращает true, если модерация разрешена boolean

Возвращает true, если модерация разрешена

article.preview Анонс статьи <html>

Анонс статьи

article.title Заголовок статьи string

Заголовок статьи

article.url URL страницы статьи. string

URL страницы статьи.

article.related_products Товары к статье array

Товары к статье
Liquid
        
          

{% if article.related_products.size > 0 %}
  <div class="related_products">
    <div class="related_products-title">
      Товары к статье
    </div>
  </div>
  {% for product in article.related_products %}
    <div class="card">
      <a href="{{ product.url }}" class="card-preview">
        <img src="{{ product.first_image.medium_url }}" alt="" class="card-img">
        <span class="card-title">
          {{ product.title }}
        </span>
      </a>
    </div>
  {% endfor %}
{% endif %}

article.tags Массив тегов к статье array

Массив тегов к статье
Liquid
        
          

<div class="tags-block">
    {% unless article.tags == empty %}

    <div class="tags">

      <div class="tags-header">
        <h3>Теги:</h3>
      </div><!-- /.tags-header -->

      <ul class="tags-list list-horizontal">
        {% for tag in article.tags %}
        <li class="list-item">
          <a class="list-link" href='{{ tag.url }}' title='{{ tag.title }}'>
            {{ tag.title }} ({{ tag.articles_count }})
          </a>
        </li>
        {% endfor %}
      </ul>

    </div><!-- /.tags -->

    {% endunless %}
</div>

comment

comment.action_url URL используемый для отправки post запроса на создание комментария. string

URL используемый для отправки post запроса на создание комментария.

comment.author Имя автора комментария. string

Имя автора комментария.

comment.content Текст комментария. string

Текст комментария.

comment.created_at Дата создания комментария. date

Дата создания комментария.

comment.email Email автора комментария. string

Email автора комментария.

comment.errors Список имен неправильно заполненных полей. array

Список имен неправильно заполненных полей.

comment.id Id комментария. number

Id комментария.

Language

Language

languages Массив доступных языков array

Массив доступных языков
Liquid
        
          
{% for language in languages %}
  <a href="{{ language.switch_url }}"><img src="{{ language.icon_url }}" alt="{{ language.title }}" 
title="{{ language.title }}"></a> {% endfor %}

language.icon_url Иконка языка. string

Иконка языка.

language.locale Локаль языка. string

Локаль языка.

language.not_default? Проверка на то, что текущий язык не является основным языком интернет-магазина. Это нужно знать, например, в форме поиска, так как нельзя передавать на сервер параметром локаль основного языка. boolean

Проверка на то, что текущий язык не является основным языком интернет-магазина. Это нужно знать, например, в форме поиска, так как нельзя передавать на сервер параметром локаль основного языка.

language.switch_url URL переключения языка магазина на данный язык (используется в списке языков). string

URL переключения языка магазина на данный язык (используется в списке языков).

language.title Название языка. string

Название языка.

Page

page

page.content Содержание страницы. <html>

Содержание страницы.

page.id Id страницы. number

Id страницы.

page.title Название страницы. string

Название страницы.

page.url URL страницы string

URL страницы
Liquid
        
          

{% comment %}
  Делаем пермалинк страницы вручную
{% endcomment %}
{% assign page_handle = page.url | split: '/' | last %}
<div class="page-content page-{{ page_handle }}">
  {{ page.content }}
</div>

discount

discount

discount.amount Численная величина скидки в денежном эквиваленте. number

Численная величина скидки в денежном эквиваленте.

discount.description Описание скидки. string

Описание скидки.

discount.percent number

Процент скидки, если задана в процентах.

discount.type Тип скидки (деньги или процент). string

Тип скидки (деньги или процент).

order

order

order.items Массив позиций заказа, переменная доступна на странице успешного оформления заказа. array

Массив позиций заказа, переменная доступна на странице успешного оформления заказа.
Liquid
        
          

<div class="order">
  {% for item in order.items %}
  <div class="item">
    <div class="item-title">
      {{ item.title }}
    </div>
    {% if item.sku %}
    <div class="item-title">
      Артикул: {{ item.sku }}
    </div>
    {% endif %}
    <div class="item-quantity">
      {{item.quantity}}
    </div>
    <div class="item-total_price">
      {{ item.total_price | money }}
    </div>
  </div>
  {% endfor %}
</div>

order.client Данные клиента (объект) order.client.name - имя клиента. order.client.surname - фамилия клиента. order.client.middlename - отчество клиента. order.client.phone - телефон клиента. order.client.email - email клиента. object

Данные клиента (объект) order.client.name - имя клиента. order.client.surname - фамилия клиента. order.client.middlename - отчество клиента. order.client.phone - телефон клиента. order.client.email - email клиента.

order.comment Комментарий к заказу. string

Комментарий к заказу.

order.creation_date Дата создания заказа. date

Дата создания заказа.

order.currency Валюта заказа. string

Валюта заказа.

order.delivery_date Дата доставки. date

Дата доставки.

order.delivery_description Описание способа доставки. string

Описание способа доставки.

order.delivery_price Стоимость доставки. number

Стоимость доставки.

order.delivery_price.base стоимость доставки без наценки на способ оплаты. number

стоимость доставки без наценки на способ оплаты.

order.delivery_time Интервал времени доставки, например, "с 10 до 18". string

Интервал времени доставки, например, "с 10 до 18".
Liquid
        
          

{% if order.delivery_time %}
  Доставка: {{ order.delivery_time }} {{ order.delivery_date }}
{% endif %}

order.fields Поля заказа order.all_fields - массив кастомных полей заказа order.fields - массив кастомных полей заказа выводимых в корзине order.client.all_fields - массив полей клиента у заказа, включая скрытые поля клиента order.client.client_fields - массив полей клиента у заказа( не включает скрытые поля ) order.shipping_address.all_fields - массив полей адреса у заказа, включая скрытые для клиента поля адреса order.shipping_address.client_fields - массив полей адреса у заказа ( не включает скрытые поля ) order.result_fields - массив полей у заказа показываемые клиенту после оформления заказа object

Поля заказа order.all_fields - массив кастомных полей заказа order.fields - массив кастомных полей заказа выводимых в корзине order.client.all_fields - массив полей клиента у заказа, включая скрытые поля клиента order.client.client_fields - массив полей клиента у заказа( не включает скрытые поля ) order.shipping_address.all_fields - массив полей адреса у заказа, включая скрытые для клиента поля адреса order.shipping_address.client_fields - массив полей адреса у заказа ( не включает скрытые поля ) order.result_fields - массив полей у заказа показываемые клиенту после оформления заказа

order.id Идентификатор заказа (используется для ссылки на страницу заказа в бекофисе). number

Идентификатор заказа (используется для ссылки на страницу заказа в бекофисе).

order.key Ключ, по которому выводится заказ - используется в url. string

Ключ, по которому выводится заказ - используется в url.

order.margin Наценка на способ оплаты. number

Наценка на способ оплаты.

order.number Номер заказа. number

Номер заказа.

order.payment_description Описание способа оплаты. string

Описание способа оплаты.

order.payment_title Название способа оплаты. string

Название способа оплаты.

order.shipping_address Данные адреса доставки (объект). order.shipping_address.name - имя адресата.order.shipping_address.phone - телефон адресата. order.shipping_address.delivery_address - адрес доставки. order.shipping_address.country_name - страна. order.shipping_address.state - регион. order.shipping_address.city - город. order.shipping_address.address - адрес. order.shipping_address.zip - индекс. object

Данные адреса доставки (объект). order.shipping_address.name - имя адресата.order.shipping_address.phone - телефон адресата. order.shipping_address.delivery_address - адрес доставки. order.shipping_address.country_name - страна. order.shipping_address.state - регион. order.shipping_address.city - город. order.shipping_address.address - адрес. order.shipping_address.zip - индекс.

order.paid? Заказ оплачен? boolean

Заказ оплачен?
Liquid
        
          

{% if order.paid? %}
  оплачен
{% else %}
  не оплачен
{% endif %}

order.payment_needed? Необходима оплата? boolean

Необходима оплата?
Liquid
        
          

{% if order.payment_needed? %}
  {% if order.paid_with_bank_bill? %}
    <a href="{{ order.pay_url }}">Перейти к оплате (распечатать квитанцию)</a>
  {% else %}
    <a href="{{ order.pay_url }}">Перейти к оплате</a>
  {% endif %}
{% endif %}

order.paid_with_bank_bill? Оплачен через банк? boolean

Оплачен через банк?
Liquid
        
          

{% if order.payment_needed? %}
  {% if order.paid_with_bank_bill? %}
    <a href="{{ order.pay_url }}">Перейти к оплате (распечатать квитанцию)</a>
  {% else %}
    <a href="{{ order.pay_url }}">Перейти к оплате</a>
  {% endif %}
{% endif %}

order.pay_url Ссылка на страницу оплаты заказа string

Ссылка на страницу оплаты заказа
Liquid
        
          

{% if order.payment_needed? %}
  {% if order.paid_with_bank_bill? %}
    <a href="{{ order.pay_url }}">Перейти к оплате (распечатать квитанцию)</a>
  {% else %}
    <a href="{{ order.pay_url }}">Перейти к оплате</a>
  {% endif %}
{% endif %}

order.customer_status Пользовательский статус string

Пользовательский статус

Статусы поумолчанию

В бэк-офисе На сайте
Новый (new) Принят
В обработке (accepted) В обработке
Согласован (approved) Согласован
Отгружен (dispatched) В доставке
Доставлен (delivered) Выполнен
Отменен (declined) Отменен
Возврат (returned) Возврат
Liquid
        
          

{% capture span_class %}{% if order.fulfillment_status == 'declined' or order.fulfillment_status == 'returned' %}red{% else %}green{% endif %}{% endcapture %}
<span class='{{ span_class }}'>{{ order.customer_status }}</span>

order.fulfillment_status статус выполнения string

статус выполнения

Статусы поумолчанию

В бэк-офисе На сайте
Новый (new) Принят
В обработке (accepted) В обработке
Согласован (approved) Согласован
Отгружен (dispatched) В доставке
Доставлен (delivered) Выполнен
Отменен (declined) Отменен
Возврат (returned) Возврат
Liquid
        
          

{% capture span_class %}{% if order.fulfillment_status == 'declined' or order.fulfillment_status == 'returned' %}red{% else %}green{% endif %}{% endcapture %}
<span class='{{ span_class }}'>{{ order.customer_status }}</span>

order.custom_status_title Пользовательский статус string

Пользовательский статус

order.total_price Сумма заказа с учетом скидки number

Сумма заказа с учетом скидки

order.items_price Сумма позиций заказа без учета скидки number

Сумма позиций заказа без учета скидки

field

field.description Описание поля string

Описание поля

field.file_name Имя залитого файла string

Имя залитого файла

field.for_buyer? Показывается ли клиенту boolean

Показывается ли клиенту

field.is_file? Является ли поле, полем для файла boolean

Является ли поле, полем для файла

field.obligatory? Обязательное ли поле boolean

Обязательное ли поле

field.office_title Название поля в бэк офисе string

Название поля в бэк офисе

field.title Название поля для клиента string

Название поля для клиента

field.type Тип поля file_field - загрузка файла text_area - текстовое многострочное поле select - выпадающий список checkbox - чекбокс text_field -текстовое поле obligatory_text_field - обязательно текстовое поле(системный тип для поля "Контактное лицо") system_text_field - текстовые поля первоначально введенные в бэк офис. system_checkbox - чекбокс первоначально введенный в бэк офис(первоначально - Подписка) phone - телефон country - страна kladr - Комплексная форма для ввода адреса. string

Тип поля file_field - загрузка файла text_area - текстовое многострочное поле select - выпадающий список checkbox - чекбокс text_field -текстовое поле obligatory_text_field - обязательно текстовое поле(системный тип для поля "Контактное лицо") system_text_field - текстовые поля первоначально введенные в бэк офис. system_checkbox - чекбокс первоначально введенный в бэк офис(первоначально - Подписка) phone - телефон country - страна kladr - Комплексная форма для ввода адреса.

field.value Значение поля string

Значение поля

field.input Сам input поля для вывода в шаблон корзины <html>

Сам input поля для вывода в шаблон корзины

client

client_group

client_group.title Имя группы к которой принадлежит залогиненый клиент. Список групп можно посмотреть в бэк-офисе в разделе клиенты string

Имя группы к которой принадлежит залогиненый клиент.
Список групп можно посмотреть в бэк-офисе в разделе клиенты
Liquid
        
          

{% if client_group.title == 'Оптовики' %}
  Контент для пользователей группы "Оптовики"
{% endif %}

client_group.id id группы к которой принадлежит залогиненый клиент. number

id группы к которой принадлежит залогиненый клиент.

Id группы можно узнать только выведя эту переменную в код и войти под пользователем включенным в нужную группу.
Если нужна проверка на вхождение клиента в определенную группу, используйте client_group.title

client_group.discount скидка группы к которой принадлежит залогиненый клиент number

скидка группы к которой принадлежит залогиненый клиент

client_group.discount_description описание скидки группы к которой принадлежит залогиненый клиент string

описание скидки группы к которой принадлежит залогиненый клиент

client

client По клиенту нельзя выводить его персональную информацию, только факт того, что клиент залогинен boolean

По клиенту нельзя выводить его персональную информацию, только факт того, что клиент залогинен
Liquid
        
          

{% if client %}

Информация для клиентов

{% endif %}

Paginate

Paginate

paginate.current_page Возвращает номер текущей страницы. number

Возвращает номер текущей страницы.

paginate.current_offset Возвращает общее количество элементов, которые находятся на страницах, предшествующих текущему. Например, если вы постраничного на 5 и на третьей странице, paginate.current_offset вернется 10. number

Возвращает общее количество элементов, которые находятся на страницах, предшествующих текущему. Например, если вы постраничного на 5 и на третьей странице, paginate.current_offset вернется 10.

paginate.items Возвращает общее количество элементов, которые будут пронумерованы. Например, если вы постраничного коллекцию из 99 продуктов, paginate.items возвратит 99. number

Возвращает общее количество элементов, которые будут пронумерованы. Например, если вы постраничного коллекцию из 99 продуктов, paginate.items возвратит 99.

paginate.parts array

Возвращает массив всех частей пагинации.

Liquid
        
          

{% for part in paginate.parts %}
  {% if part.is_link %}
    <li class="pagination-page">
      <a href="{{ part.url }}"
          class="pagination-node pagination-node--link"
      >
        {{ part.title }}
      </a>
    </li>
  {% else %}
    <li class="pagination-page">
      {% if part.title == paginate['current_page'] %}
        <span class="pagination-node pagination-node--block pagination-node--current">
          {{ part.title }}
        </span>
      {% else %}
        <span class="pagination-node--block">
          {{ part.title }}
        </span>
      {% endif %}
    </li>
  {% endif %}
{% endfor %}

paginate.previous.url string

Возвращает ссылку на предыдущую страницу пагинации.

paginate.next.url string

Возвращает ссылку на следущую страницу пагинации.

paginate.page_size string

Возвращает количество элементов, отображаемых на одной странице.

paginate.pages Возвращает количество страниц, созданных пагинацией. number

Возвращает количество страниц, созданных пагинацией.

block

block_lists

block_lists Массив панелей блоков. Обращение к конкретной панели можно сделать через идентификатор панели, например - {{ block_lists.footer.blocks }} array

Массив панелей блоков.
Обращение к конкретной панели можно сделать через идентификатор панели, например - {{ block_lists.footer.blocks }}

У block_lists.handle есть два свойства:

  • id - это числовой id панели
  • blocks - это массив блоков панели
Liquid
        
          

{% for block_list in block_lists %}
  Id панели блоков: {{ block_list.id }} <br>
{% endfor %}

{% for block_list in block_lists %}
  Id панели блоков: {{ block_list.id }} <br>
  {% for block in block_list.blocks %}
    Имя блока: {{ block.title }}
  {% endfor %}
{% endfor %}

Обращение к панели блоков через идентификатор:
{% for block in block_lists.handle.blocks %}
  Имя блока: {{ block.title }}
  Контент блока: {{ block.content }}
{% endfor %}

block_lists.handle.id Идентификатор панели блоков handle. number

Идентификатор панели блоков handle.

block_lists.handle.blocks Выбор блоков конкретной панели array

Выбор блоков конкретной панели
Liquid
        
          

{% for block in block_lists.handle.blocks %} 
<div class="block"> 
  <div>
    {{ block.title }}
  </div>
  <div>
    {{ block.content }} 
  </div>
</div> 
{% endfor %}

block_lists.with_template['handle_template'].handle_block_lists.blocks Доступ к панели блоков с привязанным шаблоном блоков object

Доступ к панели блоков с привязанным шаблоном блоков

block_lists.with_template['handle_template'].handle_block_lists.blocks

handle_template — пермалинк шаблона блока

handle_block_lists — пермалинк панели блоков

 

Для доступа к панелям блоков без типа работает старый синтаксис:
block_lists.slider.blocks

При таком способе обращения к панелям блоков сначала ищется панель с названием slider среди панелей без шаблона и только потом среди остальных

block_lists.handle.name Имя панели блоков. string

Имя панели блоков.

block

block.id Идентификатор блока (числовой). number

Идентификатор блока (числовой).

block.handle Идентификатор блока (не числовой). string

Идентификатор блока (не числовой).

block.title Заголовок блока. string

Заголовок блока.

block.content Содержание блока. <html>

Содержание блока.

blocks.name Выбор конкретного блока, например с рекламой (advertising). object

Выбор конкретного блока, например с рекламой (advertising).
Liquid
        
          

{{blocks.advertising.title}}
{{blocks.advertising.content}}

blocks.with_template['handle_template'].handle_block Доступ к блоку который привязан к типу блока object

Доступ к блоку который привязан к типу блока

blocks.with_template['handle_template'].handle_block

handle_template - пермалинк шаблона блока

handle_block - пермалинк блока

 

Для доступа к блокам так же работает старый синтаксис:

blocks.handle.content

Но если блоков с одинаковым permalink больше одного, то выберется последний созданый

account

account

account.phone Телефон из настроек аккаунта. string

Телефон из настроек аккаунта.

account.title Название интернет-магазина из настроек аккаунта. string

Название интернет-магазина из настроек аккаунта.

account.email e-mail магазина string

e-mail магазина

account.url url, используемый для перехода в бекофис из письма. string

url, используемый для перехода в бекофис из письма.

account.icq Номер ICQ из настроек аккаунта. string

Номер ICQ из настроек аккаунта.

account.reviews_enabled? флаг указывающий включены отзывы на товар или нет boolean

флаг указывающий включены отзывы на товар или нет

account.reviews_moderated? флаг указывающий включена ли модерация отзывов на товары или нет boolean

флаг указывающий включена ли модерация отзывов на товары или нет

account.enable_clients? флаг указывающий доступен ли на текущем тарифе личный кабинет покупателя boolean

флаг указывающий доступен ли на текущем тарифе личный кабинет покупателя

account.delivery_variants массив всех способов доставки object

массив всех способов доставки

account.delivery_variants.id - id способа доставки
account.delivery_variants.title - название способа доставки
account.delivery_variants.price - стоимость способа доставки

account.payment_gateways массив всех способов оплаты object

массив всех способов оплаты

account.payment_gateways.id - id способа оплаты
account.payment_gateways.title - название способа оплаты

account.enable_comparison? Вклучено ли сравнение? boolean

Вклучено ли сравнение?

Заказ в один клик

account.quick_checkout.enabled включен ли заказ в один клик boolean

включен ли заказ в один клик

account.quick_checkout.auto_activate заказ в один клик в автоматическом режиме boolean

заказ в один клик в автоматическом режиме

account.quick_checkout.dialog_title заголовок диалогового окна string

заголовок диалогового окна

account.quick_checkout.button_title название кнопки подтвердить заказ string

название кнопки подтвердить заказ

account.quick_checkout.success_notification сообщение об успешном оформлении заказа string

сообщение об успешном оформлении заказа

helpers

forloop

forloop.length количество элементов в массиве number

количество элементов в массиве

forloop.index номер текущей итерации number

номер текущей итерации

forloop.index0 номер текущей итерации (считая от нуля) number

номер текущей итерации (считая от нуля)

forloop.rindex сколько элементов осталось number

сколько элементов осталось

forloop.rindex0 сколько элементов осталось (считая от нуля) number

сколько элементов осталось (считая от нуля)

forloop.first первая итерация? boolean

первая итерация?

forloop.last последняя итерация? boolean

последняя итерация?