Code ausführen

Die Aktion Code ausführen führt JavaScript aus. Du kannst Daten aus früheren Schritten im Workflow als Eingabe an die Aktion Code ausführen weitergeben und Werte zurückgeben, die in nachfolgenden Schritten verwendet werden sollen.

Felder

Die Aktion Code ausführen enthält die folgenden Felder.

Felder, die in der Aktion "Code ausführen" verwendet werden.
Feld Beschreibung
Eingabe Erforderlich. Eine GraphQL-Abfrage zur Verwendung von Daten aus vorherigen Schritten als Eingabe für die Aktion Code ausführen.
Ausgabe Erforderlich. Eine Darstellung der Daten, die von der Aktion zurückgegeben werden sollen, definiert in der Schema Definition Language (SDL) von GraphQL.
Code Erforderlich. Das JavaScript, das die Aktion Code ausführen ausführen wird.

Eingabedaten

Eingabedaten können aus Schritten übergeben werden, die vor der Aktion Code ausführen stattfinden. Um diese Daten einzubeziehen, kannst du eine GraphQL-Abfrage in das Feld Eingabe schreiben. Die von der Abfrage zurückgegebenen Daten sind als input für die mit export default gekennzeichnete Funktion verfügbar. Du musst das Paging nicht handhaben oder edges und nodes in der Abfrage verwenden, da Flow diese für dich handhabt.

Eine Beispieleingabe, die eine Bestellnotiz und den Titel einer Position erhält:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Diese Daten werden in einen input-Wert umgewandelt, die im Code verwendet werden kann:

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

Eingaben können auch in der Unterschrift der Funktion destrukturiert werden:

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

Ausgabedaten

Die Aktion Code ausführen kann benutzerdefinierte Daten zurückgeben. Um die Art der Daten zu definieren, die der Code zurückgeben wird, verwende das Feld Ausgabe und GraphQL Schema Definition Language (SDL). Um z. B. einen String namens "giftMessage" und eine Zahl namens "totalGifts" zurückzugeben:

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

Die Kommentare sind optional, werden aber zur Beschreibung der Daten in der Flow-Benutzeroberfläche verwendet. Um diese Daten im JavaScript-Code ausgeben zu können, gib ein Objekt zurück, das mit dem Typ übereinstimmt:

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

Du kannst auch einen benutzerdefinierten Typ definieren, um komplexere Daten zurückzugeben. Um z. B. einen Typ namens "Gift", der einen String namens "message" und eine Zahl namens "amount" zurückzugeben:

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

Um in den Schritten, die auf diese Aktion folgen, auf diese Daten zuzugreifen, verwende die Variable Code ausführen, die entsprechend dem Output-Schema, das Sie in der Konfiguration der Aktion Code ausführen definieren, eingegeben wird. Du kannst diese Variable sowohl in Bedingungen als auch in Aktionen verwenden.

Beispiel

Beispiele für die Aktion "Code ausführen" können im Flow-Beispiel-Repository gefunden werden.

Einschränkungen

Die Aktion Code ausführen hat folgende Einschränkungen:

  • Dein Code kann keine Modules importieren.
  • Dein Code kann keine HTTP-Aufrufe tätigen (fetch).
  • Der Code kann console.log nicht verwenden.
  • Zufällige und taktbasierende Funktionen können nicht benutzt werden. Datumsdaten wie scheduledAt oder createdAt können als Eingabe eingefügt werden.

Darüber hinaus gelten folgende Einschränkungen zwingend:

  • Die Eingabedaten-Abfrage ist auf 5000 Zeichen begrenzt.
  • Das Ausgabedaten-Schema ist auf 5000 Zeichen begrenzt.
  • Die Ausgabedaten-Nutzlast ist auf 50 kb begrenzt.
  • Code darf nicht länger als 50 000 Zeichen sein.
  • Die Gesamtausführungsdauer ist auf 5 Sekunden begrenzt.
  • Die Speichernutzung ist auf 10 MB begrenzt.

Roadmap

Das Flow-Team plant, die Aktion Code ausführen im Laufe der Zeit um weitere Funktionen zu erweitern. Die folgende Tabelle beschreibt die geplanten Verbesserungen und deren geschätzte Lieferdaten.

Roadmap für Verbesserungen der Aktion "Code ausführen"
Verbesserung Beschreibung Voraussichtliche Zustellung
Fehlerlösungen Fehlerbehebungen und Bereinigung Februar 2024
Protokollierung "console.log" verwenden, um Daten aus dem Protokoll zur Fehlerbehebung ausgeben zu können. Anfang April 2024
Externe API-Aufrufe Verwende den Fetch von JavaScript, um APIs aufrufen zu können. Q3 2024

Feedback

Die Aktion "Code ausführen" ist ein neuer Schritt in Shopify Flow. Wenn du Feedback und Fragen hast, dann hinterlasse bitte ein Kommentar zu diesem Flow-Community-Beitrag.

Bereit, mit Shopify zu verkaufen?

Kostenlos testen