Перейти к основному содержимому

Использование переменных маркета в сообщениях

Переменные

В маркете доступны четыре переменные:

{products("<filter>" 10 "manufacturer_name" "desc")}
  • sku — функция выбирает SKU.
{sku("<filter>" 10 "manufacturer_name" "desc")}
  • orders — функция выбирает заказы из списка заказов профиля.
{orders("<filter>" 10 "status" "asc")}
  • order — функция выбирает один заказ из списка заказов профиля.
{order("<filter>")}

Аргументы функции

("<filter>" 10 "manufacturer_name" "desc")

АргументОбязательныйОписание
"<filter>"ДаФильтр — это строка условий. Позволяет выбрать продукты, SKU, заказы или позиции заказов, соответствующие заданным условиям.

Например, можно выбрать продукты одного производителя или заказы, превышающие конкретную сумму.

Подробную информацию смотрите ниже.
10ДаЛимит. Сколько элементов массива необходимо перебрать. Максимальное значение — 30.

Например, если указать значение 10, то фильтр выберет первые десять элементов из массива.
"manufacturer_name"НетСортировка объектов по указанному полю.

По умолчанию — без сортировки.
"desc"НетНаправление сортировки.

asc — по возрастанию (сортировка по умолчанию)
desc — по убыванию

Фильтр

Фильтр состоит из полей и операторов. Поля есть у каждого объекта в маркете. Например, у продуктов и SKU есть поле name (наименование товара), а у заказов есть поле total_price (общая стоимость заказа). В фильтре вы указываете поле и значение, которому оно должно соответствовать. Если поле объекта соответствует значению, то этот объект будет выбран и его данные можно будет подставить в шаблон.

Пример фильтра

Добавим в шаблон переменную "Заказы":


