Suorita koodi

Suorita koodi -toiminto suorittaa JavaScriptin. Voit siirtää työnkulun edellisten vaiheiden tietoja Suorita koodi ‑toiminnon syötteeksi ja palauttaa seuraavissa vaiheissa käytettäviä arvoja.

Kentät

Suorita koodi ‑toiminto sisältää seuraavat kentät.

Suorita koodi -toiminnossa käytettävät kentät
KenttäKuvaus
SyöttääTämä on pakollinen. GraphQL-kysely, joka käyttää edellisten vaiheiden tietoja Suorita koodi -toiminnon syötteenä.
TulosTämä on pakollinen. Esitys toiminnon palauttamista tiedoista GraphQL Schema Definition Language (SDL) ‑kielellä.
KoodiTämä on pakollinen. JavaScript, jonka Suorita koodi -toiminto suorittaa.

Syötetiedot

Syötetiedot saatetaan ohittaa vaiheista, jotka tapahtuvat ennen Suorita koodi -toimintoa. Jos haluat sisällyttää nämä tiedot, voit kirjoittaa Syöte-kenttään GraphQL-kyselyn. Kyselyn palauttamat tiedot tulevat saataville input-argumenttina funktioon, jossa on export default -merkintä ja jonka nimi on yleisen käytännön mukaan main.

Syötekysely on Flow-ympäristötietojen kysely, ei Shopify Admin API -kysely. Sen vuoksi et voi lisätä Shopify-kyselyä syötetietoihin. Lisäksi Flow käsittelee kyselyn arvot edges ja nodes, joten sinun ei tarvitse lisätä niitä tai muuta sivutussyntaksia kyselyyn.

Esimerkkisyöte, joka noutaa tilausviestin 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 purkaa funktion allekirjoituksessa:

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

Metakentät

Jotta voit käyttää yksittäisen metakentän arvoja Suorita koodi -kentässä, sinun täytyy ensin lisätä metakenttä Flow'n ympäristötietoihin. Tämä tehdään missä tahansa muussa toimenpiteessä tai ehdossa paitsi Suorita koodi -kentässä. Voit esimerkiksi lisätä Lokitulos-toiminnon ja lisätä sen jälkeen metakentän noudattamalla ohjeita.

Kun metakenttä on lisätty työnkulun ympäristöön, voit käyttää sitä Run code -kentässä. Oletetaan esimerkiksi, että lisäsit Tilaus-metakentän, jonka nimi on giftMessage. Voit sen jälkeen käyttää sitä syötekyselyssäsi:

{
  order {
    giftMessage {
      value
    }
  }
}

Tulostiedot

Aja koodi -toiminto voi palauttaa mukautettuja tietoja. Voit määrittää koodin palauttaman tietotyypin käyttämällä Tuloste-kenttää ja GraphQL:n Schema Definition Language (SDL) -kieltä. Tuettuja tulostetyyppejä ovat String, Int, Float, Boolean ja ID, jotka noudattavat SDL-määritystä pakollisten kenttien, luettelojen ja mukautettujen tietojen määrityksessä.

Voit palauttaa merkkijonon giftMessage ja numeron totalGifts esimerkiksi näin:

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 Flow'n käyttöliittymän tietojen kuvailemiseen. Jos haluat nämä tiedot JavaScript-koodin tulosteena, palauta objekti, joka on samaa tyyppiä:

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

Voit myös määrittää mukautetun tyypin, jotta voit palauttaa monimutkaisempia tietoja. Jos haluat palauttaa esimerkiksi tyypin, jonka nimi on Gift, ja joka sisältää merkkijonon message sekä luvun amount, toimi näin:

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!
}

Jos haluat käyttää näitä tietoja tätä toimintoa seuraavien vaiheiden aikana, käytä Suorita koodi ‑muuttujaa, joka kirjoitetaan Suorita koodi ‑toiminnon määrityksissä valitun Output-skeeman mukaisesti. Voit käyttää tätä muuttujaa sekä ehdoissa että toiminnoissa.

Console.log

