Code uitvoeren

Met de actie Code uitvoeren voer je JavaScript-code uit. Je kunt gegevens van vorige stappen in de workflow doorgeven als invoer voor de actie Code uitvoeren en retourwaarden die je wil gebruiken in de volgende stappen.

Velden

De actie Code uitvoeren bevat de volgende velden.

In de actie Code uitvoeren gebruikte velden.
Veld Beschrijving
Invoer Vereist. Een GraphQL-query om gegevens van vorige stappen te gebruiken als invoer voor de actie Code uitvoeren.
Uitvoer Vereist. Een weergave van de gegevens die door de actie worden geretourneerd, gedefinieerd in de Schema Definition Language (SDL) van GraphQL.
Code Vereist. Het JavaScript dat je uitvoert met de actie Code uitvoeren.

Invoergegevens

Invoergegevens kunnen worden doorgegeven vanuit stappen die plaatsvinden vóór de actie Code uitvoeren. Als je deze gegevens wil opnemen, kun je een GraphQL-query schrijven in het veld Invoer. De gegevens die uit de query worden geretourneerd, zijn beschikbaar als het input-argument voor de functie die is gemarkeerd met export default. Je hoeft niet te pagineren of edges en nodes in de query te gebruiken, aangezien Flow dit voor jou doet.

Een voorbeeldinvoer waarmee je een opmerking bij een bestelling en de titel van een orderregel krijgt:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Deze gegevens worden geconverteerd naar een input-variabele die je kunt gebruiken in de code:

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

Je kunt invoer ook destructureren in de functiehandtekening:

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

Uitvoergegevens

De actie Code uitvoeren kan aangepaste gegevens retourneren. Gebruik het veld Uitvoer en de Schema Definition Language (SDL) van GraphQL om het type gegevens te definiëren dat de code retourneert. Als je bijvoorbeeld een tekenreeks met de naam giftMessage en een nummer met de naam totalGifts wil retourneren:

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

De opmerkingen zijn optioneel, maar worden gebruikt om de gegevens in de Flow UI te beschrijven. Retourneer een object dat overeenkomt met het type om deze gegevens uit te voeren in de JavaScript-code:

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

Je kunt ook een aangepast type definiëren om complexere gegevens te retourneren. Als je bijvoorbeeld een type met de naam Gift dat een tekenreeks met de naam message en een nummer met de naam amount bevat, wil retourneren:

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

Gebruik de variabele Code uitvoeren die wordt getypt op basis van het Output-schema dat je definieert in de actieconfiguratie Code uitvoeren, voor toegang tot deze gegevens in stappen die deze actie volgen. Je kunt deze variabele zowel in voorwaarden als in acties gebruiken.

Voorbeeld

Voorbeelden van de actie Code uitvoeren vind je in de opslagplaats met Flow-voorbeelden.

Beperkingen

De actie Code uitvoeren heeft de volgende beperkingen:

  • De code kan geen modules importeren.
  • De code kan geen HTTP-aanroepen doen (fetch).
  • De code kan geen console.log gebruiken.
  • Willekeurige en op de tijd gebaseerde functies kunnen niet worden gebruikt. Datumgegevens, zoals een scheduledAt of createdAt kunnen worden doorgegeven als invoer.

Bovendien worden de volgende beperkingen opgelegd:

  • De query voor invoergegevens is beperkt tot 5000 tekens.
  • Het schema voor uitvoergegevens is beperkt tot 5000 tekens.
  • De payload voor uitvoergegevens is beperkt tot 50 kB.
  • De code mag niet langer zijn dan 50.000 tekens.
  • De totale duur van de uitvoering is beperkt tot 5 seconden.
  • Het geheugengebruik is beperkt tot 10 MB.

Stappenplan

Het Flow-team is van plan om in de loop van de tijd mogelijkheden toe te voegen aan de actie Code uitvoeren. In de volgende tabel worden de geplande verbeteringen en de geschatte leverdatums beschreven.

Stappenplan voor verbeteringen aan de actie Code uitvoeren
Verbetering Beschrijving Verwachte bezorging
Bugfixes Bugfixes en opruiming Februari 2024
Logboekregistratie Gebruik 'console.log' om gegevens uit te voeren naar het uitvoeringslogboek voor probleemoplossing. Begin april 2024
Externe API-aanroepen Gebruik de fetch van JavaScript om API's aan te roepen. Q3 2024

Feedback

De actie Code uitvoeren is een nieuw type stap in Shopify Flow. Als je feedback en vragen hebt, reageer je op dit Flow-communitybericht.

Klaar om te beginnen met verkopen met Shopify?

Probeer het gratis