Palaist kodu

Darbība Palaist kodu izpilda JavaScript kodu. Vari nodot datus no iepriekšējām darbplūsmas darbībām kā ievadi darbībai Palaist kodu un atgriezt vērtības izmantošanai turpmākajās darbībās.

Lauki

Darbībā Palaist kodu ir tālāk norādītie lauki.

Darbībā Palaist kodu izmantotie lauki.
LauksApraksts
IevadeObligāts. GraphQL vaicājums, lai izmantotu datus no iepriekšējām darbībām kā ievadi darbībai Palaist kodu.
IzvadeObligāts. Datu, ko atgriež darbība, attēlojums, kas definēts GraphQL shēmas definēšanas valodā (SDL).
KodsObligāts. JavaScript kods, ko izpildīs darbība Palaist kodu.

Ievades dati

Ievades datus var nodot no darbībām, kas notiek pirms darbības Palaist kodu. Lai iekļautu šos datus, laukā Ievade vari ierakstīt GraphQL vaicājumu. No vaicājuma atgrieztie dati būs pieejami kā input arguments funkcijai, kas atzīmēta ar export default un ko parasti sauc par main.

Ievades vaicājums ir vaicājums par Flow vides datiem, nevis vaicājums uz Shopify Admin API. Tāpēc ievades datos nevari ievietot Shopify vaicājumu. Turklāt Flow apstrādā edges un nodes vaicājumā, tāpēc tev tie vai cita lapošanas sintakse vaicājumā nav jāpievieno.

Piemērs ievadei, kas iegūst pasūtījuma piezīmi un rindas vienuma nosaukumu:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Šie dati tiek pārveidoti par input mainīgo, ko var izmantot kodā:

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

Ievades var arī destrukturēt funkcijas parakstā:

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

Metalauki

Lai piekļūtu atsevišķām metalauka vērtībām sadaļā Palaist kodu, metalauks vispirms jāpievieno Flow vides datiem. To var izdarīt jebkurā darbībā vai nosacījumā, izņemot Palaist kodu. Piemēram, vari pievienot darbību Reģistrēt izvadi un pēc tam veikt norādītās darbības, lai pievienotu metalauku.

Pēc tam, kad darbplūsmas videi ir pievienots metalauks, tam var piekļūt darbībā Izpildīt kodu. Piemēram, pieņemsim, ka pievienoji pasūtījuma metalauku ar aizstājvārdu giftMessage. Pēc tam tam vari piekļūt savā ievades vaicājumā:

{
  order {
    giftMessage {
      value
    }
  }
}

Izvades dati

Darbība Izpildīt kodu var atgriezt pielāgotus datus. Lai definētu datu veidu, ko kods atgriezīs, izmanto lauku Izvade un GraphQL shēmas definīcijas valodu (SDL). Atbalstītie izvades veidi ir String, Int, Float, Boolean un ID, kas atbilst SDL specifikācijai par to, kā norādīt obligātos laukus, sarakstus un pielāgotos datus.

Piemēram, lai atgrieztu virkni ar nosaukumu giftMessage un skaitli ar nosaukumu totalGifts:

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

Komentāri nav obligāti, taču tie tiks izmantoti, lai aprakstītu datus Flow lietotāja saskarnē. Lai izvadītu šos datus JavaScript kodā, atgriez objektu, kas atbilst veidam:

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

Vari arī definēt pielāgotu veidu, lai atgrieztu sarežģītākus datus. Piemēram, lai atgrieztu veidu ar nosaukumu Gift, kas ietver virkni ar nosaukumu message un skaitli ar nosaukumu 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!
}

Lai piekļūtu šiem datiem soļos, kas seko šai darbībai, izmanto mainīgo ar nosaukumu Izpildīt kodu, kura veids tiks noteikts atbilstoši Output shēmai, kuru definēji darbības Izpildīt kodu konfigurācijā. Šo mainīgo vari izmantot gan nosacījumos, gan darbībās.

Console.log

Vari izmantot console.log, lai izvadītu datus uz Flow darbplūsmas izpildes žurnālu problēmu novēršanas nolūkos. Izvade būs redzama darbplūsmas izpildes žurnālā. Piemēram, tālāk minētais ir derīgs:

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

Darbībā Izpildīt kodu nevari izmantot console.info, console.error vai citas funkcijas.

