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.

Felter

Handlingen Kør kode indeholder følgende felter.

Felter, der bruges til handlingen Kør kode.
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. Du behøver ikke at håndtere sideskift eller at bruge edges og nodes i forespørgslen, da Flow gør det for dig.

Eksempel på et input, der får en ordrebemærkning og titlen på en varelinje:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Disse data konverteres til en input-variabel, der kan bruges i koden:

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

Input kan også destruktureres i funktionssignaturen:

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

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). Hvis du f.eks. vil returnere en streng kaldet giftMessage og et tal kaldet totalGifts:

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

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:

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

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:

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

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.

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:

  • Din kode kan ikke importere moduler.
  • Din kode kan ikke foretage http-kald (fetch).
  • Din kode må ikke bruge console.log.
  • Tilfældige og klokkeslætsbaserede funktioner kan ikke anvendes. Datodata, som f.eks. scheduledAt og createdAt, kan overføres som et input.

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.
  • Nyttedata for outputdata er begrænset til 50 KB.
  • 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.

Køreplan

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.

Køreplan for forbedringer af Kør kode-handlingen
Forbedring Beskrivelse Forventet leveringsdato
Fejlrettelser Fejlrettelser og oprydning Februar 2024
Logføring Brug `console.log` for at udlæse data til kørselsloggen for fejlfinding. Først i april 2024
Eksterne API-kald Brug JavaScripts fetch-kommando til at kalde API’er. 3. kvartal 2024

Feedback

Handlingen Kør kode er en ny type trin i Shopify Flow. Hvis du har feedback eller spørgsmål, kan du kommentere på dette Flow-opslag i fællesskabet.

Er du klar til at begynde at sælge med Shopify?

Prøv det gratis