Kør kode
Handlingen Kør kode udfører JavaScript. Du kan overføre data fra tidligere trin i workflowet som input i handlingen Kør kode, og returværdier, der skal anvendes i de efterfølgende trin.
På denne side
Felter
Handlingen Kør kode indeholder følgende felter.
Felt | Beskrivelse |
---|---|
Input | Påkrævet. En GraphQL-forespørgsel om at bruge data fra tidligere trin som input i handlingen Kør kode. |
Output | Påkrævet. En gengivelse af de data, der returneres af handlingen, angivet i GraphQL Schema Definition Language (SDL). |
Kode | Påkrævet. Det JavaScript, som handlingen Kør kode vil udføre. |
Inputdata
Inputdata kan overføres fra trin, der ligger inden handlingen Kør kode. Hvis du vil inkludere disse data, kan du skrive en GraphQL-forespørgsel i feltet Input. De data, der returneres fra forespørgslen, er tilgængelige som input
-argumentet for funktionen, der er markeret med export default
, også kaldet main
.
Inputforespørgslen er en forespørgsel på Flow-miljødata, ikke en forespørgsel til Shopify Admin API’en. Det betyder, at du ikke kan indsætte en Shopify-forespørgsel i inputdataene. Flow håndterer desuden edges
og nodes
i forespørgslen, så du behøver ikke at føje disse eller anden sideskift-syntaks til din forespørgsel.
Eksempel på et input, der får en ordrebemærkning og titlen på en varelinje:
Disse data konverteres til en input
-variabel, der kan bruges i koden:
Input kan også destruktureres i funktionssignaturen:
Metafelter
Hvis du vil have adgang til værdier for enkelt metafelt i handlingen Kør kode, skal du først tilføje metafeltet i Flows miljødata. Dette gøres i alle handlinger eller betingelser, der ikke er handlingen Kør kode. Du kan f.eks. tilføje en handling om at logge output og derefter følge vejledningen for at tilføje metafeltet.
Når et metafelt er blevet føjet til workflow-miljøet, kan du få adgang til det i handlingen Kør kode. Lad os f.eks. sige, at du har tilføjet et metafelt for ordre med aliasnavnet giftMessage
. Du kan derefter få adgang til det i din inputforespørgsel:
Outputdata
Handlingen Kør kode kan returnere tilpassede data. Hvis du vil definere den type af data, som koden returnerer, skal du bruge feltet Output og GraphQL Schema Definition Language (SDL). Understøttede outputtyper er String
, Int
, Float
, Boolean
og ID
, som følger SDL-specifikationen for, hvordan de obligatoriske felter, lister og tilpassede data angives.
Hvis du f.eks. vil returnere en streng kaldet giftMessage
og et tal kaldet totalGifts
:
Kommentarerne er valgfrie, men de bruges til at beskrive dataene i Flows brugergrænseflade. Hvis du vil udlæse disse data i JavaScript-koden, skal du returnere et objekt, der matcher typen:
Du kan også definere en tilpasset type for at returnere mere komplekse data. Hvis du f.eks. vil returnere en type kaldet Gift
, der indeholder en streng kaldet message
og et tal kaldet amount
:
Hvis du vil tilgå disse data i trinnene efter denne handling, skal du bruge en variabel kaldet Kør kode, som skrives i henhold til det Output
-skema, du definerer i konfigurationen af handlingen Kør kode. Du kan både bruge denne variabel i betingelser og handlinger.
Console.log
Til fejlfindingsformål kan du bruge console.log
til at outputte data til Flows kørselslog for workflows. Outputtet vil være synligt i kørselsloggen for workflowet. Følgende er f.eks. gyldige:
Du kan ikke bruge console.info
, console.error
eller andre funktioner i handlingen Kør kode.
Eksempel
Du kan finde eksempler på Kør kode-handlingen i Flow-lageret med eksempler.
Begrænsninger
Handlingen Kør kode har følgende begrænsninger:
- Handlingen Kør kode understøtter ECMA2020 JavaScript. Den understøtter ikke NodeJS- eller CommonJS-API'erne eller import af moduler.
- Din kode kan ikke foretage http-kald (
fetch
). - Tilfældige og klokkeslætsbaserede funktioner kan ikke anvendes. Datodata, som f.eks.
scheduledAt
ogcreatedAt
, kan overføres som et input. - Console.log logger ikke i browserkonsollen.
- Du kan ikke tilføje metafeltalias direkte i handlingen Kør kode. Se afsnittet metafelterne for at se, hvordan du opnår dette.
Følgende begrænsninger håndhæves også:
- Forespørgslen for inputdata er begrænset til 5.000 tegn.
- Skemaet for outputdata er begrænset til 5.000 tegn.
- Nytteoutputdata og output for Console.log er begrænset til 50 KB kombineret.
- Koden må ikke være længere end 50.000 tegn.
- Den samlede varighed for udførelse er begrænset til 5 sekunder.
- Hukommelsesforbruget er begrænset til 10 MB.
Plan
Flow-teamet planlægger at føje flere funktioner til Kør kode-handlingen med tiden. Nedenstående tabel angiver de planlagte forbedringer og deres forventede leveringsdatoer.
Forbedring | Beskrivelse | Forventet leveringsdato |
---|---|---|
Logføring | Brug `console.log` for at udlæse data til kørselsloggen for fejlfinding. | Udført. |
Eksterne API-kald | Brug JavaScripts fetch-kommando til at kalde API’er. | K1 2025 |
Skabeloner
Føj en gratis vare (100 % rabat) til nye ordrer
Denne skabelon føjer en gratis vare med rabat til nye ordrer, hvis varen er på lager. Den tjekker lagerbeholdningen, pålægger en rabat på 100 % og opdaterer ordren uden at underrette kunden. Denne automatisering er nyttig til at (1) forbedre kundetilfredsheden ved at inkludere en gratis vare i deres ordre som en overraskelse, (2) promovere nye eller mindre kendte produkter ved at tilføje dem som gratis prøver i ordrerne, eller (3) strømline promoveringer ved at automatisere inkludering af – og rabat for – gratis varer. Se skabelon
Annuller inaktive returneringer
Annuller automatisk en returnering, der ikke er blevet refunderet eller genopfyldt inden for en vis periode. Se skabelon
Konverterer tags med et præfiks til et metafelt for produkter via handlingen Kør kode
Dette workflow tager tags, som starter med et præfiks, som f.eks. 'farve:' og føjer dem til en metafelt for produktliste. Det bruger handlingen Kør kode til at parse tags og eksisterende varer på metafeltlisten. Workflowet kører, når der oprettes et produkt, men det kan køres manuelt på eksisterende produkter. Se skabelon
Send en meddelelse, når en kunde bestiller flere varianter af et produkt
Modtag en mailmeddelelse, når en kunde bestiller flere varianter af det samme produkt. Se skabelon
Send meddelelse, når ordren indeholder en sampak
Dette workflow starter, når der oprettes en ordre, og kontrollerer, om nogle af produkterne i ordren er blevet købt som en del af en sampak. Hvis der findes en intern mail, sendes den med sampakoplysningerne. Du kan også bruge dette workflow som udgangspunkt for alle brugstilfælde, der skal registrere, om der findes en sampak i en ordre. Se skabelon
Tag ordrer med tilknyttet UTM-kampagne
Føjer tags til ordrer, der indeholder navnene på eventuelle tilknyttede UTM-kampagner. Se skabelon