Объекты Liquid

Материал из CartEnergy
Перейти к: навигация, поиск


Содержание

Специальные объекты

Collection

Список объектов.

Атрибуты:

  • first - первая запись в списке
  • last - последняя запись в списке
  • size - количество записей в списке
  • empty? - признак пустоты списка
  • uniq - убирает все дубликаты
  • compact - убирает все nil-ы
  • flatten - убирает дополнительные измерения
  • ['<индекс>'] - элемент списка по индексу (начиная с нуля), например product.variants[5]
  • .<индекс> - (аналогично []), например product.variants.5


Maintenance

Информация о профилактических работах.

Атрибуты:

  • active_from - время начала профилактических работ
  • active_to - время окончания профилактических работ
  • active? - признак проведения профилактических работ в данный момент


Object

Базовый тип для всех объектов (Его свойства наследуются всеми объектами, начиная с Account).

Атрибуты:

  • id - идентификатор объекта
  • model_name - название модели объекта.
  • type_name - название типа объекта.
  • created_at - дата/время создания
  • updated_at - дата/время обновления

Некоторые объекты (например, свойства - Property) могут иметь несколько подтипов (например, Строка, Число или Список). Для таких объектов поле model_name содержит название базового типа объекта (например, property), а поле type_name, содержит название подтипа (например, text, number или option_choice).


Pagination

Разбиение выборки на страницы

Атрибуты:

  • per_page - число записей на странице
  • total_entries - общее количество записей в выборке
  • total_pages - общее количество страниц
  • ['<номер страницы>'] - номер страницы (начиная с 1), например pagination['1']
  • .<номер страницы> - (аналогично []), например pagination.1

Каждая страница - это модифицированный объект Collection.

Атрибуты отдельной страницы (добавляются к стандартным атрибутам коллекции):

  • per_page - число записей на странице
  • offset - номер первой записи страницы (начинаая с нуля)
  • total_entries - общее количество записей в выборке
  • total_pages - общее количество страниц
  • current_page_number - номер текущей страницы (начиная с единицы)
  • next_page_number - номер следующей страницы, nil если эта страница последняя
  • previous_page_number - номер предыдущей страницы, nil если эта страница первая
  • first_page? - признак того, что страница первая
  • last_page? - признак того, что страница последняя
  • page_numbers_around - массив из номеров страниц вокруг текущей (определяется настройками генератора страниц)


Request

Представление HTTP запроса.

