Spustiť kód

Akcia Spustiť kód vykoná kód JavaScript. Údaje z predchádzajúcich krokov v pracovnom postupe môžete odovzdať ako vstup do akcie Spustiť kód a vrátené hodnoty použiť v nasledujúcich krokoch.

Polia

Akcia Spustiť kód obsahuje nasledujúce polia.

Polia používané v akcii Spustiť kód.
PolePopis
VstupVyžaduje sa. Dopyt GraphQL, pomocou ktorého sa údaje z predchádzajúcich krokov použijú ako vstup do akcie Spustiť kód.
VýstupVyžaduje sa. Reprezentácia údajov, ktoré má akcia vrátiť. Sú definované v jazyku na definíciu schémy (SDL) rozhrania GraphQL.
KódVyžaduje sa. Kód JavaScript, ktorý akcia Spustiť kód vykoná.

Vstupné údaje

Vstupné údaje možno odovzdať z krokov, ktoré sa vykonajú pred akciou Spustiť kód. Ak chcete zahrnúť tieto údaje, môžete do poľa Vstup napísať dopyt GraphQL. Údaje vrátené z dopytu budú k dispozícii ako argument input pre funkciu označenú ako export default, podľa konvencie nazývanú main.

Vstupný dopyt sa týka údajov prostredia Flow a nie rozhrania Shopify Admin API. Preto do vstupných údajov nemôžete vložiť dopyt pre Shopify. Okrem toho aplikácia Flow spracováva konštrukty edges a nodes v dopyte, takže ich ani inú syntax stránkovania do dopytu nemusíte pridávať.

Príklad vstupu, ktorý získa poznámku k objednávke a názov riadkovej položky:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Tieto údaje sa konvertujú na premennú input, ktorú možno použiť v kóde:

export default function main(input) {
  // input.order.note
  // input.order.lineItems[0].title
}

Vstupy možno tiež deštruktúrovať v podpise funkcie:

export default function main({order}) {
  // order.note
  // order.lineItems[0].title
}

Metapolia

Ak chcete získať prístup k hodnotám jednotlivých metapolí v akcii Spustiť kód, musíte najprv pridať metapole do údajov prostredia aplikácie Flow. Dá sa to urobiť v akejkoľvek akcii alebo podmienke okrem akcie Spustiť kód. Môžete napríklad pridať akciu Log output a potom postupovať podľa pokynov na pridanie metapoľa.

Po pridaní metapoľa do prostredia pracovného postupu k nemu máte prístup v akcii Spustiť kód. Predpokladajme napríklad, že ste pridali metapole objednávky s aliasom giftMessage. Vo vstupnom dopyte k nemu potom máte prístup:

{
  order {
    giftMessage {
      value
    }
  }
}

Výstupné údaje

Akcia Spustiť kód môže vrátiť vlastné údaje. Ak chcete definovať typ údajov, ktoré kód vráti, použite pole Output a jazyk Schema definition language (SDL) rozhrania GraphQL. Podporované výstupné typy sú String, Int, Float, Boolean a ID, ktoré sa riadia špecifikáciou SDL pre spôsob definovania povinných polí, zoznamov a vlastných údajov.

Ak chcete napríklad vrátiť reťazec s názvom giftMessage a číslo s názvom totalGifts:

type Output {
  "The message to include in the gift"
  giftMessage: String!
  "The total number of gifts"
  totalGifts: Int!
}

Komentáre sú voliteľné, ale použijú sa na opis údajov v používateľskom rozhraní aplikácie Flow. Ak chcete tieto údaje vypísať v kóde JavaScript, vráťte objekt zodpovedajúci danému typu:

