Käivita kood
Toiming Käivita kood käivitab JavaScripti. Saad töövoo eelmistest etappidest pärit andmeid toimingu Käivita kood sisendina edastada ja tagastada väärtusi, mida saab kasutada järgmistes etappides.
Väljad
Toiming Käivita kood sisaldab järgmisi välju.
| Väli | Kirjeldus |
|---|---|
| Sisend | Nõutav. GraphQL-i päring, et kasutada eelmistest etappidest pärit andmeid toimingu Käivita kood sisendina. |
| Väljund | Nõutav. GraphQL-i skeemi defineerimiskeeles (SDL) määratletud andmete esitus, mille toiming peab tagastama. |
| Kood | Nõutav. JavaScript, mille toiming Käivita kood käivitab. |
Sisendandmed
Sisendandmeid saab edastada etappidest, mis toimuvad enne toimingut Käivita kood. Nende andmete kaasamiseks saad kirjutada GraphQL-i päringu väljale Sisend. Päringust tagastatud andmed on kättesaadavad argumendina input funktsiooni puhul, mis on tähistatud märkega export default ja mille nimetus on tavapäraselt main.
Sisendpäring on päring rakenduse Flow keskkonna andmetele, mitte päring liidesele Shopify Admin API. Seetõttu ei saa sa sisendandmetesse lisada Shopify päringut. Lisaks haldab Flow päringus olevaid välju edges ja nodes, mistõttu ei pea sa neid ega muid lehekülgede süntakseid oma päringule lisama.
Näitlik sisend, mis hangib tellimuse märkuse ja reaüksuse pealkirja:
{
order {
note
lineItems {
title
}
}
}Need andmed teisendatakse muutujaks input, mida saab koodis kasutada:
export default function main(input) {
// input.order.note
// input.order.lineItems[0].title
}Funktsiooni signatuuris saab sisendeid ka destruktureerida:
export default function main({order}) {
// order.note
// order.lineItems[0].title
}Metaväljad
Ühe metavälja väärtustele koodi käivitamise toimingus juurdepääsuks pead metavälja esmalt lisama rakenduse Flow keskkonnaandmetesse. Seda saab teha igas toimingus või tingimuses, v.a toimingus Käivita kood. Saad näiteks lisada toimingu Logi väljund ja seejärel järgida metavälja lisamiseks esitatud juhiseid.
Pärast metavälja lisamist töövoo keskkonda on see kättesaadav tegevuses Käivita kood. Oletame näiteks, et lisasid tellimuse metavälja aliasega giftMessage. Seejärel saad sellele oma sisendpäringus juurde pääseda järgmiselt:
{
order {
giftMessage {
value
}
}
}Väljundandmed
Tegevus Käivita kood võib tagastada kohandatud andmeid. Koodi tagastatavate andmete tüübi määramiseks kasuta välja Väljund ja GraphQL-i skeemidefitsioonikeelt (SDL). Toetatud väljundtüübid on String, Int, Float, Boolean ja ID, mis järgivad SDL-i spetsifikatsiooni selle kohta, kuidas määrata kohustuslikke välju, loendeid ja kohandatud andmeid.
Näiteks, et tagastada sõne nimega giftMessage ja arv nimega totalGifts:
type Output {
"The message to include in the gift"
giftMessage: String!
"The total number of gifts"
totalGifts: Int!
}Kommentaarid on valikulised, kuid neid kasutatakse andmete kirjeldamiseks Flow' kasutajaliideses. Nende andmete väljastamiseks JavaScripti koodis tagasta tüübile vastav objekt:
export default function main(input) {
// your code
return {
giftMessage: 'Hello',
totalGifts: 1,
};
}Keerukamate andmete tagastamiseks võid määratleda ka kohandatud tüübi. Näiteks, et tagastada tüüp nimega Gift, mis sisaldab sõnet nimega message ja arvu nimega 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!
}Nendele andmetele juurdepääsuks seda tegevust järgivates sammudes kasuta muutujat nimega Käivita kood, mis on sisestatud vastavalt Output-skeemile, mille määratled tegevuse Käivita kood konfiguratsioonis. Seda muutujat saad kasutada nii tingimustes kui ka tegevustes.
Console.log
Tõrkeotsingu eesmärgil andmete väljastamiseks Flow' töövoo käivituslogisse saad kasutada koodi console.log. Väljundit kuvatakse töövoo käivituslogis. Näiteks sobivad järgmised koodid:
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,
};
}Tegevuses Käivita kood ei saa kasutada funktsioone console.info, console.error ega muid sarnaseid funktsioone.
Näide
Kooditegevuse näited leiad Flow' näidete hoidlast.
Piirangud
Tegevusel Käivita kood on järgmised piirangud:
- Tegevus Käivita kood toetab ECMA2020 JavaScripti. See ei toeta NodeJS-i ega CommonJS-i API-sid ega moodulite importimist.
- Sinu kood ei saa teha HTTP-päringuid (
fetch). - Juhuslikke ja kellapõhiseid funktsioone ei saa kasutada. Kuupäevaandmeid, näiteks
scheduledAtvõicreatedAt, saab edastada sisendina. - Console.log ei logi brauseri konsooli.
- Et säästa andmemahtu, tagastab väljundandmete kasulik koormus ainult edasistes sammudes kasutatavaid muutujaid.
- Sa ei saa lisada metavälja aliast otse tegevusse Käivita kood. Selle tegemiseks vaata selle lehe jaotist Metaväljad.
Lisaks kehtivad järgmised piirangud:
- Sisendandmete päring on piiratud 5000 tähemärgiga.
- Väljundandmete skeem on piiratud 5000 tähemärgiga.
- Väljundandmete maht ja Console.logi väljund on kokku piiratud 50 KB-ga.
- Kood ei saa olla pikem kui 50 000 tähemärki.
- Käivitamise kogukestus on piiratud 5 sekundiga.
- Mälukasutus on piiratud 10 MB-ga.
Mallid
Tasuta (100% allahindlusega) üksuse lisamine uutele tellimustele
See mall lisab uutele tellimustele tasuta, allahinnatud üksuse, kui see üksus on laos olemas. See kontrollib laoseisu, rakendab 100% allahindlust ja uuendab tellimust klienti teavitamata. See töövoog aitab automatiseerida järgmisi stsenaariume:
- Suurenda klientide rahulolu, lisades nende tellimusele üllatusliku tasuta üksuse.
- Reklaami uusi või vähem tuntud tooteid, lisades need tellimustele tasuta proovidena.
- Tõhusta kampaaniate haldamist, automatiseerides tasuta üksuste lisamist ja allahindluste rakendamist.
Tühista mitteaktiivsed tagastused
Tühista automaatselt tagastus, mille eest pole teatud aja jooksul raha tagasi makstud või mille varusid pole täiendatud. Vaata malli
Teisenda eesliitega sildid toote metaväljaks tegevuse Käivita kood abil
See töövoog võtab sildid, mis algavad eesliitega (näiteks „color:“), ja lisab need toote metaväljade loendisse. See kasutab tegevust Käivita kood siltide ja metaväljade loendis olevate üksuste parsimiseks. Töövoog käivitatakse toote loomisel, kuid seda saab olemasolevate toodete puhul ka käsitsi käivitada. Vaata malli
Teavituse saatmine, kui klient tellib toote mitu varianti
Saa e-kirjaga teavitus, kui klient tellib sama toote mitu varianti. Vaata malli
Teavituse saatmine, kui tellimus sisaldab komplekti
See töövoog algab tellimuse loomisel ja kontrollib, kas mõni tellimuses olevatest toodetest osteti komplekti osana. Kui leitakse selliseid tooteid, saadetakse sisemine e-kiri koos komplekti üksikasjadega. Lisaks saad seda töövoogu kasutada lähtepunktina igas olukorras, kus on vaja tuvastada komplekti olemasolu tellimuses. Vaata malli
Sildista tellimused seotud UTM-i kampaaniaga
Lisab sildid tellimustele, mis sisaldavad mis tahes seotud UTM-i kampaaniate nimesid. Vaata malli