Атрибуты:

  • ip - IP-адрес клиента
  • url - текущий url (например, http://myshop.ru/category/101?order=price)
  • uri - псевдоним для url (возвращает тоже, что и url)
  • host - текущий host (например, myshop.ru)
  • path - текущий путь без хоста и параметров (например, /category/101)
  • fullpath - текущий путь без хоста (например, /category/101?order=price)
  • query_string - текущий путь без хоста (например, order=price)
  • referer - uri страницы, с которой клиент перешел на данную
  • referrer - псевдоним для referer (возвращает тоже, что и referer)
  • user_agent - тип браузера клиента
  • params - список параметров запроса, допустим поиск по имени параметра request.params['per_page'] или request.params.per_page


Account

Учетная запись.

Атрибуты:

  • active? - признак активности учетной записи


Action

Действие.

Атрибуты:

  • name - внутреннее имя
  • layout - шаблон разметки страницы (типа Template)
  • template - шаблон страницы (типа Template)
  • path - коллекция, представляющая собой путь к данной странице от корневого элемента (breadcrumbs)
  • title - стандартное название действия


Asset

Ресурс (документ, изображение или другой файл).

Атрибуты:

  • uri - относительная ссылка на файл
  • content_type - тип содержимого файла
  • size - размер файла в байтах
  • description - описание файла

Имеет подтип product_image, содержащий информацию об изображении товара.

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

Например, если существует преобразование с названием small, то вызов будет выглядеть asset.small_image_uri.


Cart

Корзина.

Атрибуты:

  • empty? - признак того, что корзина не содержит товаров
  • items - список позиций (типа CartItem)
  • qty - общее количество единиц товара в корзине
  • amount - общая стоимость позиций (типа Price)


CartItem

Позиция корзины.

Атрибуты:

  • product_variant - вариант товара (типа ProductVariant)
  • qty - количество единиц данной позиции
  • amount - общая стоимость товаров данной позиции (типа Price)


Category

Категория товаров.

Атрибуты:

  • active? - признак активности
  • view - представление категории (типа View)
  • parent - категория верхнего уровня (типа Category)
  • children - список категорий следующего уровня (типа Category)
  • path - список всех категорий пути до данной (типа Category)


Channel

Канал сбыта.

Атрибуты:

  • name - внутреннее имя
  • active? - признак активности
  • main_locale_name - название основного языка
  • categories - список категорий канала (типа Category)
  • products - список товаров канала (типа Product)
  • currencies - список валют (типа Currency)
  • locales - список языков (типа Locale)
  • customer_regions - список регионов клиента (типа Region)
  • delivery_regions - список регионов доставки (типа Region)
  • payment_methods - список способов оплаты (типа PaymentMethod)
  • delivery_methods - список способов доставки (типа DeliveryMethod)
  • feeds - список лент (типа Feed), допускает поиск по имени
  • pages - список страниц (типа Page)

Имеет следующие подтипы:

  • website - Это разновидность канала, представляющая обычный вебсайт (дополнительный аттрибут main_host_name - название основного домена для сайта).

Следующие поля, могут использоваться для фильтрации, с помощью тэга select:

  • categories.id, categories.active?, categories.parent(_id), categories.product(s, _ids) - фильтрация категорий по идентификатору, признаку активности, предку, вхождению товара;
  • products.id, products.active?, products.categor(ies, _ids), products.search, products.properties.name - фильтрация товаров по идентификатору, признаку активности, категории, ключевым словам, свойствам;
  • customer_regions.id, customer_regions.root?, customer_regions.leaf?, customer_regions.parent - фильтрация регионов по идентификатору, признаку верхнего уровня, признаку нижнего уровня, предку;
  • delivery_regions... - аналогично customer_regions;
  • payment_methods.id, payment_methods.active?, payment_methods.currenc(ies, _ids), payment_methods.delivery_method(s,_ids), payment_methods.region(s,_id) - фильтрация способов оплаты по идентификатору, признаку активности, валюте, связанному способу доставки, связанному региону;
  • delivery_methods.id, delivery_methods.active?, delivery_methods.region(s,_ids) - фильтрация способов доставки по идентификатору, признаку активности, связанному региону.
  • pages.id, pages.active?, pages.feed(s,_ids) - фильтрация способов страниц по идентификатору, признаку активности, связанной ленте.


Currency

Валюта.

Атрибуты:

  • code - трехзначный код валюты, например, USD, EUR, BYR, RUB
  • precision - число цифр после запятой при отображении значений в данной валюте
  • unit - сокращенное обозначение валюты, например, $ или р.
  • title - название валюты, например Доллар США или Белорусский рубль


Customer

Клиент.

Атрибуты:

  • name - имя клиента
  • email - адрес электронной почты клиента
  • region - регион клиента(типа Region)
  • orders - список заказов клиента(типа Order)
  • address_book - список сохраненных данных (типа AddressBookRecord)

Следующие поля, могут использоваться для фильтрации, с помощью тэга select:

  • orders.id - фильтрация по идентификатору заказа
  • address_book.id, address_book.region(_id), address_book.properties - фильтрация записей адресной книги по идентификатору, региону, набору свойств


AddressBookRecord

Данные в адресной книге.

Атрибуты:

  • region - регион (типа Region)
  • properties - список свойств (типа Property)


DeliveryMethod

Способ доставки.

Атрибуты:

  • active? - признак активности способа
  • title - название способа
  • description - описание способа
  • properties - список свойств (типа Property)


Error

Объект с информацией об ошибке. Ошибка определяется полем type_name.

  • title - стандартный текст сообщения об ошибке


Feed

Лента (новости, блог)

Атрибуты:

  • name - внутреннее имя
  • view - представление ленты (типа View)


Locale

Язык

Атрибуты:

  • name - внутреннее имя
  • title - название языка


Menu

Меню.

Атрибуты:

  • name - внутреннее имя
  • items - список пунктов меню верхнего уровня (типа MenuItem)


MenuItem

Элемент меню.

Атрибуты:

  • title - название пункта меню
  • parent - пункт меню верхнего уровня (типа MenuItem)
  • children - список пунктов меню следующего уровня (типа MenuItem)
  • target - объект, ассоциированный с пунктом меню (тип, зависит от типа пункта меню)

Пример вывода иерархии меню. В данном случае это сниппет (Snippet) с именем menu. Как основной параметр получает список элементов.

<!-- Сниппет: menu -->
<ul>
  {% for item in menu %}
    <li>
      <!-- Вывод элемента меню -->
      <div class="{% if path.last == item.target %}selected{% endif %}">
        <a href="{{ item | uri }}">{{ item.title }}</a>
      </div>		
      <!-- Вывод подменю, если они есть -->
      {% unless item.children == empty %}
        {% include 'menu' with item.children %}
      {% endunless %}
    </li>
  {% endfor %}
</ul>

Вывод меню, с помощью данного сниппета:

{% include menu with somemenu.items %}


OrderAmountAdjustment

Информация о скидке или надбавке для заказа

Атрибуты:

  • title - краткое описание
  • value - значение скидки(-)/надбавки(+)


Order

Информация о заказе

Атрибуты:

  • state - состояние заказа (может быть new, processing, complete, canceled)
  • currency_code - код валюты заказа
  • delivery_method_title - название способа доставки
  • delivery_method_properties - набор свойств способа доставки
  • payment_method_title - название способа оплаты
  • payment_method_properties - набор свойств способа оплаты
  • payment_method_uri - ссылка для оплаты (если возмежна online оплата)
  • delivery_region_title - название региона доставки
  • customer_region_title - название региона клиента
  • customer_name - имя клиента
  • customer_email - адрес электронной почты клиента
  • cart_amount - стоимость товаров в корзине
  • delivery_amount - стоимость доставки
  • discount_amount - сумма скидок заказа
  • total_amount - общая стоимость заказа
  • total_precision - точность расчета общей стоимости заказа
  • items - список позиций заказа (типа OrderItem)
  • delivery_amount_adjustments - список скидок и надбавок для доставки (типа OrderAmountAdjustment)
  • discount_amount_adjustments - список скидок и надбавок для заказа (типа OrderAmountAdjustment)
  • statuses - список публичных статусов (типа OrderStatus)
  • assets - список файлов, связанных с заказом (типа Asset)


OrderItem

Информация о позиции заказа

Атрибуты:

  • sku - актикул позиции
  • qty - количество
  • qty_unit_short - краткое название единицы измерения количества
  • product_title - название товара
  • product_variant_title - название варианта товара
  • product_variant_options - название опций варианта товара
  • regular_price - обычная цена позиции
  • current_price - цена позиции на момент заказа


OrderStatus

Статус заказа

Атрибуты:

  • state - состояние заказа на момент добавления статуса (см. поле state у заказа Order)
  • comment - коментарий к статусу


Page

Страницы/статья

Атрибуты:

  • active? - признак активности
  • view - представление страницы (типа View)


Panel

Панель.

Атрибуты:

  • name - внутреннее имя
  • elements - список элементов панели (возможные типы элементов Menu, Snippet, PanelContent)

PanelContent

Элемент панели, ассоциированный с содержимым панели. Это значит, что вместо него можно вставить содержимое панели. Этот элемент имеет тип panel_content.

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

{% for element in panel.elements %}
  {% case element.model_name %}
    {% when 'menu' %}
      <!-- отрисовка меню -->
    {% when 'snippet' %}
      {{ element.content }}
    {% when 'panel_content' %}
      <!-- контент панели -->
  {% endcase %}
{% endfor%}


PaymentMethod

Способ оплаты.

Атрибуты:

  • active? - признак активности способа
  • title - название способа
  • description - описание способа
  • properties - список свойств (типа Property)


Price

Цена.

Атрибуты:

  • current - текущая цена
  • regular - обычная цена
  • special? - признак, что текущая цена - специальная (дополнительная скидка и т.п.)


Product

Товар.

Атрибуты:

  • active? - признок доступности товара
  • qty_unit - единица измерения для количества (типа Unit)
  • price_range? - признак наличия нескольких цен
  • min_price - минимальная цена товара (типа Price)
  • max_price - максимальная цена товара (типа Price)
  • images - список изображений товара (типа Asset)
  • properties - полный список свойств товара (типа Property)
  • variants - список вариантов товара (типа ProductVariant)
  • view - представление товара (типа View)

Следующие поля, могут использоваться для фильтрации, с помощью тэга select:

  • variants.available?, variants.available_for_booking?- фильтрация вариантов по признаку доступности на складе и доступности для заказа;


ProductVariant

Вариант товара.

Атрибуты:

  • sku - артикул
  • title - название варианта товара
  • available? - признак доступности варианта товара на складе
  • available_for_booking? - признак возможности заказа товара
  • qty - остаток варианта товара на складе
  • weight - вес варианта товара
  • price - цена варианта товара (типа Price)
  • properties - полный список свойств варианта товара (типа Property)
  • product - товар (типа Product)


Property

Свойство.

Атрибуты:

  • name - внутреннее имя
  • title - название свойства
  • description - описание свойства
  • required? - признак обязательности свойства для заполнения
  • variable? - признак, имеющий смысл только для свойств товаров, означающий что свойство изменяется вариантами
  • input_data_type - тип входных данных (может быть text, boolean, list)
  • unit - единица измерения для свойства (типа Unit)
  • values - значения свойства для соответствующего объекта (типа PropertyValue)

Также определено несколько подтипов:

  • blank - пустое свойство (как правило разделитель)
  • boolean - свойство типа да/нет (истина/ложь и т.п.)
  • number - числовое свойство
  • text_data - простые, нелокализованные текстовые данные (не путайте с типом text, т.к. поле текст локализовано)
  • text - текстовое свойство (имеет дополнительный атрибут multiline?, как признак того, что свойство многострочное)
  • option_choice - список (имеет атрибуты multiple? - допускаются множественные значения и options - список опций типа PropertyOption)


PropertyOption

Опция.

Атрибуты:

  • title - название опции
  • data - данные опции


PropertyValue

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

Атрибуты:

  • value - значение (тип, зависит от типа свойства)
  • title - значение свойства в удобочитаемом виде


Region

Регион.

Атрибуты:

  • title - название пункта меню
  • parent - регион верхнего уровня (типа Region)
  • children - список регионов следующего уровня (типа Region)
  • path - список всех регионов пути до данного (типа Region)


Snippet

Снипет.

Атрибуты:

  • name - внутреннее имя
  • content - содержимое сниппета


Template

Шаблон.

Атрибуты:

  • name - внутреннее имя


Theme

Тема.

Атрибуты:

  • name - внутреннее имя
  • settings - настройки темы типа ключ-значение
  • panels - список панелей темы (типа Panel)
  • assets - список ресурсов темы (типа Asset), допускает поиск по имени


Unit

Единица измерения

Атрибуты:

  • title - название
  • short - короткое название (например, кг. или м.)


View

Представление объекта.

Атрибуты:

  • url_key - ключ для формирования ссылки
  • title - название объекта
  • heading - название объекта в заголовке (для элемента h1 на странице)
  • description - описание объекта
  • text - текст объекта
  • meta_title - заголовок в секции head
  • meta_keywords - ключевые слова в секции head
  • meta_description - описание в секции head
  • panel - панель(типа Panel) для центральной колонки представления