Przekazywanie danych z serwisu Shopify Flow

Przekazywanie danych z serwisu Shopify Flow

Skopiuj stronę

Jak wypełnić pole „Zmienne (JSON)” w akcji Send Transactional Email, dlaczego zmienna jest pusta oraz jak skorygować pozycje wymagające zastosowania pętli.

Układ Państwa wiadomości e-mail przypomina kształt z otworami. Zmienne (JSON) to sposób, w jaki Shopify Flow wypełnia te otwory.

Jest to najczęstszy błąd, jaki się popełnia, dlatego warto poświęcić na to pięć minut.

Dwie połowy

Gdzie To, co Pan/Pani pisze Przykład
W układzie Państwa wiadomości e-mail Znak zastępczy Hi {{ variables.firstName }}
W akcji Shopify Flow Plik JSON, z którego pochodzi ta informacja {"firstName": "{{ order.customer.firstName }}"}

Klucz po lewej stronie w pliku JSON musi dokładnie odpowiadać nazwie występującej po variables. w Państwa układzie - z zachowaniem tej samej pisowni i wielkich liter. firstName i firstname to dwie różne zmienne.

Proszę pozwolić, aby aplikacja wygenerowała plik JSON za Państwa

Nie muszą Państwo tego pisać odręcznie i prawdopodobnie nie powinni Państwo tego robić.

Proszę otworzyć swój układ. Na pasku bocznym (lub w zakładce Zmienne testowe w kreatorze wizualnym) znajduje się karta „Użyj w Shopify Flow” zawierająca dokładny kod JSON dla tego układu, z prawidłowo ustawionymi wszystkimi kluczami. Proszę kliknąć przycisk Kopiuj JSON, a następnie wkleić go w polu Zmienne (JSON) akcji Send Transactional Email.

Aplikacja automatycznie wypełnia właściwość Shopify Flow w przypadku rozpoznanych pól - nazwa klienta, nazwa zamówienia, suma zamówienia, adres URL strony statusu i tym podobne. Wszystkie dane, których nie jest w stanie ustalić, pojawiają się jako <pick a Flow variable>, aby użytkownik mógł je zastąpić.

Jak powinien wyglądać plik JSON

{
  "firstName": "{{ order.customer.firstName }}",
  "orderName": "{{ order.name }}",
  "statusPageUrl": "{{ order.statusPageUrl }}"
}

Zasady, o których warto wiedzieć:

  • Każdą wartość w Shopify Flow należy ująć w podwójne cudzysłowy. "orderName": {{ order.name }} jest nieprawidłowym formatem JSON; "orderName": "{{ order.name }}" jest poprawny.
  • Przecinki między pozycjami, bez przecinka po ostatniej pozycji.
  • Nazwy kluczy mogą Państwo dowolnie wybierać. Muszą one jedynie pasować do Państwa szablonu. Jeśli w szablonie znajduje się zapis {{ variables.kunde }}, kluczem jest kunde.
  • Wartości są przekazywane w postaci tekstu. Liczby i daty są przekazywane w takiej postaci, w jakiej zostały wygenerowane przez Shopify Flow.
Akcja Send Transactional Email w Shopify Flow z polami „Reply-To”, „From name”, „Language” oraz plikiem JSON „Variables” wypełnionym zmiennymi Shopify Flow
Zmienne (JSON) w akcji: Państwa klucze po lewej stronie, zmienne Shopify Flow po prawej stronie. Powyżej znajdują się pola „Odpowiadaj do”, „Nazwa nadawcy” oraz „Język”.
Zakładka „Zmienne testowe” w układzie zawierającym panel „Użyj w Shopify Flow” oraz przycisk „Kopiuj JSON”
Zakładka „Zmienne testowe” w układzie generuje kod JSON za Państwa: proszę skopiować kod JSON, a następnie wkleić go do akcji i zastąpić wartości.

Najczęstszy błąd: pozycje

Zamówienie składa się z wielu pozycji, więc nie ma jednej wartości variant.title, którą można by odczytać. Poniższy kod nie zwraca żadnego wyniku:

{{ order.lineItems.variant.title }}

Mają Państwo dwie dobre możliwości.

Opcja 1 - pętla wewnątrz układu. Prześlij listę, a następnie przeprowadź iterację. W akcji Shopify Flow:

{
  "items": "{{ order.lineItems | json }}"
}

W swoim projekcie proszę użyć bloku Loop:

{% for item in variables.items %}
  <tr>
    <td>{{ item.title }}</td>
    <td>{{ item.quantity }}</td>
  </tr>
{% endfor %}

Opcja 2 - spłaszczenie tekstu w Shopify Flow. Jeśli potrzebują Państwo tylko jednej linii tekstu, proszę utworzyć ją w Shopify Flow za pomocą pętli for, a następnie wysłać gotowy ciąg znaków:

{
  "itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}

Jeśli aplikacja wykryje zmienną, która wygląda na dane pozycji zamówienia - czyli dowolną zmienną o nazwie variant, product, item, sku lub quantity - wyświetli ostrzeżenie na ten temat na karcie „Użyj w Shopify Flow”.

Wartości testowe nie są wartościami rzeczywistymi

To sprawia trudności niemal każdemu.

  • Zmienne testowe w edytorze układu mają wpływ wyłącznie na podgląd oraz na wysyłanie testowej wiadomości e-mail.
  • W trakcie rzeczywistego uruchomienia Shopify Flow są one całkowicie pomijane, a system wykorzystuje dane przesłane przez daną akcję Shopify Flow.

Zatem e-mail testowy, który wygląda idealnie, świadczy o tym, że Państwa projekt działa. Nie świadczy to jednak w żaden sposób o poprawności konfiguracji Shopify Flow. Zawsze należy to potwierdzić, przeprowadzając rzeczywisty przebieg procesu.

Gdy zmienna ma wartość pustą

Od wersji 1.10.0 aplikacja informuje Państwa o tym, zamiast pozostawiać Państwa w niepewności.

Jeśli podczas przesyłania na żywo zmienna zostanie zredukowana do zera, wpis w historii zostanie oznaczony etykietą Puste zmienne, a po jego otwarciu wyświetlą się dokładnie te zmienne, podzielone na dwa przypadki:

Sprawa Znaczenie Poprawka
Wysłane przez Shopify Flow, ale treść jest pusta Klucz znajdował się w Państwa pliku JSON, jednak Shopify Flow nie wygenerowało żadnej wartości Ścieżka właściwości w Shopify Flow jest nieprawidłowa lub w przypadku tego zamówienia faktycznie pusta (przy realizacji zamówienia jako gość nie ma pola customer.firstName)
W ogóle nie zostało wysłane przez Shopify Flow W Państwa pliku JSON całkowicie brakuje tego klucza Proszę to dodać - przycisk „Kopiuj JSON” udostępnia pełny zestaw

Zabezpieczenie przed wartościami pustymi

W przypadku wszelkich elementów opcjonalnych należy przewidzieć w układzie rozwiązanie awaryjne, tak aby klient nigdy nie otrzymał pustej wiadomości:

Hi {{ variables.firstName | default: "there" }}

Po włączeniu filtra default: aplikacja traktuje pustą wartość jako zamierzoną i nie wyświetla ostrzeżenia w tej sprawie.

Lista kontrolna

  1. Skopiuj kod JSON z karty „Użyj w Shopify Flow” w swoim układzie.
  2. Wklej to do pola Zmienne (JSON) akcji w Shopify Flow.
  3. Proszę zastąpić wszystkie wystąpienia <pick a Flow variable>, korzystając z selektora zmiennych Shopify Flow.
  4. Proszę przetwarzać pozycje w pętli, zamiast odczytywać je bezpośrednio.
  5. Do każdego elementu opcjonalnego proszę dodać | default:.
  6. Uruchom proszę ten przepływ pracy, a następnie sprawdź w sekcji Historia, czy pojawiła się ikona Puste zmienne.

Powiązane