Suorita koodi

Toiminto Suorita koodi suorittaa JavaScript-koodia. Voit välittää tietoja työnkulun aiemmista vaiheista syötteenä Suorita koodi -toimintoon ja palauttaa arvoja käytettäväksi myöhemmissä vaiheissa.

Kentät

Toiminto Suorita koodi sisältää seuraavat kentät.

Suorita koodi -toiminnossa käytetyt kentät.
KenttäKuvaus
SyötePakollinen. GraphQL-kysely, jolla voit käyttää tietoja aiemmista vaiheista syötteenä Suorita koodi -toiminnossa.
TulostePakollinen. Toiminnon palauttamien tietojen esitysmuoto, joka on määritetty GraphQL:n skeemanmäärittelykielellä (SDL).
KoodiPakollinen. JavaScript-koodi, jonka Suorita koodi -toiminto suorittaa.

Syötetiedot

Syötetietoja voidaan välittää vaiheista, jotka tapahtuvat ennen Suorita koodi -toimintoa. Voit sisällyttää nämä tiedot kirjoittamalla GraphQL-kyselyn Syöte-kenttään. Kyselystä palautetut tiedot ovat saatavilla funktion input-argumenttina, joka on merkitty export default -komennolla ja jota kutsutaan yleensä nimellä main.

Syötekysely on kysely Flown ympäristötiedoille, ei Shopify Admin API:n kysely. Siksi et voi lisätä Shopify-kyselyä syötetietoihin. Lisäksi Flow käsittelee kyselyn edges- ja nodes-arvot, joten sinun ei tarvitse lisätä niitä tai muuta sivutussyntaksia kyselyysi.

Esimerkki syötteestä, joka hakee tilauksen huomautuksen ja rivikohdan nimen:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Nämä tiedot muunnetaan input-muuttujaksi, jota voidaan käyttää koodissa:

export default function main(input) {
  // input.order.note
  // input.order.lineItems[0].title
}

Syötteet voidaan myös hajottaa funktion allekirjoituksessa:

export default function main({order}) {
  // order.note
  // order.lineItems[0].title
}

Metakentät

Jotta voit käyttää yksittäisiä metakentän arvoja Suorita koodi -toiminnossa, sinun on ensin lisättävä metakenttä Flown ympäristötietoihin. Tämä voidaan tehdä missä tahansa muussa toiminnossa tai ehdossa kuin Suorita koodi -toiminnossa. Voit esimerkiksi lisätä Kirjaa tuloste -toiminnon ja lisätä metakentän ohjeiden mukaisesti.

Kun metakenttä on lisätty työnkulun ympäristöön, voit käyttää sitä Suorita koodi -toiminnossa. Oletetaan esimerkiksi, että olet lisännyt tilauksen metakentän, jonka aliasnimi on giftMessage. Voit käyttää sitä syötekyselyssäsi seuraavasti:

{
  order {
    giftMessage {
      value
    }
  }
}

Tulostiedot

Suorita koodi -toiminto voi palauttaa mukautettua dataa. Voit määrittää koodin palauttaman datan tyypin Tuloste-kentässä ja GraphQL:n Schema definition languagella (SDL). Tuettuja tulostetyyppejä ovat String, Int, Float, Boolean ja ID, jotka noudattavat SDL-määritystä vaadittujen kenttien, luetteloiden ja mukautetun datan määrittämisessä.

Esimerkiksi, jos haluat palauttaa merkkijonon nimeltä giftMessage ja numeron nimeltä totalGifts:

type Output {
  "The message to include in the gift"
  giftMessage: String!
  "The total number of gifts"
  totalGifts: Int!
}

Kommentit ovat valinnaisia, mutta niitä käytetään kuvaamaan dataa Flown käyttöliittymässä. Jos haluat tulostaa tämän datan JavaScript-koodissa, palauta tyyppiä vastaava objekti:

export default function main(input) {
  // your code
  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

Voit myös määrittää mukautetun tyypin palauttaaksesi monimutkaisempaa dataa. Esimerkiksi, jos haluat palauttaa tyypin nimeltä Gift, joka sisältää merkkijonon nimeltä message ja numeron nimeltä 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!
}

Pääset käsiksi tähän dataan tätä toimintoa seuraavissa vaiheissa käyttämällä muuttujaa nimeltä Suorita koodi. Muuttujan tyyppi määritetään Suorita koodi -toiminnon asetuksissa määrittämäsi Tuloste-skeeman mukaan. Voit käyttää tätä muuttujaa sekä ehdoissa että toiminnoissa.

Console.log