export default function main(input) {
  // your code
  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

Môžete tiež definovať vlastný typ na vrátenie zložitejších údajov. Ak chcete napríklad vrátiť typ s názvom Gift, ktorý obsahuje reťazec s názvom message a číslo s názvom amount:

type Output {
  "The gift to send"
  gifts: [Gift!]!
}

type Gift {
  "The message to include in the gift"
  message: String!
  "The total number of gifts"
  amount: Int!
}

Ak chcete získať prístup k týmto údajom v krokoch, ktoré nasledujú po tejto akcii, použite premennú s názvom Spustiť kód, ktorá bude mať typ podľa schémy Output definovanej v konfigurácii akcie Spustiť kód. Túto premennú môžete použiť v podmienkach aj akciách.

Console.log

Pomocou funkcie console.log môžete vypísať údaje do denníka spustení pracovného postupu v aplikácii Flow na účely riešenia problémov. Výstup bude viditeľný v denníku spustení daného pracovného postupu. Platné sú napríklad nasledujúce možnosti:

export default function main(input) {
  console.log('Hello, world!');
  //Hello, world!
  console.log(input);
  // { order: { note: 'Hello', lineItems: [ { title: 'World' } ] } }
  console.log(input.order, 'is the order');
  // { note: 'Hello', lineItems: [ { title: 'World' } ] }
  // is the order

  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

V akcii Spustiť kód nemožno použiť console.info, console.error ani iné funkcie.

Príklad

Príklady pre akciu s kódom nájdete v odkladacom priestore príkladov aplikácie Flow.

Obmedzenia

Pre akciu Spustiť kód platia nasledujúce obmedzenia:

  • Akcia Spustiť kód podporuje JavaScript verzie ECMA2020. Nepodporuje rozhrania API NodeJS ani CommonJS a nepodporuje ani importovanie modulov.
  • Váš kód nemôže vykonávať volania HTTP (fetch).
  • Nemožno použiť náhodné funkcie a funkcie založené na čase. Údaje o dátume, ako napríklad scheduledAt alebo createdAt, možno odovzdať ako vstup.
  • Funkcia Console.log nezaznamenáva údaje do konzoly prehliadača.
  • Z dôvodu úspory veľkosti dátovej časti vracajú výstupné údaje iba premenné použité v nadväzujúcich krokoch.
  • Alias metapoľa nemožno pridať priamo v akcii Spustiť kód. Ak to chcete urobiť, pozrite si časť Metapolia na tejto stránke.

Okrem toho sa uplatňujú tieto obmedzenia:

  • Dopyt na vstupné údaje je obmedzený na 5 000 znakov.
  • Schéma výstupných údajov je obmedzená na 5 000 znakov.
  • Užitočné zaťaženie výstupných údajov a výstup z funkcie Console.log sú spoločne obmedzené na 50 KB.
  • Kód nemôže byť dlhší ako 50 000 znakov.
  • Celkové trvanie spustenia je obmedzené na 5 sekúnd.
  • Využitie pamäte je obmedzené na 10 MB.

Šablóny

Pridať bezplatnú položku (100 % zľava) do nových objednávok

Táto šablóna pridá bezplatnú, zľavnenú položku do nových objednávok, ak je na sklade. Skontroluje inventár, uplatní 100 % zľavu a aktualizuje objednávku bez upozornenia zákazníka. Tento pracovný postup pomáha pridať automatizáciu pre nasledujúce scenáre:

  • Zvýšenie spokojnosti zákazníkov zahrnutím bezplatnej položky ako prekvapenia k ich objednávke.
  • Propagácia nových alebo menej známych produktov ich pridaním vo forme bezplatných vzoriek k objednávkam.
  • Zefektívnenie propagačných akcií automatizáciou pridávania a zľavňovania bezplatných položiek.

Zobraziť šablónu

Zrušiť neaktívne vrátenia

Automaticky zruší vrátenie, pri ktorom nedošlo k vráteniu peňazí alebo opätovnému naskladneniu do určitého času. Zobraziť šablónu

Konvertovať štítky s predponou na metapole produktu pomocou akcie Spustiť kód

Tento pracovný postup vezme štítky, ktoré sa začínajú predponou (napríklad „color:“), a pridá ich do zoznamu metapolí produktu. Používa akciu Spustiť kód na analyzovanie štítkov a existujúcich položiek v zozname metapolí. Pracovný postup sa spúšťa pri vytvorení produktu, ale je možné ho manuálne spustiť na existujúcich produktoch. Zobraziť šablónu

Odoslať upozornenie, keď si zákazník objedná viaceré varianty produktu

Prijímajte e‑mailové upozornenia, keď si zákazník objedná viaceré varianty toho istého produktu. Zobraziť šablónu

Odoslať upozornenie, keď objednávka obsahuje balík

Tento pracovný postup sa začína pri vytvorení objednávky a kontroluje, či bol niektorý z produktov v objednávke zakúpený ako súčasť balíka. Ak sa nájde, odošle sa interný e‑mail s podrobnosťami o balíku. Okrem toho môžete tento pracovný postup použiť ako východiskový bod pre akýkoľvek prípad použitia, ktorý vyžaduje zistenie prítomnosti balíka v objednávke. Zobraziť šablónu

Označiť objednávky pridruženou kampaňou UTM

Pridáva k objednávkam štítky, ktoré obsahujú názvy všetkých pridružených kampaní UTM. Zobraziť šablónu