Exekutatu kodea
Exekutatu kodea ekintzak JavaScript exekutatzen du. Lan-fluxuko aurreko urratsetako datuak pasa ditzakezu Exekutatu kodea ekintzaren sarrera gisa, eta geroko urratsetan erabiliko diren balioak itzul ditzakezu.
Eremuak
Exekutatu kodea ekintzak honako eremu hauek ditu.
| Eremua | Deskribapena |
|---|---|
| Sarrera | Beharrezkoa. Aurreko urratsetako datuak Exekutatu kodea ekintzan sarrera gisa erabiltzeko GraphQL kontsulta. |
| Irteera | Beharrezkoa. Ekintzak itzuliko dituen datuen irudikapena, GraphQL-en eskema definitzeko lengoaian (SDL) definitua. |
| Kodea | Beharrezkoa. Exekutatu kodea ekintzak exekutatuko duen JavaScript-a. |
Sarrera-datuak
Sarrera-datuak Exekutatu kodea ekintzaren aurretik gertatzen diren urratsetatik pasa daitezke. Datu horiek sartzeko, GraphQL kontsulta bat idatz dezakezu Sarrera eremuan. Kontsultak itzulitako datuak export default marka duen (eta normalean main izena izaten duen) funtzioaren input argumentu gisa erabili ahal izango dira.
Sarrerako kontsulta Flow-ren inguruneko datuetarako kontsulta bat da, ez Shopify Admin APIrako kontsulta bat. Beraz, ezin duzu Shopify kontsultarik sartu sarrera-datuetan. Horrez gain, Flow-k kontsultako edges eta nodes kudeatzen ditu; horrenbestez, ez duzu kontsultan horiek edo bestelako orrikatze-sintaxirik gehitu behar.
Eskaera-ohar bat eta lerroko elementu baten izenburua lortzen dituen sarrera baten adibidea:
{
order {
note
lineItems {
title
}
}
}Datu horiek kodean erabil daitekeen input aldagai bihurtzen dira:
export default function main(input) {
// input.order.note
// input.order.lineItems[0].title
}Sarrerak funtzioaren sinaduran ere desegitura daitezke:
export default function main({order}) {
// order.note
// order.lineItems[0].title
}Metaeremuak
Exekutatu kodea ekintzan metaeremu bakarren balioetara sartzeko, lehenik metaeremua gehitu behar duzu Flow-ren inguruneko datuetan. Hori Exekutatu kodea ez den beste edozein ekintza edo baldintzatan egin daiteke. Adibidez, Erregistratu irteera ekintza gehi dezakezu, eta, ondoren, metaeremua gehitzeko argibideak jarraitu.
Metaeremu bat lan-fluxuaren ingurunean gehitu ondoren, Exekutatu kodea ekintzan erabil dezakezu. Adibidez, demagun giftMessage ezizena duen eskaera-metaeremu bat gehitu duzula. Orduan, sarrerako kontsultatik atzi dezakezu:
{
order {
giftMessage {
value
}
}
}Irteerako datuak
Exekutatu kodea ekintzak datu pertsonalizatuak itzul ditzake. Kodeak itzuliko dituen datu-mota definitzeko, erabili Irteera eremua eta GraphQL-ren Eskemak definitzeko lengoaia (SDL). Onartzen diren irteera-motak String, Int, Float, Boolean eta ID dira, zeinek nahitaezko eremuak, zerrendak eta datu pertsonalizatuak zehazteko SDL zehaztapena jarraitzen duten.
Adibidez, giftMessage izeneko katea eta totalGifts izeneko zenbakia itzultzeko:
type Output {
"The message to include in the gift"
giftMessage: String!
"The total number of gifts"
totalGifts: Int!
}Iruzkinak hautazkoak dira, baina Flow-ren erabiltzaile-interfazean datuak deskribatzeko erabiliko dira. Datu horiek JavaScript kodean itzultzeko, motarekin bat datorren objektu bat itzuli behar da:
export default function main(input) {
// your code
return {
giftMessage: 'Hello',
totalGifts: 1,
};
}Datu konplexuagoak itzultzeko mota pertsonalizatu bat ere defini dezakezu. Adibidez, message izeneko katea eta amount izeneko zenbakia dituen Gift izeneko mota bat itzultzeko:
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!
}Ekintza honen ondorengo urratsetan datu horiek erabiltzeko, erabili Exekutatu kodea izeneko aldagaia. Aldagai hori Exekutatu kodea ekintzaren konfigurazioan zehazten duzun Output eskemaren arabera tipifikatuko da. Aldagai hori baldintzetan zein ekintzetan erabil dezakezu.
Console.log
console.log erabil dezakezu arazoak konpontzeko datuak Flow-ren lan-fluxuaren exekuzio-erregistrora bidaltzeko. Irteera lan-fluxuaren exekuzio-erregistroan ikusi ahal izango da. Adibidez, honako hauek baliozkoak dira:
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,
};
}Ezin duzu console.info, console.error edo beste funtziorik erabili Exekutatu kodea ekintzan.
Adibidea
Kode-ekintzaren adibideak Flow-ren adibideen biltegian aurki daitezke.
Mugak
Exekutatu kodea ekintzak muga hauek ditu:
- Exekutatu kodea ekintzak ECMA2020 JavaScript onartzen du. Ez ditu onartzen NodeJS edo CommonJS APIak, ezta moduluak inportatzea ere.
- Zure kodeak ezin du HTTP deirik egin (
fetch). - Ezin dira ausazko funtzioak edo erlojuan oinarritutako funtzioak erabili. Data-datuak, hala nola
scheduledAtedocreatedAt, sarrera gisa pasa daitezke. - Console.log funtzioak ez du nabigatzailearen kontsolan erregistratzen.
- Karga erabilgarriaren tamaina aurrezteko, irteerako datuen kargak ondorengo urratsetan erabiltzen diren aldagaiak soilik itzultzen ditu.
- Ezin duzu metaeremuaren ezizenik zuzenean gehitu Exekutatu kodea ekintzan. Hori lortzeko, berrikusi orri honetako Metaeremuak atala.
Horrez gain, muga hauek ezartzen dira:
- Sarrerako datuen kontsulta 5.000 karakterera mugatuta dago.
- Irteerako datuen eskema 5.000 karakterera mugatuta dago.
- Irteerako datuen karga erabilgarria eta Console.log irteera biak batera 50 KB-ra mugatuta daude.
- Kodeak ezin du 50.000 karaktere baino gehiago izan.
- Exekuzioaren iraupen osoa 5 segundora mugatuta dago.
- Memoriaren erabilera 10 MB-ra mugatuta dago.
Txantiloiak
Gehitu doako produktua (% 100eko deskontuarekin) eskaera berrietan
Txantiloi honek doako eta deskontua duen produktu bat gehitzen du eskaera berrietan, produktua izakinetan dagoenean. Inbentarioa egiaztatzen du, % 100eko deskontua aplikatzen du eta eskaera eguneratzen du bezeroari jakinarazi gabe. Lan-fluxu honek egoera hauek automatizatzen lagun dezake:
- Bezeroen gogobetetasuna hobetzea euren eskaeran ustekabeko doako produktu bat sartuta.
- Produktu berriak edo ezezagunagoak sustatzea, eskaeretan doako lagin gisa gehituta.
- Sustapenak arintzea, doako produktuen inklusioa eta deskontua automatizatuta.
Utzi bertan behera itzulketa inaktiboak
Utzi bertan behera automatikoki denbora-tarte jakin batean itzuli edo berriro inbentariora sartu ez den itzulketa bat. Ikusi txantiloia
Bihurtu aurrizkidun etiketak produktu-metaeremu, Exekutatu kodea ekintza erabiliz
Lan-fluxu honek 'color:' bezalako aurrizki batekin hasten diren etiketak hartzen ditu eta produktu-metaeremuen zerrenda batera gehitzen ditu. Exekutatu kodea ekintza erabiltzen du etiketak eta metaeremuen zerrendan dauden produktuak analizatzeko. Lan-fluxua produktu bat sortzean exekutatzen da, baina lehendik dauden produktuetan ere exekuta daiteke eskuz. Ikusi txantiloia
Bidali jakinarazpena bezero batek produktu baten hainbat aldaera eskatzen dituenean
Jaso posta elektronikoko jakinarazpen bat bezero batek produktu beraren hainbat aldaera eskatzen dituenean. Ikusi txantiloia
Bidali jakinarazpena eskaerak sorta bat duenean
Lan-fluxu hau eskaera bat sortzean hasten da, eta eskaerako produkturen bat sorta baten barruan erosi den egiaztatzen du. Hala bada, barneko mezu elektroniko bat bidaltzen da sortaren xehetasunekin. Horrez gain, eskaera baten barruan sorta bat dagoela detektatu behar duen edozein erabilera-kasuren abiapuntu gisa erabil dezakezu lan-fluxu hau. Ikusi txantiloia
Etiketatu eskaerak lotutako UTM kanpainarekin
Lotutako UTM kanpainen izenak dituzten eskaerei etiketak gehitzen dizkie. Ikusi txantiloia