Pokreni kôd

Radnja Pokreni kôd izvršava jezik JavaScript. Podatke iz prethodnih koraka u tijeku rada možete proslijediti kao ulaz u radnju Pokreni kôd te vratiti vrijednosti koje će se upotrebljavati u sljedećim koracima.

Polja

Radnja Pokreni kôd sadrži sljedeća polja.

Polja koja se upotrebljavaju u radnji Pokreni kôd.
PoljeOpis
UlazObavezno. GraphQL upit za upotrebu podataka iz prethodnih koraka kao ulaza za radnju Pokreni kôd.
IzlazObavezno. Prikaz podataka koje će radnja vratiti, definiran u GraphQL-ovom jeziku za definiciju sheme (SDL-u).
KôdObavezno. JavaScript koji će radnja Pokreni kôd izvršiti.

Ulazni podaci

Ulazni podaci mogu se proslijediti iz koraka koji se odvijaju prije radnje Pokreni kôd. Da biste uključili te podatke, možete napisati GraphQL upit u polju Ulaz. Podaci koje upit vrati bit će dostupni kao argument input za funkciju označenu s export default, prema konvenciji nazvanom main.

Ulazni upit služi za podatke okruženja Flow, a nije upit prema usluzi Shopify Admin API. Stoga u ulazne podatke ne možete umetnuti Shopifyjev upit. Dodatno, Flow obrađuje edges i nodes u upitu pa njih ili druge sintakse označavanja stranica ne morate dodavati u upit.

Primjer ulaza kojim se dohvaćaju napomena o narudžbi i naziv stavke:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Ovi se podaci pretvaraju u varijablu input koja se može upotrijebiti u kodu:

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

Ulazni podaci mogu se i destrukturirati u potpisu funkcije:

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

Metapolja

Da biste pristupili vrijednostima pojedinačnih metapolja u radnji Pokreni kod, najprije morate dodati metapolje podacima okruženja u aplikaciji Flow. To se može učiniti u bilo kojoj radnji ili uvjetu osim u radnji Pokreni kod. Primjerice, možete dodati radnju Zabilježi izlazne podatke, a zatim slijediti upute za dodavanje metapolja.

Nakon dodavanja metapolja okruženju tijeka rada, možete mu pristupiti u radnji Pokreni kod. Primjerice, pretpostavimo da ste dodali metapolje narudžbe pod pseudonimom giftMessage. Tada mu možete pristupiti u upitu za ulazne podatke:

{
  order {
    giftMessage {
      value
    }
  }
}

Izlazni podaci

Radnja Pokreni kod može vratiti prilagođene podatke. Za definiranje vrste podataka koju će kod vratiti upotrijebite polje Izlazni podaci (Output) i GraphQL-ov jezik za definiranje sheme (SDL). Podržane su izlazne vrste String, Int, Float, Boolean i ID koje prate specifikaciju SDL za određivanje obaveznih polja, popisa i prilagođenih podataka.

Primjerice, za povrat niza s nazivom giftMessage i broja s nazivom totalGifts:

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

Komentari su neobavezni, ali poslužit će za opis podataka u korisničkom sučelju aplikacije Flow. Da biste izveli te podatke u JavaScript kodu, vratite objekt koji odgovara vrsti:

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

Možete i definirati prilagođenu vrstu za povrat složenijih podataka. Primjerice, za povrat vrste pod nazivom Gift koja sadrži niz s nazivom message i broj s nazivom 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!
}

Da biste pristupili tim podacima u koracima koji slijede ovu radnju, upotrijebite varijablu pod nazivom Pokreni kod, koja će biti klasificirana u skladu sa shemom Output (Izlazni podaci) koju definirate u konfiguraciji radnje Pokreni kod. Tu varijablu možete upotrijebiti u uvjetima i radnjama.

Console.log

Možete upotrijebiti console.log za izvoz podataka u zapisnik o pokretanju tijeka rada aplikacije Flow u svrhu rješavanja problema. Izlazni podaci bit će vidljivi u zapisniku o pokretanju tijeka rada. Vrijedi, primjerice, sljedeće:

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