Piemērs

Koda darbības piemērus var atrast Flow piemēru krātuvē.

Ierobežojumi

Darbībai Izpildīt kodu ir šādi ierobežojumi:

  • Darbība Izpildīt kodu atbalsta ECMA2020 JavaScript. Tā neatbalsta NodeJS vai CommonJS API vai moduļu importēšanu.
  • Tavs kods nevar veikt HTTP zvanus (fetch).
  • Nejaušas un uz pulksteni balstītas funkcijas nevar izmantot. Datuma datus, piemēram, scheduledAt vai createdAt, var nodot kā ievadi.
  • Console.log neizvada datus pārlūkprogrammas konsolē.
  • Lai ietaupītu derīgās slodzes apjomu, izvades datu derīgā slodze atgriež tikai tos mainīgos, kas tiek izmantoti turpmākajos soļos.
  • Darbībā Izpildīt kodu nevari tieši pievienot metalauka aizstājvārdu. Lai to paveiktu, skati šīs lapas sadaļu Metalauki.

Turklāt tiek piemēroti šādi ierobežojumi:

  • Ievades datu vaicājums ir ierobežots līdz 5000 rakstzīmēm.
  • Izvades datu shēma ir ierobežota līdz 5000 rakstzīmēm.
  • Izvades datu derīgā slodze un Console.log izvade ir ierobežota līdz kopējam apjomam 50 KB.
  • Kods nedrīkst būt garāks par 50 000 rakstzīmēm.
  • Kopējais izpildes ilgums ir ierobežots līdz 5 sekundēm.
  • Atmiņas lietojums ir ierobežots līdz 10 MB.

Veidnes

Pievieno bezmaksas (100 % atlaide) vienumu jauniem pasūtījumiem

Šī veidne pievieno bezmaksas vienumu ar atlaidi jauniem pasūtījumiem, ja vienums ir krājumos. Tā pārbauda krājumus, piemēro 100 % atlaidi un atjaunina pasūtījumu, neinformējot klientu. Šī darbplūsma var palīdzēt pievienot automatizāciju šādiem scenārijiem:

  • Uzlabo klientu apmierinātību, pasūtījumā iekļaujot pārsteiguma bezmaksas vienumu.
  • Reklamē jaunus vai mazāk zināmus produktus, pievienojot tos pasūtījumos kā bezmaksas paraugus.
  • Vienkāršo akcijas, automatizējot bezmaksas vienumu iekļaušanu un atlaižu piemērošanu.

Skatīt veidni

Atcelt neaktīvās atgriešanas

Automātiski atcel atgriešanu, par kuru noteiktā laika periodā nav atmaksāta nauda vai nav papildināti krājumi. Skatīt veidni

Konvertēt tagus ar prefiksu uz produkta metalauku, izmantojot darbību Izpildīt kodu

Šī darbplūsma ņems tagus, kas sākas ar prefiksu, piemēram, “color:”, un pievienos tos produkta metalauku sarakstam. Tā izmanto darbību Izpildīt kodu, lai parsētu tagus un esošos vienumus metalauku sarakstā. Darbplūsma tiek izpildīta, kad izveido produktu, bet to var manuāli izpildīt esošiem produktiem. Skatīt veidni

Sūtīt paziņojumu, kad klients pasūta vairākus viena produkta variantus

Saņem e-pasta paziņojumu, kad klients pasūta vairākus viena produkta variantus. Skatīt veidni

Sūtīt paziņojumu, kad pasūtījumā ir komplekts

Šī darbplūsma tiek sākta, kad ir izveidots pasūtījums, un tajā tiek pārbaudīts, vai kāds no pasūtījumā iekļautajiem produktiem ir iegādāts kā daļa no komplekta. Ja tāds tiek atrasts, tiek nosūtīts iekšējs e-pasts ar informāciju par komplektu. Papildus vari izmantot šo darbplūsmu kā sākumpunktu jebkuram lietošanas gadījumam, kad jānosaka komplekta esamība pasūtījumā. Skatīt veidni

Pievienot tagus pasūtījumiem ar saistīto UTM kampaņu

Pievieno tagus pasūtījumiem, kas satur jebkuru saistīto UTM kampaņu nosaukumus. Skatīt veidni