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.
PoleOpis
Dane wejścioweWymagane. Zapytanie GraphQL umożliwiające wykorzystanie danych z poprzednich kroków jako danych wejściowych dla czynności Uruchom kod.
Dane wyjścioweWymagane. Reprezentacja danych, które mają zostać zwrócone w ramach czynności, zdefiniowana w języku Schema Definition Language (SDL) GraphQL.
KodWymagane. 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 dla funkcji oznaczonej export default nazywanej umownie main.

Zapytanie wejściowe jest zapytaniem o dane środowiska Flow, a nie zapytaniem do API Shopify Admin. Z tego względu nie można wstawić zapytania Shopify w danych wejściowych. Ponadto Flow obsługuje błędy edges i nodes w zapytaniu, więc nie trzeba dodawać tych lub innych składni stronicowania do zapytania.

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
}

Metapola

Aby uzyskać dostęp do pojedynczych wartości metapola w czynności Uruchom kod, musisz najpierw dodać metapole do danych środowiska Flow. Można to zrobić w dowolnym warunku lub czynności innej niż Uruchom kod. Na przykład możesz dodać czynność Dane wyjściowe dziennika, a następnie postępować zgodnie z instrukcjami, aby dodać metapole.

Po dodaniu metapola do środowiska workflow możesz uzyskać do niego dostęp w czynności Uruchom kod. Załóżmy na przykład, że dodano metapole Zamówienie z nazwą aliasu giftMessage. Dostęp do niego możesz następnie uzyskać w zapytaniu wejściowym:

{
  order {
    giftMessage {
      value
    }
  }
}

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) GraphQL. Obsługiwane typy danych wyjściowych to String, Int, Float, Boolean oraz ID, które są zgodne ze specyfikacją SDL dotyczącą określania wymaganych pól, list i danych niestandardowych.

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.

Console.log

Możesz użyć console.log w celu wyprowadzenia danych do dziennika uruchamiania workflow Flow na potrzeby rozwiązywania problemów. Dane wyjściowe będą widoczne w dzienniku przebiegu dla workflow. Na przykład, następujące są prawidłowe:

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

Nie można używać console.info, console.error ani innych funkcji w ramach czynności Uruchom kod.

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:

  • Czynność Uruchom kod obsługuje ECMA2020 JavaScript. Nie obsługuje interfejsów API NodeJS, CommonJS ani importowania modułów.
  • Kod nie może wykonać wywołań http (fetch).
  • 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.
  • Console.log nie zapisuje w konsoli przeglądarki.
  • Nie możesz dodać aliasu metapola bezpośrednio w czynności Uruchom kod. Wyświetl sekcję metapola, aby dowiedzieć się, jak to zrobić.

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.
  • Łączny rozmiar obciążenia danych wyjściowych i danych wyjściowych Console.log nie może przekroczyć 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.

Szablony

Dodaj darmową pozycję (z rabatem w wysokości 100%) do nowych zamówień

Ten szablon dodaje darmową, zrabatowaną pozycję do nowych zamówień, jeśli pozycja jest w magazynie. Sprawdza zapasy, stosuje rabat 100% i aktualizuje zamówienie bez powiadamiania klienta. Ta automatyzacja, sprawdzi się jako narzędzie do: (1) poprawy satysfakcji klientów poprzez dołączanie niespodziewanego podarunku w postaci darmowego produktu do zamówienia, (2) promowania nowych lub mniej znanych produktów poprzez dodawanie ich jako darmowych próbek do zamówień lub (3) usprawnienia promocji poprzez automatyzację dołączania i obejmowania rabatami pozycji. Wyświetl szablon

Anuluj nieaktywne zwroty

Automatycznie anuluj zwrot, który nie został zrefundowany lub zwrócony do zapasów w określonym przedziale czasu. Wyświetl szablon

Konwertuj tagi z prefiksem na metapole produktu za pomocą akcji uruchamiania kodu

Ten workflow wybiera tagi, które zaczynają się od prefiksu, takiego jak np. „kolor”, i dodaje je do listy metapola produktu. Używa czynności Uruchom kod do analizowania tagów i istniejących pozycji na liście metapola. Workflow uruchamia się, gdy produkt zostaje utworzony, ale można go uruchomić ręcznie dla istniejących produktów. Wyświetl szablon

Wyślij powiadomienie, gdy klient zamawia wiele wariantów produktu

Otrzymuj powiadomienie e-mailem, gdy klient zamawia wiele wariantów tego samego produktu. Wyświetl szablon

Wyślij powiadomienie, gdy zamówienie zawiera pakiet

Ten workflow rozpoczyna się po utworzeniu zamówienia i sprawdza, czy którykolwiek z produktów z zamówienia został zakupiony w ramach pakietu. Jeśli tak, zostanie wysłany wewnętrzny e-mail ze szczegółami pakietu. Ponadto możesz użyć tego procesu workflow jako punktu wyjścia do każdego przypadku użycia, który musi wykryć obecność pakietu w zamówieniu. Wyświetl szablon

Oznacz zamówienia z powiązaną kampanią UTM

Dodaje oznaczenia do zamówień, które zawierają nazwy wszelkich powiązanych kampanii UTM. Wyświetl szablon

Nie możesz znaleźć odpowiedzi, których szukasz? Jesteśmy tutaj, aby Ci pomóc.