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.
Kenttä | Kuvaus |
---|---|
Syöttää | Tämä on pakollinen. GraphQL-kysely, joka käyttää edellisten vaiheiden tietoja Suorita koodi -toiminnon syötteenä. |
Tulos | Tämä on pakollinen. Esitys toiminnon palauttamista tiedoista GraphQL Schema Definition Language (SDL) ‑kielellä. |
Koodi | Tä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
taicreatedAt
. - 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