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.
| Lauks | Apraksts |
|---|---|
| Ievade | Obligāts. GraphQL vaicājums, lai izmantotu datus no iepriekšējām darbībām kā ievadi darbībai Palaist kodu. |
| Izvade | Obligāts. Datu, ko atgriež darbība, attēlojums, kas definēts GraphQL shēmas definēšanas valodā (SDL). |
| Kods | Obligā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,
scheduledAtvaicreatedAt, 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.
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