Pokreni kôd
Radnja Pokreni kôd izvršava jezik JavaScript. Podatke iz prethodnih koraka u tijeku rada možete proslijediti kao ulaz u radnju Pokreni kôd te vratiti vrijednosti koje će se upotrebljavati u sljedećim koracima.
Na ovoj stranici
Polja
Radnja Pokreni kôd sadrži sljedeća polja.
| Polje | Opis |
|---|---|
| Ulaz | Obavezno. GraphQL upit za upotrebu podataka iz prethodnih koraka kao ulaza za radnju Pokreni kôd. |
| Izlaz | Obavezno. Prikaz podataka koje će radnja vratiti, definiran u GraphQL-ovom jeziku za definiciju sheme (SDL-u). |
| Kôd | Obavezno. JavaScript koji će radnja Pokreni kôd izvršiti. |
Ulazni podaci
Ulazni podaci mogu se proslijediti iz koraka koji se odvijaju prije radnje Pokreni kôd. Da biste uključili te podatke, možete napisati GraphQL upit u polju Ulaz. Podaci koje upit vrati bit će dostupni kao argument input za funkciju označenu s export default, prema konvenciji nazvanom main.
Ulazni upit služi za podatke okruženja Flow, a nije upit prema usluzi Shopify Admin API. Stoga u ulazne podatke ne možete umetnuti Shopifyjev upit. Dodatno, Flow obrađuje edges i nodes u upitu pa njih ili druge sintakse označavanja stranica ne morate dodavati u upit.
Primjer ulaza kojim se dohvaćaju napomena o narudžbi i naziv stavke:
{
order {
note
lineItems {
title
}
}
}Ovi se podaci pretvaraju u varijablu input koja se može upotrijebiti u kodu:
export default function main(input) {
// input.order.note
// input.order.lineItems[0].title
}Ulazni podaci mogu se i destrukturirati u potpisu funkcije:
export default function main({order}) {
// order.note
// order.lineItems[0].title
}Metapolja
Da biste pristupili vrijednostima pojedinačnih metapolja u radnji Pokreni kod, najprije morate dodati metapolje podacima okruženja u aplikaciji Flow. To se može učiniti u bilo kojoj radnji ili uvjetu osim u radnji Pokreni kod. Primjerice, možete dodati radnju Zabilježi izlazne podatke, a zatim slijediti upute za dodavanje metapolja.
Nakon dodavanja metapolja okruženju tijeka rada, možete mu pristupiti u radnji Pokreni kod. Primjerice, pretpostavimo da ste dodali metapolje narudžbe pod pseudonimom giftMessage. Tada mu možete pristupiti u upitu za ulazne podatke:
{
order {
giftMessage {
value
}
}
}Izlazni podaci
Radnja Pokreni kod može vratiti prilagođene podatke. Za definiranje vrste podataka koju će kod vratiti upotrijebite polje Izlazni podaci (Output) i GraphQL-ov jezik za definiranje sheme (SDL). Podržane su izlazne vrste String, Int, Float, Boolean i ID koje prate specifikaciju SDL za određivanje obaveznih polja, popisa i prilagođenih podataka.
Primjerice, za povrat niza s nazivom giftMessage i broja s nazivom totalGifts:
type Output {
"The message to include in the gift"
giftMessage: String!
"The total number of gifts"
totalGifts: Int!
}Komentari su neobavezni, ali poslužit će za opis podataka u korisničkom sučelju aplikacije Flow. Da biste izveli te podatke u JavaScript kodu, vratite objekt koji odgovara vrsti:
export default function main(input) {
// your code
return {
giftMessage: 'Hello',
totalGifts: 1,
};
}Možete i definirati prilagođenu vrstu za povrat složenijih podataka. Primjerice, za povrat vrste pod nazivom Gift koja sadrži niz s nazivom message i broj s 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 tim podacima u koracima koji slijede ovu radnju, upotrijebite varijablu pod nazivom Pokreni kod, koja će biti klasificirana u skladu sa shemom Output (Izlazni podaci) koju definirate u konfiguraciji radnje Pokreni kod. Tu varijablu možete upotrijebiti u uvjetima i radnjama.
Console.log
Možete upotrijebiti console.log za izvoz podataka u zapisnik o pokretanju tijeka rada aplikacije Flow u svrhu rješavanja problema. Izlazni podaci bit će vidljivi u zapisniku o pokretanju tijeka rada. Vrijedi, primjerice, sljedeć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,
};
}U radnji Pokreni kod ne možete upotrebljavati console.info, console.error i druge funkcije.
Primjer
Primjere za ovu radnju s kodom možete pronaći u repozitoriju primjera za aplikaciju Flow.
Ograničenja
Radnja Pokreni kod ima sljedeća ograničenja:
- Radnja Pokreni kod podržava ECMA2020 JavaScript. Ne podržava API-je NodeJS ili CommonJS niti uvoz modula.
- Vaš kod ne može izvršavati HTTP pozive (
fetch). - Nasumične funkcije i funkcije temeljene na satu ne mogu se upotrebljavati. Podaci o datumu, kao što su
scheduledAtilicreatedAt, mogu se proslijediti kao ulazni podaci. - Console.log se ne bilježi u konzoli preglednika.
- Radi uštede na veličini opterećenja korisnim podacima, opterećenje izlaznim podacima vraća samo varijable upotrijebljene u daljnjim koracima.
- Ne možete dodati pseudonim metapolja izravno u radnju Pokreni kod. Da biste to učinili, pregledajte odjeljak Metapolja na ovoj stranici.
Osim toga, primjenjuju se sljedeća ograničenja:
- Upit za ulazne podatke ograničen je na 5 000 znakova.
- Shema izlaznih podataka ograničena je na 5 000 znakova.
- Izlazni korisni podaci i izlaz za Console.log zajedno su ograničeni na 50 KB.
- Kod ne može biti dulji od 50 000 znakova.
- Ukupno trajanje izvršavanja ograničeno je na 5 sekundi.
- Upotreba memorije ograničena je na 10 MB.
Predlošci
Dodaj besplatnu stavku (popust od 100 %) novim narudžbama
Ovaj predložak dodaje besplatnu stavku s popustom novim narudžbama kada je stavka na zalihi. Provjerava zalihe, primjenjuje popust od 100 % i ažurira narudžbu bez obavještavanja korisnika. Ovaj tijek rada može pomoći u dodavanju automatizacije u sljedeće scenarije:
- Povećanje zadovoljstva korisnika uključivanjem besplatne stavke iznenađenja u narudžbu.
- Promoviranje novih ili manje poznatih proizvoda dodavanjem njihovih besplatnih uzoraka u narudžbe.
- Pojednostavljivanje promocija automatizacijom uključivanja besplatnih stavki i primjene popusta.
Otkaži neaktivne povrate
Automatski otkazuje povrat koji u određenom razdoblju nije refundiran ili čije stavke nisu vraćene na zalihu. Prikaži predložak
Konvertiraj oznake s prefiksom u metapolje proizvoda pomoću radnje Pokreni kod
Ovaj tijek rada uzima oznake koje počinju prefiksom kao što je 'color:' i dodaje ih na popis metapolja proizvoda. Upotrebljava radnju Pokreni kod za raščlanjivanje oznaka i postojećih stavki na popisu metapolja. Tijek rada pokreće se prilikom izrade proizvoda, ali se može i ručno pokrenuti na postojećim proizvodima. Prikaži predložak
Pošalji obavijest kada korisnik naruči više varijanti proizvoda
Primite obavijest e-poštom kada korisnik naruči više varijanti istog proizvoda. Prikaži predložak
Pošalji obavijest kada narudžba sadrži paket
Ovaj tijek rada započinje pri izradi narudžbe i provjerava je li neki od proizvoda u narudžbi kupljen kao dio paketa. Ako se pronađe takav proizvod, šalje se interna e-poruka s pojedinostima o paketu. Osim toga, ovaj tijek rada možete upotrijebiti kao polazište za bilo koji slučaj upotrebe u kojem treba otkriti prisutnost paketa u narudžbi. Prikaži predložak
Označi narudžbe povezanom kampanjom UTM
Dodaje oznake narudžbama koje sadrže nazive povezanih kampanja UTM. Prikaži predložak