INTEGRITY Документация

Использование JSONata

В сложных сценариях иногда полезно получать значение особым образом. Например, вы можете использовать zaraz.track чтобы отправлять в Zaraz список товаров, но стороннему инструменту, которому нужно передать эти данные, требуется общая стоимость товаров. Также вы можете преобразовать значение, например перевести его в нижний регистр.

Cloudflare Zaraz использует JSONata, что позволяет выполнять сложные операции с данными. С помощью JSONata можно вычислять выражения относительно Zaraz Context, что дает доступ к широкому набору значений и позволяет их изменять. Чтобы узнать больше о доступных значениях и способах доступа к ним, см. полный справочник. Также можно обратиться к полная документация JSONata ↗ для получения дополнительной информации о возможностях JSONata.

Чтобы использовать JSONata в Zaraz, выполните следующие шаги:

  1. На панели управления Cloudflare перейдите к разделу Настройка тега страницу.

    Перейдите в Настройки ↗
  2. Перейдите в Конфигурация инструментов > Инструменты.

  3. Выберите Изменить рядом с уже настроенным инструментом.

  4. Выберите действие или добавьте новое.

  5. Выберите поле, в котором нужно использовать 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)) }}. Это умножит цену каждого товара на его количество, а затем сложит итоговую сумму.