U radnji Pokreni kod ne možete upotrebljavati console.info, console.error i druge funkcije.

Primjer

Primjere za ovu radnju s kodom možete pronaći u repozitoriju primjera za aplikaciju Flow.

Ograničenja

Radnja Pokreni kod ima sljedeća ograničenja:

  • Radnja Pokreni kod podržava ECMA2020 JavaScript. Ne podržava API-je NodeJS ili CommonJS niti uvoz modula.
  • Vaš kod ne može izvršavati HTTP pozive (fetch).
  • Nasumične funkcije i funkcije temeljene na satu ne mogu se upotrebljavati. Podaci o datumu, kao što su scheduledAt ili createdAt, mogu se proslijediti kao ulazni podaci.
  • Console.log se ne bilježi u konzoli preglednika.
  • Radi uštede na veličini opterećenja korisnim podacima, opterećenje izlaznim podacima vraća samo varijable upotrijebljene u daljnjim koracima.
  • Ne možete dodati pseudonim metapolja izravno u radnju Pokreni kod. Da biste to učinili, pregledajte odjeljak Metapolja na ovoj stranici.

Osim toga, primjenjuju se sljedeća ograničenja:

  • Upit za ulazne podatke ograničen je na 5 000 znakova.
  • Shema izlaznih podataka ograničena je na 5 000 znakova.
  • Izlazni korisni podaci i izlaz za Console.log zajedno su ograničeni na 50 KB.
  • Kod ne može biti dulji od 50 000 znakova.
  • Ukupno trajanje izvršavanja ograničeno je na 5 sekundi.
  • Upotreba memorije ograničena je na 10 MB.

Predlošci

Dodaj besplatnu stavku (popust od 100 %) novim narudžbama

Ovaj predložak dodaje besplatnu stavku s popustom novim narudžbama kada je stavka na zalihi. Provjerava zalihe, primjenjuje popust od 100 % i ažurira narudžbu bez obavještavanja korisnika. Ovaj tijek rada može pomoći u dodavanju automatizacije u sljedeće scenarije:

  • Povećanje zadovoljstva korisnika uključivanjem besplatne stavke iznenađenja u narudžbu.
  • Promoviranje novih ili manje poznatih proizvoda dodavanjem njihovih besplatnih uzoraka u narudžbe.
  • Pojednostavljivanje promocija automatizacijom uključivanja besplatnih stavki i primjene popusta.

Prikaži predložak

Otkaži neaktivne povrate

Automatski otkazuje povrat koji u određenom razdoblju nije refundiran ili čije stavke nisu vraćene na zalihu. Prikaži predložak

Konvertiraj oznake s prefiksom u metapolje proizvoda pomoću radnje Pokreni kod

Ovaj tijek rada uzima oznake koje počinju prefiksom kao što je 'color:' i dodaje ih na popis metapolja proizvoda. Upotrebljava radnju Pokreni kod za raščlanjivanje oznaka i postojećih stavki na popisu metapolja. Tijek rada pokreće se prilikom izrade proizvoda, ali se može i ručno pokrenuti na postojećim proizvodima. Prikaži predložak

Pošalji obavijest kada korisnik naruči više varijanti proizvoda

Primite obavijest e-poštom kada korisnik naruči više varijanti istog proizvoda. Prikaži predložak

Pošalji obavijest kada narudžba sadrži paket

Ovaj tijek rada započinje pri izradi narudžbe i provjerava je li neki od proizvoda u narudžbi kupljen kao dio paketa. Ako se pronađe takav proizvod, šalje se interna e-poruka s pojedinostima o paketu. Osim toga, ovaj tijek rada možete upotrijebiti kao polazište za bilo koji slučaj upotrebe u kojem treba otkriti prisutnost paketa u narudžbi. Prikaži predložak

Označi narudžbe povezanom kampanjom UTM

Dodaje oznake narudžbama koje sadrže nazive povezanih kampanja UTM. Prikaži predložak