Справочник доступных Twig-функций Аналогично фильтрам в шаблонах доступна большая часть стандартных функций, а также некоторые специальные функции. Общий перечень доступных функций приведен в статье. false W3sidGl0bGUiOiLQkNCy0YLQvtC80LDRgtC40LfQsNGG0LjRjyIsInVybCI6Ii9kZXZlbG9wZXJzL2F1dG9tYXRpb24vIn0seyJ0aXRsZSI6IlR3aWct0YjQsNCx0LvQvtC90YsiLCJ1cmwiOiIvZGV2ZWxvcGVycy9hdXRvbWF0aW9uL3R3aWcvIn1d Автоматизация /developers/automation/ ["developers","Автоматизация"] ["developers","Автоматизация","Twig-шаблоны"] developers

Справочник доступных Twig-функций

Аналогично фильтрам в шаблонах доступна большая часть стандартных функций, а также некоторые специальные функции. Общий перечень доступных функций приведен в статье.

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

{% for i in range(0, 3) %}
    {{ i }},
{% endfor %}

Аналогично фильтрам в шаблонах доступна большая часть стандартных функций, а также некоторые специальные функции. Общий перечень доступных функций приведен ниже.

НазваниеОписание
attributeФункция используется для доступа к "динамическим" свойствам объекта
cycleФункция cycle обходит массив значений
randomФункция позволяет получить случайное значение
rangeВозвращает арифметическую прогрессию целых значений для заданного диапазона
base_currency_codeВыводит код базовой валюты
price_symbolВыводит обозначение базовой валюты
currency_patternВыводит наименование валюты по коду
currency_numeric_codeВыводит числовой код валюты по ISO 4217
preview_image_tagГенерирует тег <img/> для изображения товара заданного размера
{{ preview_image_tag(op.offer.imageUrl, '100x100') }} # Превью изображения товара 100 на 100. При необходимости обрежется.
{{ preview_image_tag(op.offer.imageUrl, '100x-', { alt: op.offer.displayName }) }} # Превью изображения будет шириной 100, а высота будет пропорционально расчитана.
minНаходит наименьшее значение в наборе или массиве чисел
maxНаходит наибольшее значение в наборе или массиве чисел
crm_settings_getПозволяет получить значение определенной настройки в системе
products_by_idsDEPRECATED Используйте entities_by_ids
new_productsВозвращает массив товаров с пометкой "Новинка".
Принимает параметры:
groups - группы, из которых выбираются товары
count - максимальное кол-во выбираемых товаров (по умолчанию 20)
properties - фильтр по свойствам товара
# Получаем товары с пометкой "Новинка" и размером "XL"
{% set products = new_products(properties={size: 'XL'}) %}
best_selling_productsВозвращает массив самых продаваемых товаров
Принимает параметры:
groups - группы, из которых выбираются товары
count - максимальное кол-во выбираемых товаров (по умолчанию 20)
exclude - товары, которые будут исключены из выборки
from - фильтр по дате
to - фильтр по дате
margin - минимальный порог маржи в абсолютных или относительных значениях, товары с маржой ниже порога не попадают в выборку
properties - фильтр по свойствам товара
customer - фильтр по клиенту
# Получаем пять самых продаваемых товаров за первый квартал с маржой выше 10%
{% set products = best_selling_products(from='2016-01-01', to='2016-03-31', count=5, margin='10%') %}
most_visited_productsВозвращает массив самых просматриваемых товаров
Принимает параметры:
groups - группы, из которых выбираются товары
count - максимальное кол-во выбираемых товаров (по умолчанию 20)
exclude - товары, которые будут исключены из выборки
from - фильтр по дате
to - фильтр по дате
margin - минимальный порог маржи в абсолютных или относительных значениях, товары с маржой ниже порога не попадают в выборку
properties - фильтр по свойствам товара
customer - фильтр по клиенту
# Получаем пять самых просматриваемых товаров
{% set products = most_visited_products(count=5, exclude=[23, 34, 45]) %}
most_long_viewed_productsВозвращает массив самых долго просматриваемых товаров
Принимает параметры:
groups - группы, из которых выбираются товары
count - максимальное кол-во выбираемых товаров (по умолчанию 20)
exclude - товары, которые будут исключены из выборки
from - фильтр по дате
to - фильтр по дате
margin - минимальный порог маржи в абсолютных или относительных значениях, товары с маржой ниже порога не попадают в выборку
properties - фильтр по свойствам товара
customer - фильтр по клиенту
# Получаем пять самых долго просматриваемых товаров за январь
{% set products = most_long_viewed_products(count=5, from='2016-01-01', to='2016-01-31') %}
product_groupsВозвращает массив групп товаров указанного магазина до указанного уровня вложенности (по умолчанию 1 уровень). Если передано значение level больше 3, то возвращает 3 уровня. Элементы массива отсортированы в иерархическом порядке
entity_by_codeВозвращает значение справочника по его символьному коду
Для выборки доступны объекты типа: DeliveryType, DeliveryService, OrderMethod, OrderProductStatus, OrderType, PaymentStatus, PaymentType, Site, Status, StatusGroup, Store , LegalEntity
{{ entity_by_code('DeliveryType', 'delivery-type-10') }}
entity_by_idВозвращает сущность из базы по её идентификатору
Для выборки доступны объекты типа: User, Site, Product, ProductGroup, Customer
При выборке сущности Product возможно указать поле идентификации. Доступные значения: id, externalId, article
{{ entity_by_id('User', 4) }}
entities_by_idsВозвращает массив сущностей из базы по идентификаторам
Для выборки доступны объекты типа: Product, ProductGroup
При выборке сущности Product возможно указать поле идентификации. Доступные значения: id, externalId, article
{% set products = entities_by_ids('Product', ['100', '101', '102'], 'externalId') %}
is_working_timeФункция проверяет, является ли значение dateTime рабочим временем и возвращает результат (true или false). В качестве dateTime функция может принимать объект DateTime или строку, формат которой соответствует формату php функции strtotime. По умолчанию используется значение текущей даты и времени.
is_working_time()
is_working_time('2015-01-01 10:00:00')
is_working_time(date('2015-01-01 10:00:00'))
is_working_time(order.getCreatedAt())
hashВыполняет однонаправленное хеширование данных с использованием заданной хеш-функции (md5, sha1, sha256). Значение возвращается в виде hex-строки в нижнем регистре.
hash("md5", "test") # 098f6bcd4621d373cade4e832627b4f6
yandex_maps_apiФормирует ссылку для загрузки API Yandex.Maps
Принимает параметры:
version - Версия
parameters - Массив дополнительных параметров
{{ yandex_maps_api('2.0', { load: 'package.full', lang: 'ru_RU' }) }}
payment_linkВозвращает ссылку на оплату счета интеграционной оплаты
В заказе для использования функции должен быть добавлен интеграционный тип оплаты
Принимает параметры:
order - заказ с интеграционной оплатой, для которой создается ссылка на оплату счета
или
payment - интеграционная оплата, для которой создается ссылка на оплату счета
# Получаем ссылку на оплату счета первой интеграционной оплаты из заказа
{{ payment_link(order) }}
# Получаем ссылку на оплату счета интеграционной оплаты из заказа по коду типа интеграционной оплаты
{% set integrationPayment = null %}
{% for payment in order.payments if integrationPayment is null %}
    {% if payment.type.code == 'yandex_kassa_shop1' %}
        {% set integrationPayment = payment %}
    {% endif %}
{% endfor %}