Voit käyttää console.log-logia datan tuottamiseen Flow'n työnkulun suorituslokin vianmääritystarkoituksiin. Tulos 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 Suorita koodi -toiminnon funktiota .

Esimerkki

Voit katsoa lisää esimerkkejä Suorita koodi -toiminnosta Flow-esimerkkien tietovarastosta.

Rajoitukset

Suorita koodi -toimintoon liittyy seuraavia rajoituksia:

  • Suorita koodi -toiminto tukee ECMA2020 JavaScriptiä. Koodi ei tue NodeJS:ää. CommanJS API -rajapintoja eikä moduulien tuontia.
  • Koodisi ei voi suorittaa http-kutsuja (fetch).
  • Satunnaisia ja kelloon perustuvia toimintoja ei voi käyttää. Syötteeksi voidaan antaa päivämäärätietoja, kuten scheduledAt tai createdAt.
  • Console.log ei kirjaudu selainkonsoliin.
  • Et voi lisätä metakentän aliasta suoraan Suorita koodi -toimintoon. Katso metakenttäosiosta, miten tämä onnistuu.

Lisäksi seuraavat rajoitukset on otettu käyttöön:

  • Syötetietojen kyselyn enimmäismerkkimäärä on 5 000.
  • Tulostietojen kaavio on rajoitettu 5 000 merkkiin.
  • Tulostietojen hyötykuorma ja Console.log on rajattu yhteensä 50 kilotavuun.
  • Koodin enimmäismerkkimäärä on 50 000.
  • Suorituksen kokonaiskesto on rajoitettu 5 sekuntiin.
  • Muistin käyttö on rajoitettu 10 megatavuun.

Mallit

Lisää ilmainen (alennettu 100 %) tuote uusiin tilauksiin

Tämä malli lisää ilmaisen, alennushintaisen tuotteen uusiin tilauksiin, jos kyseistä tuotetta on varastossa. Se tarkastaa varaston, lisää 100 %:n alennuksen ja päivittää tilauksen ilmoittamatta asiakkaalle. Tämä automaatio (1) parantaa asiakastyytyväisyyttä sisällyttämällä tilaukseen ilmaisen yllätystuotteen, (2) mainostaa uusia tai vähemmän tunnettuja tuotteita lisäämällä ne tilauksiin ilmaisnäytteiksi ja (3) tehostaa kampanjoita automatisoimalla ilmaistuotteiden sisällyttämisen ja alennuksen. Näytä malli

Peruuta epäaktiiviset palautukset

Peruuta automaattisesti palautus, jolle ei ole tehty maksun palautusta tai palautusta varastoon tiettynä aikana. Näytä malli

Muunna etuliitteelliset tunnisteet tuotteen metakentäksi Suorita koodi -toiminnolla

Tämä työnkulku lisää etuliitteelliset (esim. ”väri:”) tunnisteet tuotteen metakenttäluetteloon. Se käyttää Suorita koodi ‑toimintoa tunnisteiden ja metakenttäluettelon olemassa olevan sisällön seulontaan. Työnkulku suoritetaan, kun tuote luodaan, mutta voit suorittaa sen manuaalisesti olemassa oleville tuotteille. Näytä malli

Lähetä ilmoitus, kun asiakas tilaa useita tuoteversioita

Saat sähköposti-ilmoituksen, kun asiakas tilaa useita saman tuotteen versioita. Näytä malli

Lähetä ilmoitus, kun tilauksessa on tuotepaketti

Tämä työnkulku käynnistyy, kun tilaus on luotu, ja se tarkistaa, onko jokin tilauksen tuotteista ostettu osana tuotepakettia. Jos tuotepaketti löytyy, se lähettää sisäisen sähköpostin, joka sisältää tuotepaketin tiedot. Voit käyttää tätä työnkulkua myös lähtökohtana silloin, kun haluat tarkistaa, onko tilauksessa tuotepaketti. Näytä malli

Merkitse tilaukset, joissa on niihin yhdistetty UTM-kampanja

Lisää tunnisteita tilauksiin, jotka sisältävät yhdistettyjen UTM-kampanjoiden nimiä. Näytä malli

Etkö löydä hakemaasi vastausta? Autamme mielellämme.