Voit käyttää console.log-komentoa datan tulostamiseen Flown työnkulun suorituslokiin vianmääritystä varten. Tuloste näkyy työnkulun suorituslokissa. Esimerkiksi seuraavat ovat kelvollisia:

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,
  };
}

Et voi käyttää console.info-, console.error- tai muita funktioita Suorita koodi -toiminnossa.

Esimerkki

Esimerkkejä kooditoiminnosta löytyy Flown esimerkkivarastosta.

Rajoitukset

Suorita koodi -toiminnolla on seuraavat rajoitukset:

  • Suorita koodi -toiminto tukee ECMA2020 JavaScriptiä. Se ei tue NodeJS- tai CommonJS-APIeja eikä moduulien tuontia.
  • Koodisi ei voi tehdä HTTP-kutsuja (fetch).
  • Satunnaisia ja kelloon perustuvia funktioita ei voi käyttää. Päivämäärätietoja, kuten scheduledAt tai createdAt, voidaan välittää syötteenä.
  • Console.log ei kirjaa tietoja selaimen konsoliin.
  • Hyötykuorman koon säästämiseksi tulostedatan hyötykuorma palauttaa vain myöhemmissä vaiheissa käytetyt muuttujat.
  • Et voi lisätä metakentän aliasta suoraan Suorita koodi -toiminnossa. Sen sijaan tutustu tämän sivun Metakentät-osioon.

Lisäksi seuraavat rajoitukset ovat voimassa:

  • Syöttödatakysely on rajoitettu 5 000 merkkiin.
  • Tulostedatan skeema on rajoitettu 5 000 merkkiin.
  • Tulostedatan hyötykuorma ja Console.log-tuloste on rajoitettu yhteensä 50 kilotavuun.
  • Koodi ei voi olla pidempi kuin 50 000 merkkiä.
  • Suorituksen kokonaiskesto on rajoitettu 5 sekuntiin.
  • Muistin käyttö on rajoitettu 10 megatavuun.

Mallit

Lisää ilmainen tuote (100 %:n alennus) uusiin tilauksiin

Tämä malli lisää uusiin tilauksiin ilmaisen, alennetun tuotteen, kun tuote on varastossa. Se tarkistaa varaston, lisää 100 %:n alennuksen ja päivittää tilauksen ilmoittamatta siitä asiakkaalle. Tämä työnkulku voi auttaa lisäämään automaatiota seuraaviin tilanteisiin:

  • Paranna asiakastyytyväisyyttä lisäämällä yllätyslahja asiakkaan tilaukseen.
  • Mainosta uusia tai vähemmän tunnettuja tuotteita lisäämällä niitä ilmaisina näytteinä tilauksiin.
  • Virtaviivaista kampanjoita automatisoimalla ilmaisten tuotteiden lisääminen ja alentaminen.

Tarkastele mallia

Peruuta passiiviset palautukset

Peruuttaa automaattisesti palautuksen, jolle ei ole tehty hyvitystä tai jota ei ole palautettu varastoon tietyn ajan kuluessa. Tarkastele mallia

Muunna etuliitteelliset tunnisteet tuotteen metakentäksi Suorita koodi -toiminnon avulla

Tämä työnkulku ottaa tunnisteet, jotka alkavat etuliitteellä, kuten 'color:', ja lisää ne tuotteen metakenttäluetteloon. Se käyttää Suorita koodi -toimintoa tunnisteiden ja metakenttäluettelon olemassa olevien kohteiden jäsentämiseen. Työnkulku suoritetaan, kun tuote luodaan, mutta se voidaan suorittaa manuaalisesti olemassa oleville tuotteille. Tarkastele mallia

Lähetä ilmoitus, kun asiakas tilaa tuotteesta useita versioita

Saat sähköposti-ilmoituksen, kun asiakas tilaa samasta tuotteesta useita versioita. Tarkastele mallia

Lähetä ilmoitus, kun tilaus sisältää tuotepaketin

Tämä työnkulku käynnistyy, kun tilaus luodaan, ja tarkistaa, onko jokin tilauksen tuotteista ostettu osana tuotepakettia. Jos tuotepaketti löytyy, lähetetään sisäinen sähköposti, jossa on tuotepaketin tiedot. Lisäksi voit käyttää tätä työnkulkua lähtökohtana kaikissa käyttötapauksissa, joissa on tarpeen havaita tuotepaketin olemassaolo tilauksessa. Tarkastele mallia

Lisää tilauksiin tunniste liittyvästä UTM-kampanjasta

Lisää tilauksiin tunnisteita, jotka sisältävät liittyvien UTM-kampanjoiden nimet. Tarkastele mallia