Pokreni kôd
Akcija Pokreni kôd izvršava JavaScript. Možete proslediti podatke iz prethodnih koraka u toku posla kao ulaz u akciju Pokreni kôd i vratiti vrednosti koje će se koristiti u narednim koracima.
Na ovoj stranici
Polja
Akcija Pokreni kôd sadrži sledeća polja.
| Polje | Opis |
|---|---|
| Ulaz | Obavezno. GraphQL upit za korišćenje podataka iz prethodnih koraka kao ulaza u akciju Pokreni kôd. |
| Izlaz | Obavezno. Prikaz podataka koje akcija vraća, definisanih u GraphQL-ovom jeziku za definisanje šeme (SDL). |
| Kôd | Obavezno. JavaScript koji će akcija Pokreni kôd izvršiti. |
Ulazni podaci
Ulazni podaci se mogu proslediti iz koraka koji se dešavaju pre akcije Pokreni kôd. Da biste uključili ove podatke, možete da napišete GraphQL upit u polju Ulaz. Podaci koji se vrate iz upita biće dostupni kao argument input za funkciju označenu sa export default, koja se prema konvenciji naziva main.
Ulazni upit je upit za podatke o Flow okruženju, a ne upit za Shopify Admin API. Zato ne možete da umetnete Shopify upit u ulazne podatke. Pored toga, Flow obrađuje komponente edges i nodes u upitu, tako da ne morate da ih dodajete, kao ni drugu sintaksu za straničenje u upit.
Primer ulaza koji dobija napomenu porudžbine i naslov stavke:
{
order {
note
lineItems {
title
}
}
}Ovi podaci se konvertuju u promenljivu input koja se može koristiti u kôdu:
export default function main(input) {
// input.order.note
// input.order.lineItems[0].title
}Ulazi se takođe mogu destrukturirati u potpisu funkcije:
export default function main({order}) {
// order.note
// order.lineItems[0].title
}Metapolja
Da biste pristupili vrednostima pojedinačnog metapolja u akciji „Pokreni kôd”, prvo morate da dodate metapolje u Flow podatke okruženja. Ovo se može uraditi u bilo kojoj akciji ili uslovu osim u akciji „Pokreni kôd”. Na primer, možete da dodate akciju Evidentiraj izlaz, a zatim da pratite uputstva da biste dodali metapolje.
Nakon što se metapolje doda u okruženje za tok posla, možete mu pristupiti u radnji Pokreni kod. Na primer, pretpostavimo da ste dodali metapolje porudžbine sa pseudonimom giftMessage. Zatim mu možete pristupiti u svom ulaznom upitu:
{
order {
giftMessage {
value
}
}
}Izlazni podaci
Radnja Pokreni kod može da vrati prilagođene podatke. Da biste definisali tip podataka koje će kod vratiti, koristite polje Izlaz i GraphQL-ov Jezik za definiciju šeme (SDL). Podržani izlazni tipovi su String, Int, Float, Boolean i ID, koji prate SDL specifikaciju o načinu navođenja obaveznih polja, lista i prilagođenih podataka.
Na primer, da biste vratili string sa nazivom giftMessage i broj sa nazivom totalGifts:
type Output {
"The message to include in the gift"
giftMessage: String!
"The total number of gifts"
totalGifts: Int!
}Komentari su opcionalni, ali će se koristiti za opis podataka u korisničkom interfejsu za Flow. Za izlaz ovih podataka u JavaScript kodu vratite objekat koji odgovara tipu:
export default function main(input) {
// your code
return {
giftMessage: 'Hello',
totalGifts: 1,
};
}Možete i definisati prilagođeni tip da biste vratili složenije podatke. Na primer, da biste vratili tip sa nazivom Gift koji sadrži string sa nazivom message i broj sa 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 ovim podacima u koracima koji slede posle ove radnje, koristite promenljivu pod nazivom Pokreni kod, koja će biti tipizirana prema Output šemi koju definišete u podešavanjima radnje Pokreni kod. Ovu promenljivu možete koristiti i u uslovima i u radnjama.
Console.log
Možete koristiti console.log za izlaz podataka u evidenciji izvršavanja toka posla u aplikaciji Flow radi rešavanja problema. Izlaz će biti vidljiv u evidenciji o izvršavanju za tok posla. Na primer, sledeće vrednosti su važeć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,
};
}Ne možete da koristite console.info, console.error ili druge funkcije u radnji Pokreni kod.
Primer
Primere za radnju koda možete pronaći u repozitorijumu primera za Flow.
Ograničenja
Radnja Pokreni kod ima sledeća ograničenja:
- Radnja Pokreni kod podržava ECMA2020 JavaScript. Ne podržava NodeJS ili CommonJS API-je, kao ni uvoz modula.
- Vaš kod ne može da obavlja HTTP pozive (
fetch). - Nasumične funkcije i funkcije zasnovane na satu ne mogu da se koriste. Podaci o datumu, kao što su
scheduledAtilicreatedAt, mogu se proslediti kao ulazni podaci. - Console.log se ne evidentira u konzoli pregledača.
- Da bi se uštedelo na veličini korisnog tereta, korisni teret izlaznih podataka vraća samo promenljive koje se koriste u daljim koracima.
- Ne možete da dodate pseudonim metapolja direktno u radnji Pokreni kod. Da biste to postigli, pregledajte odeljak Metapolja na ovoj stranici.
Pored toga, primenjuju se i sledeća ograničenja:
- Upit za ulazne podatke je ograničen na 5000 znakova.
- Šema izlaznih podataka je ograničena na 5000 znakova.
- Korisni teret izlaznih podataka i izlaz za Console.log zajedno su ograničeni na 50 KB.
- Kod ne može da bude duži od 50.000 znakova.
- Ukupno trajanje izvršavanja ograničeno je na 5 sekundi.
- Potrošnja memorije je ograničena na 10 MB.
Šabloni
Dodaj besplatnu stavku (sa popustom od 100%) u nove porudžbine
Ovaj šablon dodaje besplatnu stavku sa popustom u nove porudžbine kada je ta stavka na zalihama. On proverava zalihe, primenjuje popust od 100% i ažurira porudžbinu bez obaveštavanja kupca. Ovaj tok posla može da pomogne u dodavanju automatizacije u sledeće scenarije:
- Poboljšanje zadovoljstva kupaca uključivanjem besplatne stavke iznenađenja u porudžbinu.
- Promovisanje novih ili manje poznatih proizvoda dodavanjem kao besplatnih uzoraka u porudžbine.
- Pojednostavljivanje promocija putem automatizacije uključivanja besplatnih stavki sa popustom.
Otkaži neaktivne povraćaje
Automatski otkažite povraćaj za koji sredstva nisu refundirana ili čije zalihe nisu popunjene u određenom vremenskom periodu. Prikaži šablon
Konvertujte oznake sa prefiksom u metapolje proizvoda pomoću radnje Pokreni kod
Ovaj tok posla će preuzeti oznake koje počinju prefiksom kao što je „color:“ i dodati ih na listu metapolja proizvoda. Koristi radnju Pokreni kod da parsira oznake i postojeće stavke na listi metapolja. Tok posla se izvršava pri kreiranju proizvoda, ali se može ručno izvršavati na postojećim proizvodima. Prikaži šablon
Pošalji obaveštenje kada kupac naruči više varijanti istog proizvoda
Primite imejl obaveštenje kada kupac naruči više varijanti istog proizvoda. Prikaži šablon
Pošalji obaveštenje kada porudžbina sadrži paket
Ovaj tok posla počinje pri kreiranju porudžbine i proverava da li su neki od proizvoda u porudžbini kupljeni u sklopu paketa. Ako se pronađu, šalje se interni imejl sa detaljima o paketu. Dodatno, ovaj tok posla možete koristiti kao polaznu tačku za bilo koji slučaj upotrebe koji zahteva otkrivanje prisustva paketa unutar porudžbine. Prikaži šablon
Označi porudžbine povezanom UTM kampanjom
Dodaje oznake porudžbinama koje sadrže imena svih povezanih UTM kampanja. Prikaži šablon