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.

Exekutatu kodea ekintzan erabiltzen diren eremuak.
EremuaDeskribapena
SarreraBeharrezkoa. Aurreko urratsetako datuak Exekutatu kodea ekintzan sarrera gisa erabiltzeko GraphQL kontsulta.
IrteeraBeharrezkoa. Ekintzak itzuliko dituen datuen irudikapena, GraphQL-en eskema definitzeko lengoaian (SDL) definitua.
KodeaBeharrezkoa. 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 scheduledAt edo createdAt, 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.

Ikusi txantiloia

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