{orders (("order.total_price == '1000 RUB') && (order.custom_fields.field == 'lead._region')" 10 "id" "desc")}

Выделенная часть переменной является фильтром. Разберем его по частям:

  • order.total_price == '1000 RUB' — условие выберет все заказы, стоимость которых равна 1000 рублей.

  • order.custom_fields.field == 'lead._region' — условие выберет заказы с дополнительным полем "field". Вместо "field" можно указать любое дополнительное (пользовательское) поле. Указанное равенство означает то, что значение поля "field" должно совпадать со значением региона в профиле клиента ("lead._region").

  • Оператор && указывает на то, что оба условия должны быть выполнены.

  • Число 10 означает количество выводимых объектов, "id" указывает на поле фильтрации, а "desc" — на сортировку по убыванию.

Ниже приведены поля и операторы, доступные в фильтре.

Операторы и функции в фильтре

ОператорОписаниеПримерЧто будет выбрано
>большеorder.delivery_cost > '300 RUB'Заказы со стоимостью доставки больше 300 рублей
>=больше или равноorder.delivery_cost >= '300 RUB'Заказы со стоимостью доставки 300 рублей или больше
<меньшеsku.count < '10'SKU, которых осталось меньше 10 штук для продажи
<=меньше или равноsku.count <= '10'Количество SKU для продажи равно 10 или больше
==равноorder.status == '1'Заказы со статусом "новый"
!=не равноproduct.manufacturer_name != 'Apple'Продукты, производителем которых не является Apple
&&И (оба условия соответствуют)product.manufacturer_name == 'Apple' && product.price < '200 USD'Продукты производителя Apple со стоимостью больше $200
||ИЛИ (одно из условий соответствует)sku.manufacturer_name == 'MSI' || sku.manufacturer_name == 'Acer'SKU с производителем MSI или Acer
in('<field_name>', 'value1', 'value2'...'valueN')Значение поля (<field_name>) совпадает с одним из указанных значений ('value1', 'value2')in(product.external_id,'1','2','3')Продукты с идентификатором равным 1, 2 или 3
contains('<field_name>', 'value1', 'value2'...'valueN')Один из элементов массива совпадает с одним из указанных значений.

<field_name> — массив

'value1', 'value2' — значения, совпадение с которыми проверяется.

Используется, если поле является массивом, т.е. содержит несколько элементов (например: категории, изображения, дополнительные поля).
contains(product.categories,'smartphone')Продукты с категорией "smartphone"

Список доступных полей в фильтрах

Продукты

Префикс — product.

ПолеОписание
product.external_idИдентификатор продукта
product.nameНазвание продукта
product.manufacturer_nameНазвание производителя
product.urlURL страницы продукта на сайте магазина
product.picturesURL-ссылка на картинку продукта
product.countКоличество продуктов, доступное для продажи
product.is_availableЕсть ли продукт в наличии у магазина
product.delivery

Возможность курьерской доставки (по всем регионам, в которые доставляет магазин)

product.barcodeСписок штрихкодов продукта от производителя
product.categoriesИдентификатор категории продукта
product.custom_fields.<external_id поля>Идентификатор дополнительного поля

SKU

Префикс — sku.

ПолеОписание
sku.external_idИдентификатор SKU
sku.nameНазвание SKU
sku.manufacturer_nameНазвание производителя
sku.urlURL страницы SKU на сайте магазина
sku.picturesURL-ссылка на картинку SKU
sku.countКоличество SKU, доступное для продажи
sku.is_availableЕсть ли SKU в наличии у магазина
sku.deliveryВозможность курьерской доставки (по всем регионам, в которые доставляет магазин)
sku.barcodeСписок штрихкодов SKU от производителя
sku.categoriesИдентификатор категории SKU
sku.custom_fields.<external_id поля>Идентификатор дополнительного поля

Заказы

Префикс — order.

ПолеОписание
order.external_id Идентификатор заказа
order.statusИдентификатор статуса заказа

1 — новый
2 — доставлен
3 — оплачен
4 — отменен
5 — частичный возврат
order.delivery_costСтоимость доставки
order.total_priceОбщая стоимость заказа.

Складывается из суммы каждой позиции в заказе и стоимости доставки.
order.custom_fields.<external_id поля>Идентификатор дополнительного поля
order.real_create_timeВремя создание заказа
order.real_update_timeВремя обновления заказа
order.region_external_idИдентификатор региона

Как использовать переменные маркета

Любая переменная в маркете представляет собой массив. Например, переменная products будет содержать массив всех продуктов, загруженных в платформу, а переменная orders — массив заказов одного профиля. Чтобы перебрать массив, воспользуйтесь циклом с переменными.

Перебор массива продуктов (products)

Выводит в письме 5 продуктов от Apple:

Возможно, Вам будут интересны эти товары:
{for $index $el = products("product.manufacturer_name == 'Apple'" 5 "external_id" "desc")}
{$el.name}{$el.price}
{else}
if empty array
{end}

7 самых дешевых смартфонов:

Лучшие цены на смартфоны для Вас и Ваших близких:
{for $index $el = products("product.categories == 'smartphone'" 7 "price" "asc")}
{$el.name}{$el.price}
{else}
if empty array
{end}

Товары с доставкой:

Доставим до двери:
{for $index $el = products("product.delivery == true" 10 "name" "desc")}
{$el.name}{$el.price}
{else}
if empty array
{end}

Перебор массива SKU (sku)

Смартфоны до 20000:

Смартфоны, которые Вам понравятся:
{for $index $el = sku("contains(sku.categories,'smartphone') && sku.price < '20000 RUB'" 3 "price" "asc")}
{$el.name}{$el.price}
{else}
if empty array
{end}

IPhone с объемом памяти больше 128 ГБ:

Памяти хватит на всё:
{for $index $el = sku("contains(sku.name,'IPhone') && sku.custom_fields.memory >= '128'" 10 "name" "desc")}
{$el.name}{$el.price}
{else}
if empty array
{end}

Перебор массива всех заказов (orders)

Заказы, прибывшие в пункт выдачи:

Заказы ждут Вас в пункте выдачи:
{for $index $el = orders("order.status == '2'" 10 "external_id" "desc")}
Заказ № {$el.external_id}
К оплате: {$el.total_price}
{else}
if empty array
{end}

Список новых заказов:

Новые заказы за последнюю неделю:
{for $index $el = orders("order.status == '1'" 20 "external_id" "desc")}
Заказ № {$el.external_id}
К оплате: {$el.total_price}
{else}
if empty array
{end}

Перебор позиций в заказе с id = '0001' (order + lines)

{for $index $el = order("order.external_id == '0001'")}
{if $index equal "lines"}
{for $i $line = $el}
Название позиции: {$line.name}
Цена позиции: {$line.final_price_of_line}
{end}
{end}

{if $index equal "delivery_cost"}
Стоимость доставки: {$el}
{end}
{if $index equal "total_price"}
К оплате: {$el}
{end}

{else}
if empty array
{end}

Список доступных полей для подстановки в шаблон

Продукты и SKU (products/ sku)

Поле для подстановкиОписание
external_idИдентификатор товара
nameНазвание товара
manufacturer_nameНаименование производителя
urlURL страницы товара на сайте магазина
picturesСписок URL-ссылок на изображения товара (массив)
countКоличество товаров, доступное для продажи
is_availableЕсть ли товар в наличии у магазина
deliveryВозможность курьерской доставки (по всем регионам, в которые доставляет магазин)
barcodeСписок штрихкодов продукта от производителя (массив)
categoriesСписок идентификаторов категорий товара (массив)
custom_fields.<external_id поля>Идентификатор дополнительного поля
regional_data.<region_external_id>.countКоличество товаров, доступное для продажи в указанном регионе.

regional_data — это данные о продукте, которые могут различаться в зависимости от региона (в формате массива).

<region_external_id> — идентификатор региона.
regional_data.<region_external_id>.deliveryВозможность курьерской доставки по указанному региону
regional_data.<region_external_id>.availableЕсть ли товар в наличии в указанном регионе
regional_data.<region_external_id>.priceЦена товара в указанном регионе

Заказы (orders)

Поле для подстановкиОписание
external_idИдентификатор заказа
statusИдентификатор статуса заказа
delivery_costСтоимость доставки
total_priceОбщая стоимость заказа.
Складывается из суммы каждой позиции в заказе и стоимости доставки.
custom_fields.<external_id поля>Идентификатор дополнительного поля
create_timeВремя создание заказа
update_timeВремя обновления заказа
region.external_idИдентификатор региона
linesПозиции заказа (массив). Только для функции order.

Позиции заказа (lines)

Поле для подстановкиОписание
idИдентификатор позиции
external_idДополнительный идентификатор позиции
custom_status_external_idИдентификатор статуса позиции заказа
base_price_per_itemБазовая цена
final_price_of_lineКонечная цена
countКоличество товара в позиции
custom_fields.<external_id поля>Идентификатор дополнительного поля в позиции заказа
product_external_idИдентификатор продукта в позиции
nameНазвание позиции
manufacturer_nameНаименование производителя товара, указанного в позиции
urlURL страницы товара, указанного в позиции, на сайте магазина
picturesСписок URL-ссылок на изображения товара, указанного в позиции (массив)
availableЕсть ли товар, указанный в позиции, в наличии у магазина
deliveryВозможность курьерской доставки позиции заказа
barcodesСписок штрихкодов товара, указанного в позиции (массив)
categoriesСписок идентификаторов категорий товара, указанного в позиции (массив)
custom_fields.<external_id поля>Дополнительные поля позиции заказа