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.

Felter

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.

Console.log

Du kan bruke console.log for å sende data til Flows arbeidsflytlogg for feilsøking. Utdataene vil synes i arbeidsflytens kjørelogg. Følgende er for eksempel gyldige:

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

Du kan ikke bruke console.info, console.error eller andre funksjoner i handlingen Kjør kode.

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).
  • Tilfeldige og klokkebaserte funksjoner kan ikke brukes. Datoopplysninger, som scheduledAt eller createdAt, kan sendes som inndata.
  • Console.log logger ikke til nettleserkonsollen.

I tillegg håndheves følgende begrensninger:

  • Inndataspørringen er begrenset til 5000 tegn.
  • Utdataskjema er begrenset til 5000 tegn.
  • Nyttelast i utdata og utdata fra Console.log er begrenset til 50 kb sammenlagt.
  • 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
Logging Bruk «console.log» til å sende utdata til kjøreloggen for feilsøkingsformål. Ferdig.
Eksterne API-anrop Bruk JavaScripts fetch til å anrope API-er. Q3 2024

Tilbakemeldinger

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