Kjør kode

Handlingen Kjør kode kjører Javascript. Du kan sende data fra tidligere trinn i arbeidsflyten som inndata til handlingen Kjør kode, og returnere verdier som kan brukes i påfølgende trinn.

Felt

Handlingen Kjør kode inneholder følgende felter.

Felter som brukes i handlingen Kjør kode.
Felt Beskrivelse
Overtre Obligatorisk. En GraphQL-spørring for å bruke data fra tidligere trinn som inndata til handlingen Kjør kode.
Utdata Obligatorisk. En representasjon av dataene som skal returneres av handlingen, definert i GraphQLs skjemadefinisjonsspråk (SDL).
Kode Obligatorisk. JavaScript-koden som skal kjøres av handlingen Kjør kode.

Inndata

Inndata kan sendes fra trinn som skjer før handlingen Kjør kode kjøres. For å inkludere disse dataene, kan du skrive en GraphQL-spørring i feltet Inndata. Dataene som returneres fra spørringen vil være tilgjengelig som input-argument til funksjonen merket med export default. Du trenger ikke å håndtere paginering eller å bruke edges og nodes i spørringen, da Flow håndterer dette for deg.

Et eksempel på inndata som henter en bestillingsmerknad og tittelen på en varelinje:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Disse dataene konverteres til en input-variabel, som kan brukes i koden:

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

Inndata kan også destruktureres i funksjonssignaturen:

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

Utdata

Handlingen Kjør kode kan returnere egendefinerte data. For å definere typen data koden skal returnere, kan du bruke feltet Utdata og GraphQLs Skjemadefinisjonsspråk (SDL). For eksempel, for å returnere en streng med navnet giftMessage og et tall med navnet totalGifts:

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

Kommentarer er valgfrie, men brukes til å beskrive dataene i Flows brukergrensesnitt. For å returnere disse dataene i JavaScript-koden, må du returnere et objekt som samsvarer med typen:

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

Du kan også definere en egendefinert type for å returnere mer komplekse data. For eksempel, for å returnere en type med navnet Gift, som inneholder en streng med navnet message og et tall med navnet 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!
}

For å bruke disse dataene i trinn som følger denne handlingen, kan du bruke variabelen Kjør kode, som skrives i henhold til Output-skjemaet du definerer i konfigurasjonen av handlingen Kjør kode. Du kan bruke denne variabelen i både betingelser og handlinger.

Eksempel

Eksempler på kodehandlingen finner du i Flows eksempelrepositorium.

Begrensninger

Handlingen Kjør kode har følgende begrensninger:

  • Koden din kan ikke importere moduler.
  • Koden din kan ikke kjøre http-anrop (fetch).
  • Koden din kan ikke bruke console.log.
  • Tilfeldige og klokkebaserte funksjoner kan ikke brukes. Datoopplysninger, som scheduledAt eller createdAt, kan sendes som inndata.

I tillegg håndheves følgende begrensninger:

  • Inndataspørringen er begrenset til 5000 tegn.
  • Utdataskjema er begrenset til 5000 tegn.
  • Nyttelasten for utdata er begrenset til 50 kb.
  • Koden kan ikke være lenger enn 50 000 tegn.
  • Total varighet for kjøring er begrenset til 5 sekunder.
  • Minnebruken er begrenset til 10 MB.

Veikart

Flow-teamet planlegger å tilføre funksjoner i handlingen Kjør kode over tid. Tabellen nedenfor oppsummerer planlagte forbedringer, og deres estimerte leveringsdatoer.

Veikart for forbedringer av handlingen Kjør kode
Forbedring Beskrivelse Estimert leveranse
Feilrettinger Feilrettinger og opprydding Februar 2024
Logging Bruk «console.log» til å sende utdata til kjøreloggen for feilsøkingsformål. Tidlig i april 2024
Eksterne API-anrop Bruk JavaScripts fetch til å anrope API-er. Q3 2024

Tilbakemelding

Handlingen Kjør kode er en ny type trinn i Shopify Flow. Hvis du har tilbakemeldinger eller spørsmål, kan du kommentere i dette Flow-fellesskapsinnlegget.

Er du klar til å begynne å selge med Shopify?

Prøv det gratis