← Cloudflare Zaraz / zaraz / advanced
Использование JSONata
В сложных сценариях иногда полезно получать значение особым образом. Например, вы можете использовать zaraz.track чтобы отправлять в Zaraz список товаров, но стороннему инструменту, которому нужно передать эти данные, требуется общая стоимость товаров. Также вы можете преобразовать значение, например перевести его в нижний регистр.
Cloudflare Zaraz использует JSONata, что позволяет выполнять сложные операции с данными. С помощью JSONata можно вычислять выражения относительно Zaraz Context, что дает доступ к широкому набору значений и позволяет их изменять. Чтобы узнать больше о доступных значениях и способах доступа к ним, см. полный справочник. Также можно обратиться к полная документация JSONata ↗ для получения дополнительной информации о возможностях JSONata.
Чтобы использовать JSONata в Zaraz, выполните следующие шаги:
-
На панели управления Cloudflare перейдите к разделу Настройка тега страницу.
Перейдите в Настройки ↗ -
Перейдите в Конфигурация инструментов > Инструменты.
-
Выберите Изменить рядом с уже настроенным инструментом.
-
Выберите действие или добавьте новое.
-
Выберите поле, в котором нужно использовать JSONata, и заключите выражение JSONata в двойные фигурные скобки, например
{{ expression }}.
JSONata также можно использовать в Triggers, Tool Settings и String Variables.
Примеры
Приведение строки к нижнему регистру
Приведение строки к нижнему регистру полезно, когда её нужно сравнить с чем-то ещё, например с регулярным выражением. Предположим, исходная строка берётся из cookie с именем myCookie, перевести значение в нижний регистр можно с помощью {{ $lowercase(system.cookies.myCookie) }}.
Отправка суммы всех товаров в корзине
Если вы используете zaraz.ecommerce() чтобы отправить содержимое корзины следующим образом:
zaraz.track('Product List Viewed',
{ products:
[
{
sku: '2671033',
name: 'V-neck T-shirt',
price: 14.99,
quantity: 3
},{
sku: '2671034',
name: 'T-shirt',
price: 10.99,
quantity: 2
},
],
}
);Если поле, в котором нужно вывести сумму, следует ввести {{ $sum(client.products.(price * quantity)) }}. Это умножит цену каждого товара на его количество, а затем сложит итоговую сумму.