Zaženi kodo

Dejanje Zaženi kodo izvede kodo JavaScript. Dejanju Zaženi kodo lahko posredujete podatke iz prejšnjih korakov v poteku dela kot vnos ter vrnete vrednosti za uporabo v nadaljnjih korakih.

Polja

Dejanje Zaženi kodo vsebuje naslednja polja.

Polja, uporabljena v dejanju Zaženi kodo.
PoljeOpis
VnosObvezno. Poizvedba GraphQL za uporabo podatkov iz prejšnjih korakov kot vnos v dejanje Zaženi kodo.
IzhodObvezno. Predstavitev podatkov, ki jih vrne dejanje, opredeljena v jeziku za definicijo sheme (SDL) GraphQL.
KodaObvezno. Koda JavaScript, ki jo bo izvedlo dejanje Zaženi kodo.

Vhodni podatki

Vhodne podatke lahko posredujete iz korakov, ki se izvedejo pred dejanjem Zaženi kodo. Če želite vključiti te podatke, lahko v polje Vnos vpišete poizvedbo GraphQL. Podatki, ki jih vrne poizvedba, bodo na voljo kot argument input za funkcijo, označeno z export default, ki se običajno imenuje main.

Vhodna poizvedba je poizvedba za podatke okolja aplikacije Flow in ne poizvedba v Shopify Admin API. Zato ne morete vstaviti poizvedbe Shopify v vhodne podatke. Poleg tega Flow obravnava vrednosti edges in nodes v poizvedbi, zato teh ali druge sintakse za oštevilčevanje strani ni treba dodati v poizvedbo.

Primer vnosa, ki pridobi opombo k naročilu in naslov vrstične postavke:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Ti podatki se pretvorijo v spremenljivko input, ki jo lahko uporabite v kodi:

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

Vnose lahko tudi destrukturirate v podpisu funkcije:

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

Metapolja

Če želite dostopati do posameznih vrednosti metapolja v dejanju Run code, morate metapolje najprej dodati v podatke okolja aplikacije Flow. To lahko storite v katerem koli dejanju ali pogoju, razen v dejanju Run code. Dodate lahko na primer dejanje Log output in nato sledite navodilom za dodajanje metapolja.

Ko metapolje dodate v okolje poteka dela, lahko do njega dostopate v dejanju Run code. Predpostavimo na primer, da ste dodali metapolje naročila z vzdevkom giftMessage. Do njega lahko nato dostopate v svoji poizvedbi za vnos:

{
  order {
    giftMessage {
      value
    }
  }
}

Izhodni podatki

Dejanje Run code lahko vrne podatke po meri. Če želite določiti vrsto podatkov, ki jih bo koda vrnila, uporabite polje Output in GraphQL-ov jezik za določanje sheme (SDL). Podprte izhodne vrste so String, Int, Float, Boolean in ID, ki sledijo specifikaciji SDL za določanje obveznih polj, seznamov in podatkov po meri.

Na primer za vrnitev niza z imenom giftMessage in števila z imenom totalGifts:

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

Komentarji so izbirni, vendar bodo uporabljeni za opis podatkov v uporabniškem vmesniku aplikacije Flow. Če želite te podatke izpisati v kodi JavaScript, vrnite predmet, ki se ujema z vrsto:

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

Določite lahko tudi vrsto po meri za vračilo kompleksnejših podatkov. Na primer za vrnitev vrste z imenom Gift, ki vsebuje niz z imenom message in število z imenom 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!
}

Za dostop do teh podatkov v korakih, ki sledijo temu dejanju, uporabite spremenljivko z imenom Run code. Ta bo imela vrsto, ki ustreza shemi Output, določeni v konfiguraciji dejanja Run code. To spremenljivko lahko uporabite tako v pogojih kot v dejanjih.

Console.log