{% if integrationPayment is not null %}
    Ваша ссылка на оплату: {{ payment_link(integrationPayment) }}
{% endif %}
userВозвращает текущего пользователя
user_statusВозвращает статус пользователя (объект типа User), переданного в качестве аргумента функции.
При вызове без аргументов возвращает статус текущего пользователя.
{{ user_status(order.manager) }} # free
user_online_statusВозвращает онлайн-статус пользователя (объект типа User), переданного в качестве аргумента функции (true или false)
При вызове без аргументов возвращает онлайн-статус текущего пользователя.
user_online_status(order.manager) # true
loyalty_account_infoВозвращает информацию о бонусном счете участия в ПЛ, переданного в качестве аргумента функции
Возвращает объект типа LoyaltyAccountInfo
loyalty_account_info(account).getWaitingActivationAmount()
loyalty_account_info(order.loyaltyAccount).getActiveAmount()
loyalty_account_info(customer.loyaltyAccountBySiteCode('test')).getBurnSoonAmount(10)
offer_inventoriesВозвращает массив остатков (массив объектов типа Inventory) торгового предложения по складам
Принимает параметры:
Offer offer - объект торгового предложения
Site|null site = null - объект магазина, опциональный (будут возвращены остатки только по складам магазина)
Store[]|Store|null store = null - объект или массив объектов склада, опциональный (будут возвращены остатки только по указанным складам)
# Различные варианты вызова функции
{% set inventories = offer_inventories(op.offer) %}
{% set inventories = offer_inventories(op.offer, order.site) %}
{% set inventories = offer_inventories(op.offer, order.site, entity_by_code('Store', 'store-1')) %}
{% set inventories = offer_inventories(op.offer, null, [entity_by_code('Store', 'store-1'), entity_by_code('Store', 'store-2')]) %}
{% set inventories = offer_inventories(op.offer, null, order.shipmentStore) %}
# Получаем остатки по торговым предложениях позиций заказа для склада 'store-1' c проверкой принадлежности склада к магазину заказа
{% for op in order.availableOrderProducts %}
    {% set inventories = offer_inventories(op.offer, order.site, entity_by_code('Store', 'store-1')) %}
    {% for i in inventories %}
        {{ i.store.code }}:{{ i.quantity }}
    {% endfor %}
{% endfor %}
integration_module_http_callВыполняет HTTP-запрос к бекенду JS-модуля и возвращает объект типа HttpCallResponse
Принимает параметры:
moduleCode - код экземпляра модуля
path - путь, на который в бекенд модуля будет отправлен запрос
payload - значение опционального POST-параметра payload в виде строки или json-объекта
При вызове функции система отправляет на {baseUrl}/{path} бекенда модуля POST-запрос с Content-Type: application/x-www-form-urlencoded.
Например, если модуль задал baseUrl, равный https://some-module.tech и указал path, равный /get-promocode, то запрос придет на https://some-module.tech/get-promocode.
В запросе может прийти 2 form-encoded параметра:
clientId=<clientIdForAccount> - обязательный параметр со значением clientId, которое модуль установил в данном аккаунте системы
payload=<payload> - опциональный параметр, если был передан payload
{% set response = integration_module_http_call('module-code', '/get-promocode', 'somePayload') %}
Ваш промокод {{ response.status == 200 ? response.body : 'error' }}
# Передача json-объекта в payload
{% set response = integration_module_http_call('module-code', '/get-promocode', {order_id: 1}) %}
# Если response.body является закодированной в json строкой вида '{"promocode": "foobar"}', то доступ к полю "promocode" можно получить через свойство "json"
{{ response.body.json.promocode }}
Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Справочник доступных Twig-фильтров
В шаблонах доступна большая часть стандартных фильтров, а также некоторые специальные фильтры. Общий перечень доступных фильтров приведен в статье.
Следующая статья
Работа с ценами и валютами в Twig
В статье более подробно рассмотрим работу с ценами и валютами в шаблонах.