Zmienne i ciecze
Przekazuj dane z Shopify Flow do tematu, treści e-maili i żądań HTTP za pomocą Liquid. Opis zmiennych, sekretów, danych sklepu, pętli i warunków.
Wszystkie elementy dynamiczne w tej aplikacji są oparte na języku Liquid - tym samym języku szablonów, z którego korzystają motywy Shopify. Wystarczy wpisać symbol zastępczy, a aplikacja uzupełni go w momencie wysłania.
Przestrzenie nazw
| Przestrzeń nazw | Skąd bierze się ta wartość | Dostępne w |
|---|---|---|
{{ variables.key }} |
Pole Zmienne (JSON) w akcji Shopify Flow | Temat i treść wiadomości e-mail, adres URL protokołu HTTP, nagłówki i treść |
{{ secrets.key }} |
Strona Sekrety | To samo, a dodatkowo nazwa użytkownika i hasło do protokołu SMTP |
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} |
Państwa sklep | Czynności związane z pocztą elektroniczną i protokołem HTTP |
{{ language }} |
Język, w którym wysłano krok Shopify Flow, w przeciwnym razie główny język układu | Temat wiadomości e-mail, tekst podglądu i treść - zob. Wysyłaj wiadomości e-mail w języku Państwa klientów |
{{ unsubscribe_link }}, {{ unsubscribe_url }} |
Link do rezygnacji z subskrypcji przeznaczony dla odbiorców - wyłącznie w szablonach marketingowych | Treść wiadomości e-mail; pusta w szablonach transakcyjnych - patrz poniżej |
{{ flow.key }} |
Surowa treść komunikatu w Shopify Flow | Wyłącznie żądania HTTP |
Karta Zmienne systemowe w edytorze zawiera listę wartości sklepowych wraz z ich aktualną zawartością, a kliknięcie jednej z nich powoduje jej skopiowanie.
Przekazywanie zmiennych z Shopify Flow
W akcji Shopify Flow należy umieścić obiekt JSON w polu Zmienne (JSON):
{
"firstName": "{{ customer.firstName }}",
"orderNumber": "{{ order.name }}",
"total": "{{ order.totalPriceSet.shopMoney.amount }}"
}
Następnie proszę odwołać się do nich w dowolnym miejscu układu:
Hi {{ variables.firstName }}, your order {{ variables.orderNumber }} is on its way.
Wybór kluczy należy do Państwa. Cokolwiek wpiszą Państwo po lewej stronie, będzie to wartość używana po znaku variables. - przy czym nazwa musi być dokładnie zgodna pod względem pisowni i wielkich liter.
Nie muszą Państwo wpisywać tego kodu JSON ręcznie. Każdy układ posiada kartę „Użyj w Shopify Flow” zawierającą gotowy do skopiowania kod JSON - proszę zapoznać się z sekcją Przekazywanie danych z serwisu Shopify Flow.
Filtry
Standardowe filtry typu „Liquid” działają. Najbardziej przydatnym z nich jest default, który chroni przed wartością pustą:
Hi {{ variables.firstName | default: "there" }}
Pozostałe zachowują się zgodnie z oczekiwaniami:
{{ variables.productTitle | upcase }}
{{ variables.total | round: 2 }}
{{ variables.note | truncate: 100 }}
Gdy zmienna wyświetla się jako pusta
Wysyłka na żywo, która przekształca każdą zmienną, do której odwołano się, w wartość „nothing”, powoduje wyświetlenie w sekcji Historia oznaczenia Puste zmienne. Otwarcie tego wpisu pozwala nadać im nazwy i oddzielić od siebie dwa różne problemy:
- Wysłane przez Shopify Flow, ale puste - klucz znajdował się w Państwa pliku JSON, jednak Shopify Flow nie wygenerowało żadnej wartości. Zazwyczaj wynika to z nieprawidłowej ścieżki do właściwości lub z faktu, że dane pole jest rzeczywiście puste dla danego rekordu (w przypadku realizacji zamówienia jako gość nie podano imienia klienta).
- Nie zostało to w ogóle wysłane przez Shopify Flow - w Państwa pliku JSON całkowicie brakuje tego klucza.
Dodanie opcji awaryjnej | default: oznacza, że puste pole jest zamierzone, a aplikacja przestaje wyświetlać ostrzeżenie w tej sprawie.
Konstrukcje warunkowe i pętle
W przypadku instrukcji warunkowych proszę skorzystać z bloku HTML / Kod:
{% if variables.isVip %}
<p>As a VIP you get free shipping on this order.</p>
{% else %}
<p>Spend a little more to unlock free shipping.</p>
{% endif %}
Proszę użyć bloku Pętla, aby wykonać powtórzenie nad tablicą, na przykład pozycjami zamówienia:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
<td>{{ item.price }}</td>
</tr>
{% endfor %}
Proszę przekazać tablicę z Shopify Flow’ w formacie JSON:
{
"items": [
{ "title": "Classic White T-Shirt", "quantity": 2, "price": "29.00" },
{ "title": "Eco Water Bottle", "quantity": 1, "price": "19.00" }
]
}
Aby wyświetlić podgląd pętli w kreatorze, należy wprowadzić tę samą tablicę JSON, co wartość w zakładce Testuj zmienne.
Obiekty zachowują się inaczej w wiadomościach e-mail i w protokole HTTP
To jedyna ostrość, o której warto wiedzieć.
- W żądaniu HTTP interpolacja obiektu lub tablicy powoduje ich automatyczną serializację do formatu JSON. Wyrażenie
{{ variables.records }}staje się prawidłową tablicą JSON w treści żądania. Jeśli chcą Państwo wykonać tę operację w sposób jawny, dostępny jest również filtrjson. - W wiadomości e-mail taka konwersja nie ma miejsca. Interpolacja całego obiektu powoduje wyświetlenie dosłownego tekstu
[object Object].
W związku z tym w wiadomościach e-mail należy zawsze umieszczać treść w polu „Temat”, a nie wpisywać ją w treści wiadomości:
Wrong: {{ variables.customer }}
Right: {{ variables.customer.firstName }} {{ variables.customer.lastName }}
Można też przetwarzać tablicę za pomocą pętli zamiast wyświetlać ją w całości.
Sekrety w szablonach
W ten sam sposób należy odwołać się do zapisanej tajnej wartości:
Authorization: Bearer {{ secrets.airtableAccessToken }}
Proszę użyć dokładnie takiej składni: {{ secrets.keyName }}. Poniższe zapisy nie działają:
{{ secret.keyName }}- liczba pojedyncza{{ secrets['keyName'] }}- składnia z nawiasami
W nazwach kluczy rozróżniana jest wielkość liter. Proszę zapoznać się z sekcją Sekrety.
Ręczne ustawienie treści dla żądań HTTP
Pole „zmienne” akcji HTTP posiada drugi tryb działania. Po przekazaniu klucza body całkowicie zastępuje on zapisany treść żądania:
{
"body": { "anything": "you like", "shaped": ["however"] }
}
Jest to przydatne, gdy kształt treści jest określany przez wcześniejszy etap procesu Shopify Flow. Jedyny wyjątek: jeśli sama zapisana treść zawiera odwołanie do {{ variables.body }}, jest ona traktowana jako zwykła zmienna.
Sprawdzenie tego, co Pan/Pani napisał(a)
Podgląd na stronie nie przetwarza kodu Liquid - wyświetla tagi w postaci, w jakiej zostały wpisane. Aby wyświetlić rozpoznane wartości:
- W przypadku wiadomości e-mail proszę skorzystać z opcji Wyślij wiadomość testową dostępnej w edytorze szablonów.
- W przypadku żądań HTTP proszę skorzystać z przycisku Test, który wyświetla adres URL po przetworzeniu oraz treść po przetworzeniu wraz z odpowiedzią.
Link do rezygnacji z subskrypcji w szablonach marketingowych
Szablon o typie wiadomości e-mail Marketing zawiera dwie dodatkowe zmienne. Każdy odbiorca wiadomości marketingowej posiada własny link do rezygnacji z subskrypcji, a zmienne te umieszczają go w odpowiednim miejscu:
{{ unsubscribe_link }}wyświetla link z tekstem Anuluj subskrypcję pochodzącym z sekcji „Ustawienia” (lub z samego szablonu).{{ unsubscribe_url }}wyświetla sam adres, który można wykorzystać do utworzenia przycisku lub linku o własnym wyglądzie.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>
Nie muszą Państwo z nich korzystać: do każdego e-maila marketingowego i tak dodawana jest stopka z opcją rezygnacji z subskrypcji. Gdy wyświetlana treść zawiera już ten link, w stopce pomija się zdanie dotyczące rezygnacji z subskrypcji i dodaje się jedynie dane firmy. W temacie oraz w tekście podglądu obie zmienne nie wyświetlają się, a w szablonie transakcyjnym są one zawsze puste. Zobacz E-maile marketingowe i rezygnacje z subskrypcji.
Powiązane
- Przekazywanie danych z serwisu Shopify Flow - szczegółowe omówienie pola „Zmienne (JSON)”.
- Stworzenie szablonu wiadomości e-mail - gdzie należy umieścić te zmienne.
- E-maile marketingowe i rezygnacje z subskrypcji - szablony marketingowe, stopka umożliwiająca rezygnację z subskrypcji oraz lista rezygnacji.
- Sekrety - bezpieczne przechowywanie danych uwierzytelniających.
- Wyślij żądanie HTTP z Shopify Flow - zmienne w rzeczywistym żądaniu.
