INTEGRITY Dokumentace

Používání JSONata

U pokročilejších případů použití se někdy hodí umět získat hodnotu konkrétním způsobem. Můžete například používat zaraz.track odeslat seznam produktů do Zaraz, ale nástroj třetí strany, kterému tato data chcete poslat, vyžaduje celkovou cenu produktů. Případně můžete chtít některou hodnotu upravit, například ji převést na malá písmena.

Cloudflare Zaraz využívá JSONata, což umožňuje provádět s daty složité operace. Pomocí JSONata můžete vyhodnocovat výrazy vůči Zaraz Context, což vám umožní přistupovat k široké škále hodnot a upravovat je. Více informací o dostupných hodnotách a způsobu přístupu k nim najdete v úplná referenční dokumentace. Můžete se také podívat na kompletní dokumentace JSONata ↗ kde najdete další informace o možnostech JSONata.

Chcete-li používat JSONata v Zaraz, postupujte takto:

  1. V dashboardu Cloudflare přejděte na Nastavení tagu stránce.

    Přejděte na Nastavení ↗
  2. Přejděte na Konfigurace nástrojů > Nástroje.

  3. Vyberte Úprava vedle nástroje, který jste již nakonfigurovali.

  4. Vyberte akci, nebo přidejte novou.

  5. Vyberte pole, ve kterém chcete použít JSONata, a svůj výraz obalte dvojitými složenými závorkami, například {{ expression }}.

JSONata lze použít také uvnitř Triggers, Tool Settings a String Variables.

Příklady

Převod řetězce na malá písmena

Převod řetězce na malá písmena je užitečný, pokud jej chcete porovnat s něčím jiným, například s regulárním výrazem. Předpokládejme, že původní řetězec pochází z cookie s názvem myCookie, převod hodnoty na malá písmena lze provést pomocí {{ $lowercase(system.cookies.myCookie) }}.

Odeslání součtu všech produktů v košíku

Za předpokladu, že používáte zaraz.ecommerce() k odeslání obsahu košíku takto:

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
    },
    ],
  }
);

Do pole, ve kterém chcete zobrazit součet, zadáte {{ $sum(client.products.(price * quantity)) }}. Tím se cena každého produktu vynásobí jeho množstvím a výsledky se sečtou.