Uporabite lahko console.log za izpis podatkov v dnevnik zagonov poteka dela v aplikaciji Flow za namene odpravljanja težav. Izhod bo viden v dnevniku zagonov (Run log) za potek dela. Veljavno je na primer naslednje:

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 dejanju Run code ne morete uporabiti funkcij console.info, console.error ali drugih.

Primer

Primere za dejanje kode najdete v shrambi primerov za aplikacijo Flow.

Omejitve

Dejanje Run code ima naslednje omejitve:

  • Dejanje Run code podpira ECMA2020 JavaScript. Ne podpira API-jev NodeJS ali CommonJS in uvažanja modulov.
  • Vaša koda ne more izvajati klicev HTTP (fetch).
  • Naključnih funkcij in funkcij, ki temeljijo na času, ni mogoče uporabiti. Podatki o datumu, kot sta scheduledAt ali createdAt, se lahko posredujejo kot vnos.
  • Console.log ne beleži v konzoli brskalnika.
  • Da bi zmanjšali velikost prenesenih podatkov, izhodni podatki vrnejo samo spremenljivke, uporabljene v nadaljnjih korakih.
  • Neposredno v dejanju Run code ne morete dodati vzdevka metapolja. Če želite to narediti, si oglejte razdelek Metapolja na tej strani.

Poleg tega veljajo naslednje omejitve:

  • Poizvedba za vhodne podatke je omejena na 5.000 znakov.
  • Shema izhodnih podatkov je omejena na 5.000 znakov.
  • Izhodni podatki in izpis iz funkcije Console.log so skupaj omejeni na 50 KB.
  • Koda ne sme biti daljša od 50.000 znakov.
  • Skupni čas izvajanja je omejen na 5 sekund.
  • Poraba pomnilnika je omejena na 10 MB.

Predloge

Novim naročilom dodaj brezplačen kos (100-% popust)

Ta predloga novim naročilom doda brezplačen kos s popustom, ko je kos na zalogi. Preveri inventar, uveljavi 100-% popust in posodobi naročilo, ne da bi o tem obvestila stranko. Ta potek dela lahko pomaga dodati avtomatizacijo v naslednjih scenarijih:

  • Povečanje zadovoljstva strank z vključitvijo brezplačnega kosa presenečenja v njihovo naročilo.
  • Promocija novih ali manj znanih izdelkov z njihovim dodajanjem kot brezplačnih vzorcev v naročila.
  • Poenostavitev promocij z avtomatizacijo vključevanja in obračunavanja popustov za brezplačne kose.

Ogled predloge

Prekliči neaktivna vračila

Samodejno prekliči vračilo, za katero v določenem časovnem obdobju ni bilo vrnjeno plačilo ali ki ni bilo vrnjeno na zalogo. Ogled predloge

Pretvori oznake s predpono v metapolje izdelka z uporabo dejanja Run code

Ta potek dela vzame oznake, ki se začnejo s predpono, kot je ‚color:‘, in jih doda na seznam metapolj izdelka. Uporablja dejanje Run code za razčlenitev oznak in obstoječih kosov na seznamu metapolj. Potek dela se zažene ob ustvarjanju izdelka, lahko pa se tudi ročno zažene za obstoječe izdelke. Ogled predloge

Pošlji obvestilo, ko stranka naroči več različic izdelka

Prejmite e-poštno obvestilo, ko stranka naroči več različic istega izdelka. Ogled predloge

Pošlji obvestilo, ko naročilo vsebuje paket

Ta potek dela se začne ob ustvarjanju naročila in preveri, ali je bil kateri od izdelkov v naročilu kupljen kot del paketa. V tem primeru se pošlje interno e-poštno sporočilo s podrobnostmi o paketu. Poleg tega lahko ta potek dela uporabite kot izhodišče za kateri koli primer uporabe, ki zahteva zaznavanje paketa znotraj naročila. Ogled predloge

Označi naročila s povezano oglaševalsko akcijo UTM

Naročilom, ki vsebujejo imena kakršnih koli povezanih oglaševalskih akcij UTM, doda oznake. Ogled predloge