Przekazywanie danych z serwisu Shopify Flow
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 jestkunde. - Wartości są przekazywane w postaci tekstu. Liczby i daty są przekazywane w takiej postaci, w jakiej zostały wygenerowane przez Shopify Flow.


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
- Skopiuj kod JSON z karty „Użyj w Shopify Flow” w swoim układzie.
- Wklej to do pola Zmienne (JSON) akcji w Shopify Flow.
- Proszę zastąpić wszystkie wystąpienia
<pick a Flow variable>, korzystając z selektora zmiennych Shopify Flow. - Proszę przetwarzać pozycje w pętli, zamiast odczytywać je bezpośrednio.
- Do każdego elementu opcjonalnego proszę dodać
| default:. - Uruchom proszę ten przepływ pracy, a następnie sprawdź w sekcji Historia, czy pojawiła się ikona Puste zmienne.
Powiązane
- Zmienne i ciecze - pełny przewodnik po szablonach.
- Stworzenie szablonu wiadomości e-mail - projektowanie samego układu.
- Historia i rozwiązywanie problemów - odczytywanie nieudanej lub pustej wiadomości.
