Uruchom kod

Czynność Uruchom kod polega na wykonaniu kodu JavaScript. Możesz przekazywać dane z poprzednich kroków w workflow jako dane wejściowe do czynności Uruchom kod i zwracać wartości, które mają być używane w kolejnych krokach.

Pola

Czynność Uruchom kod zawiera poniższe pola.

Pola używane w czynności Uruchom kod.
Pole Opis
Dane wejściowe Wymagane. Zapytanie GraphQL umożliwiające wykorzystanie danych z poprzednich kroków jako danych wejściowych dla czynności Uruchom kod.
Dane wyjściowe Wymagane. Reprezentacja danych, które mają zostać zwrócone w ramach czynności, zdefiniowana w języku Schema Definition Language (SDL) GraphQL.
Kod Wymagane. Kod JavaScript wykonywany w ramach czynności Uruchom kod.

Dane wejściowe

Dane wejściowe mogą być przekazywane z kroków realizowanych przed czynnością Uruchom kod. Aby uwzględnić te dane, możesz napisać zapytanie GraphQL w polu Dane wejściowe. Dane zwrócone z zapytania będą dostępne jako argument input do funkcji oznaczonej export default. Nie musisz obsługiwać stronicowania ani używać edges i nodes w zapytaniu, ponieważ aplikacja Flow zapewnia obsługę w tym zakresie.

Przykładowe dane wejściowe, które pobierają notatkę o zamówieniu i tytuł pozycji:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Dane te są przekształcane na zmienną input, która może być używana w kodzie:

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

Dane wejściowe mogą być również zdestrukturyzowane w sygnaturze funkcji:

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

Dane wyjściowe

Czynność Uruchom kod polega na zwróceniu niestandardowych danych. Aby zdefiniować typ danych, które zwróci kod, użyj pola Dane wyjściowe i Schema definition language (SDL). Na przykład, aby zwrócić ciąg znaków o nazwie giftMessage i liczbę o nazwie totalGifts:

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

Komentarze są opcjonalne, ale będą używane do opisu danych w interfejsie użytkownika Flow. Aby wyprowadzić te dane w kodzie JavaScript, zwróć obiekt pasujący do typu:

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

Możesz także zdefiniować typ niestandardowy, aby zwrócić bardziej złożone dane. Na przykład, aby zwrócić typ o nazwie Gift zawierający ciąg znaków o nazwie message i liczbę o nazwie 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!
}

Aby uzyskać dostęp do tych danych w krokach wykonywanych po tej czynności, użyj zmiennej o nazwie Uruchom kod, która zostanie wpisana zgodnie z schematem Output zdefiniowanym w konfiguracji czynności Uruchom kod. Możesz użyć tej zmiennej zarówno dla warunków, jak i dla czynności.

Przykład

Przykłady czynności Uruchom kod można znaleźć w repozytorium przykładów Flow.

Ograniczenia

Czynność Uruchom kod ma następujące ograniczenia:

  • Kod nie może importować modułów.
  • Kod nie może wykonać wywołań http (fetch).
  • Kod nie może używać console.log.
  • Funkcje losowe i oparte na zegarze nie mogą być używane. Dane dotyczące daty, takie jak scheduledAt lub createdAt mogą być przekazywane jako dane wejściowe.

Ponadto wymuszane są następujące limity:

  • Zapytanie o dane wejściowe jest ograniczone do 5000 znaków.
  • Schemat danych wyjściowych jest ograniczony do 5000 znaków.
  • Ładunek danych wyjściowych jest ograniczony do 50 KB.
  • Kod nie może być dłuższy niż 50 000 znaków.
  • Całkowity czas wykonania jest ograniczony do 5 sekund.
  • Wykorzystanie pamięci jest ograniczone do 10 MB.

Plan działania

Zespół Flow planuje z czasem dodawać różne funkcjonalności do czynności Uruchom kod. W poniższej tabeli przedstawiono planowane optymalizacje i przewidywane daty realizacji.

Plan działania dotyczący optymalizacji czynności Uruchom kod
Optymalizacja Opis Przewidywana dostawa
Poprawki błędów Poprawki błędów i czyszczenie Luty 2024 r.
Rejestrowanie Użycie 'console.log' w celu wyprowadzenia danych do dziennika uruchamiania na potrzeby rozwiązywania problemów. Początek kwietnia 2024 r.
Zewnętrzne wywołania API Użycie funkcji pobierania JavaScript w celu wywołania interfejsów API. 3 kw. 2024 r.

Informacje zwrotne

Czynność Uruchom kod jest nowym typem kroku w Shopify Flow. Jeśli masz uwagi i pytania, skomentuj ten post społeczności Flow.

Gotowy(-a) do rozpoczęcia sprzedaży za pomocą Shopify?

Wypróbuj za darmo