Zmienne i ciecze

Zmienne i ciecze

Skopiuj stronę

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ż filtr json.
  • 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ą.

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