Dostosowywanie kampanii Shopify Messaging za pomocą języka Liquid
Liquid to prosty, łatwy w użyciu język programowania Shopify, ten sam, za pomocą którego tworzone są szablony z Shopify Theme Store.
Możesz użyć niestandardowego kodu Liquid, aby ulepszyć swoje wiadomości Shopify Messaging poprzez utworzenie w całości niestandardowo zakodowanej wiadomości e-mail lub dodanie niestandardowej sekcji Liquid do szablonu. Opcje te umożliwiają wprowadzenie niestandardowego kodu Liquid lub HTML.
Możesz używać niestandardowego kodu Liquid do wyświetlania niestandardowych zasobów, takich jak obrazy obok siebie, niestandardowe przyciski, obrazy o niestandardowym rozmiarze i niestandardowe rozmiary sekcji.
Na tej stronie
Kwestie do rozważenia
Zapoznaj się z poniższymi kwestiami, zanim zaczniesz dodawać niestandardowy kod Liquid do wiadomości Shopify Messaging:
- Zmienne, które umieszczasz w kodzie, muszą być obsługiwane przez niestandardowy kod Liquid.
- Niestandardową sekcję Liquid można utworzyć tylko na urządzeniu stacjonarnym.
- Zmienna
unsubscribe_linklubunsubscribe_urljest wymagana w niestandardowych wiadomościach e-mail z kodem Liquid. Jeśli masz aktywne śledzenie otwarć, wymagana jest również zmiennaopen_tracking. Dowiedz się więcej o dodawaniu wymaganych zmiennych do wiadomości e-mail. - Wprowadzany kod ma następujące limity:
- Maksymalnie 50 kilobajtów (KB) dla niestandardowych sekcji Liquid.
- Maksymalnie 500 KB dla niestandardowo zakodowanych wiadomości e-mail z kodem Liquid.
Tworzenie niestandardowo zakodowanej wiadomości e-mail za pomocą języka Liquid
Jeśli chcesz użyć niestandardowego kodu Liquid podczas tworzenia wiadomości e-mail, możesz dodać niestandardową sekcję Liquid lub utworzyć wiadomość e-mail w całości z niestandardowego kodu Liquid, wybierając opcję Napisz własny kod podczas tworzenia kampanii Shopify Messaging.
Zmienne Liquid obsługiwane w niestandardowym kodzie Liquid
Możesz używać obsługiwanych zmiennych do dostosowywania wiadomości e-mail Shopify Messaging za pomocą kodu Liquid. Możesz przejrzeć listy obsługiwanych zmiennych Liquid dla następujących typów szablonów:
- Wszystkie szablony e-maili
- Szablony e-maili dotyczących porzuconej realizacji zakupu
- Szablony e-maili dotyczących porzuconego przeglądania i porzuconego koszyka
Zmienne Liquid obsługiwane we wszystkich szablonach e-maili
Możesz użyć poniższych zmiennych, aby dostosować dowolne wiadomości e-mail Shopify Messaging za pomocą kodu Liquid.
| Zmienna | Opis |
|---|---|
all_products | Wszystkie produkty w sklepie. |
customer.accepts_marketing | Zwraca wartość true, jeśli klient wyraża zgodę na marketing, w przeciwnym razie zwraca wartość false. |
customer.addresses | Zwraca wszystkie adresy powiązane z klientem. |
customer.addresses_count | Zwraca liczbę adresów powiązanych z klientem. |
customer.b2b? | Zwraca wartość true, jeśli klient jest klientem B2B, w przeciwnym razie zwraca wartość false. |
customer.current_location | Zwraca aktualnie wybraną lokalizację firmy dla klienta. |
customer.default_address | Zwraca domyślny adres klienta. |
customer.email | Zwraca adres e-mail klienta. |
customer.first_name | Zwraca imię klienta. |
customer.has_account | Zwraca wartość true, jeśli adres e-mail klienta jest powiązany z kontem klienta, w przeciwnym razie zwraca wartość false. |
customer.has_avatar? | Zwraca wartość true, jeśli klient ma awatar powiązany z kontem, lub false w przeciwnym razie. |
customer.id | Zwraca ID klienta. |
customer.last_name | Zwraca nazwisko klienta. |
customer.last_order | Zwraca ostatnie zamówienie złożone przez klienta, z wyłączeniem zamówień testowych. |
customer.name | Zwraca imię i nazwisko klienta. |
customer.orders | Zwraca wszystkie zamówienia złożone przez klienta. |
customer.orders_count | Zwraca łączną liczbę zamówień złożonych przez klienta. |
customer.payment_methods | Zwraca zapisane metody płatności klienta. |
customer.phone | Zwraca numer telefonu klienta. Numer telefonu jest podawany tylko wtedy, gdy klient użył go podczas realizacji zakupu, wyraził zgodę na otrzymywanie powiadomień SMS lub został on ręcznie dodany do jego konta klienta. |
customer.store_credit_account.balance | Zwraca saldo kredytów sklepowych klienta w walucie powiązanej z danym kontekstem. Na przykład: |
customer.tags | Zwraca tagi powiązane z klientem. |
customer.tax_exempt | Zwraca wartość true, jeśli klient jest zwolniony z podatków, lub false w przeciwnym razie. |
customer.total_spent | Zwraca łączną kwotę, jaką klient wydał na wszystkie zamówienia w Twoim sklepie. |
email.* | Ta zmienna zapewnia dostęp do następujących właściwości e-maila: subject wyświetla temat e-maila.preview_text wyświetla tekst podglądu e-maila. |
open_tracking | Ta zmienna zapewnia dostęp do wstępnie sformatowanego bloku śledzenia otwarć. Zmienna ta jest wymagana, jeśli tworzysz e-maila z niestandardowym kodem i masz aktywowane śledzenie otwarć. |
shop.* | Ta zmienna zapewnia dostęp do następujących właściwości sklepu:
name wyświetla nazwę sklepu.domain wyświetla domenę podstawową sklepu.url wyświetla adres URL sklepu.shopify_domain wyświetla domenę Shopify sklepu.
|
unsubscribe_url | Ta zmienna zapewnia dostęp do surowego adresu URL anulowania subskrypcji i można ją dostosować. W przypadku tworzenia e-maila z niestandardowym kodem wymagane jest dołączenie zmiennej unsubscribe_url lub unsubscribe_link. Obie zmienne, unsubscribe_url i unsubscribe_link, zawsze wskazują domenę podstawową sklepu online i nie można ich modyfikować w celu przekierowania w inne miejsce. |
Zmienne Liquid obsługiwane w e-mailach dotyczących przerwanej realizacji zakupu
Możesz użyć następujących zmiennych, aby dostosować za pomocą Liquid wiadomości e-mail Shopify Messaging dotyczące przerwanej realizacji zakupu.
Zmienna abandoned_checkout jest wypełniana tylko wtedy, gdy e-mail jest częścią automatyzacji marketingowej dotyczącej przerwanej realizacji zakupu. W przeciwnym razie zmienna ma wartość null.
| Zmienna | Opis |
|---|---|
abandoned_checkout.* | Ta zmienna zapewnia dostęp do następujących właściwości przerwanej realizacji zakupu:
|
id(checkout ID) | Unikalny ID realizacji zakupu do użytku wewnętrznego. |
shop | Nazwa Twojego sklepu Shopify. |
name | Nazwa przerwanej realizacji zakupu, znana również jako numer realizacji zakupu. |
total_price | Łączna cena zamówienia (suma częściowa + koszt wysyłki - rabat na wysyłkę + podatek). |
shipping_price |
Cena wysyłki. Przykład: |
shipping_address | Adres wysyłki. |
billing_address | Adres rozliczeniowy. |
line_items | Lista wszystkich pozycji pojedynczych w przerwanej realizacji zakupu. |
unavailable_line_items | Lista wszystkich pozycji pojedynczych w przerwanej realizacji zakupu, które nie są dostępne. |
note | Notatka dołączona do przerwanej realizacji zakupu. |
landing_site |
Ścieżka strony docelowej, z której korzystał klient. Jest to pierwsza strona, na którą klient wszedł, docierając do sklepu. Przykład: |
landing_site_ref |
Wyodrębnia parametr odniesienia ze strony docelowej. Parametrami odniesienia mogą być: Jeśli {% if landing_site_ref == 'my-tracking-token' %}
My action...
{% endif %}
|
referring_site |
Adres URL obiektu odsyłającego, który sprowadził klienta do sklepu. Przykład: |
created_at | Data i godzina utworzenia przez klienta realizacji zakupu, którą następnie przerwał. |
closed_at | Data i godzina zamknięcia realizacji zakupu. |
customer_locale | Dwu- lub trzyliterowy kod języka dla ustawień regionalnych klienta, opcjonalnie z modyfikatorem regionu. Na przykład: en, en-CA |
item_count | Suma ilości wszystkich pozycji. |
unique_gateways | Lista unikalnych dostawców płatności dostępnych w kasie. |
discount | Rabat zastosowany do koszyka lub pozycji pojedynczej w ramach przerwanej realizacji zakupu. |
discounts | Lista rabatów zastosowanych do realizacji zakupu. |
successfully_applied_discounts | Rabaty, które zostały pomyślnie zastosowane do realizacji zakupu. |
discounts_amount | Kwota rabatu w dolarach wynikająca z zastosowania wszystkich rabatów. Przykład: +5,00 USD |
discounts_savings | Kwota oszczędności w dolarach wynikająca z zastosowania wszystkich rabatów. Przykład: -5,00 USD |
buyer_accepts_marketing | Zwraca wartość truelub falsew zależności od tego, czy klient zaakceptował działania marketingowe podczas przerwanej realizacji zakupu. |
subtotal_line_items | Pozycje pojedyncze używane do obliczenia sumy częściowej w kasie, z wyłączeniem wszelkich pozycji pojedynczych z napiwkiem. |
requires_shipping | Zwraca wartość truejeśli w kasie znajduje się co najmniej jedna pozycja wymagająca wysyłki. |
subtotal_price | Suma częściowa pozycji pojedynczych w kasie. |
| Adres e-mail powiązany z przerwaną realizacją zakupu. | |
shop_name | Nazwa sklepu. |
tax_lines |
Podatki z podziałem na typy: {% for tax_line in tax_lines %}
{{ tax_line.title }} ({{ tax_line.rate_percentage }}%) : {{ tax_line.price | money_with_currency }}
{% endfor %}
|
tax_price | Łączna kwota podatków od wszystkich pozycji w kasie. |
attributes |
Wszelkie atrybuty dołączone do przerwanej realizacji zakupu. Przykład: |
shipping_method | Informacje o pierwszej metodzie wysyłki dostępnej w kasie. |
shipping_methods | Metody wysyłki dostępne w kasie. |
free | Zwraca wartość true if the total price of the checkout is zero. |
free_shipping | Zwraca wartość truejeśli realizacja zakupu nie wymaga wysyłki lub jeśli cena wysyłki wynosi zero. |
different_billing_address | Zwraca wartość truelub falsew zależności od tego, czy adres wysyłki jest taki sam jak adres rozliczeniowy. |
customer | Obiekt klienta zawierający atrybuty wyjściowe klienta. |
gift_cards | Karty prezentowe zastosowane do realizacji zakupu. |
gift_cards_amount | Kwota ceny w kasie, która zostałaby opłacona za pomocą kart prezentowych. |
transactions | Transakcje w ramach realizacji zakupu. |
shareable_url | Adres URL pierwszego produktu na liście pozycji pojedynczych. |
shareable_title | Tytuł produktu pierwszej pozycji pojedynczej. |
total_tip | Całkowity napiwek, który klient dodał w kasie. |
discount_applications | Opisuje, dlaczego i w jaki sposób pozycja została objęta rabatem w kasie. |
cart_level_discount_applications | Zastosowania rabatów specyficznych dla koszyka. |
currency | Waluta przerwanej realizacji zakupu. |
line_items_subtotal_price | Suma cen wszystkich pozycji pojedynczych w kasie po zastosowaniu rabatów na pozycje pojedyncze. |
Zmienne Liquid dla e-maili dotyczących porzuconego przeglądania i porzuconego koszyka
Zmienna abandoned_visit.* jest wypełniana tylko wtedy, gdy e-mail jest częścią automatyzacji marketingu dotyczącej porzuconego koszyka lub porzuconego przeglądania produktu. Zapoznaj się z poniższymi właściwościami, do których ta zmienna daje dostęp.
| Zmienna | Opis |
|---|---|
abandoned_visit.* | Ta zmienna daje dostęp do następujących właściwości porzuconego koszyka lub przeglądania:
|
Korzystanie z wymaganych zmiennych
Gdy tworzysz niestandardowego e-maila Liquid, wymagana jest zmienna unsubscribe_link lub unsubscribe_url. Jeśli aktywowałeś(-aś) śledzenie otwarć, wymagana jest również zmienna open_tracking.
Chociaż te zmienne można wstawić w dowolnym miejscu w kodzie e-maila, najczęściej dodaje się je w sekcji stopki, tak jak w poniższym przykładzie:
<div id="footer">{{ unsubscribe_link }} {{ open_tracking_block }}</div>Przykład niestandardowego kodu Liquid
W edytorze kodu możesz dodać niestandardowy kod Liquid lub HTML. Poniższy kod jest przykładem dodawania kodu Liquid w celu wyświetlenia nazwy sklepu, niestandardowego przycisku i obrazu o niestandardowym rozmiarze w wiadomości e-mail.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ shop.name }} Newsletter</title>
</head>
<body style="margin: 0; padding: 0; font-family: Arial, sans-serif; line-height: 1.5; color: #333333; background-color: #f5f5f5;">
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: #f5f5f5;">
<tr>
<td align="center" style="padding: 20px;">
<table cellpadding="0" cellspacing="0" border="0" width="600" style="background-color: #ffffff; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
<!-- Header -->
<tr>
<td align="center" style="background-color: #4a6de5; padding: 30px 20px; color: #ffffff;">
<h1 style="margin: 0; font-size: 28px; font-weight: bold;">{{ shop.name }}</h1>
<p style="margin: 10px 0 0; font-size: 16px;">Your Book Journey with Us</p>
</td>
</tr>
<!-- Content -->
<tr>
<td style="padding: 30px 20px;">
<!-- Greeting Section -->
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
<tr>
<td>
<h2 style="margin: 0 0 15px; font-size: 22px; color: #222222;">Hello {{ customer.name }}!</h2>
<p style="margin: 0 0 15px; font-size: 15px;">We hope this email finds you well. We noticed you're from {{ customer.default_address.city }}.</p>
{% if customer.email %}
<p style="margin: 0 0 15px; font-size: 15px;">Your registered email is: {{ customer.email }}</p>
{% endif %}
</td>
</tr>
</table>
<!-- Reading Journey Section -->
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
<tr>
<td>
<h2 style="margin: 0 0 15px; font-size: 20px; color: #4a6de5;">Your Reading Journey</h2>
<p style="margin: 0 0 15px; font-size: 15px;">Thank you for being a loyal customer! Here's a snapshot of your journey:</p>
<p style="margin: 0 0 15px; font-size: 15px;">You purchased {{ customer.orders_count }} books with us.</p>
{% if customer.last_order %}
<p style="margin: 0 0 15px; font-size: 15px;"> You last read {{customer.last_order.line_items[0].title}}. Great choice! </p>
{% endif %}
</td>
</tr>
</table>
<!-- Recommended Books Section -->
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
<tr>
<td>
<h2 style="margin: 0 0 15px; font-size: 20px; color: #4a6de5;">Books You Might Love</h2>
<p style="margin: 0 0 15px; font-size: 15px;">Based on your reading preferences, we've handpicked these titles just for you:</p>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="50%" style="padding-right: 10px;">
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: #f9f9f9; border-radius: 4px; padding: 15px;">
<tr>
<td align="center">
<!-- Image with proper email attributes -->
<img src="https:{{ all_products['product-1-handle'] | image_url: width: 200 }}"
alt="Product 1"
width="200"
height="200"
style="display: block; border: 0; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;"
title="Product 1"
border="0">
<h3 style="margin: 0 0 10px; font-size: 16px; color: #333333;">{{ all_products['product-1-handle'].title }}</h3>
<p style="margin: 0 0 10px; font-size: 15px; color: #4a6de5;">${{ all_products['product-1-handle'].price }}</p>
<a href="{{shop.domain}}{{ all_products['product-1-handle'].url }}" style="display: inline-block; background-color: #4a6de5; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-size: 14px;">View Book</a>
</td>
</tr>
</table>
</td>
<td width="50%" style="padding-left: 10px;">
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: #f9f9f9; border-radius: 4px; padding: 15px;">
<tr>
<td align="center">
<!-- Image with proper email attributes -->
<img src="https:{{ all_products['product-2-handle'] | image_url: width: 200 }}"
alt="Product 2"
width="200"
height="200"
style="display: block; border: 0; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;"
title="Product 2"
border="0">
<h3 style="margin: 0 0 10px; font-size: 16px; color: #333333;">{{ all_products['product-2-handle'].title }}</h3>
<p style="margin: 0 0 10px; font-size: 15px; color: #4a6de5;">${{ all_products['product-2-handle'].price }}</p>
<a href="{{shop.domain}}{{ all_products['product-2-handle'].url }}" style="display: inline-block; background-color: #4a6de5; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-size: 14px;">View Book</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- Book Club Section -->
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
<tr>
<td style="background-color: #f5f7ff; border-radius: 4px; padding: 25px; text-align: center;">
<h2 style="margin: 0 0 15px; font-size: 18px; color: #333333;">This Month's Top Picks</h2>
<p style="margin: 0 0 20px; font-size: 15px;">Discover what other readers are loving this month:</p>
<a href="{{ shop.url }}/pages/book-club" style="display: inline-block; background-color: #4a6de5; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-size: 14px;">Join Our Book Club</a>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td style="background-color: #f2f2f2; padding: 30px 20px; text-align: center;">
<p style="margin: 0 0 15px; font-size: 15px;">Best regards,<br><strong>{{ shop.name }} Team</strong></p>
<p style="margin: 0 0 15px; font-size: 12px; color: #999999;">© {{ 'now' | date: '%Y' }} {{ shop.name }}. All rights reserved.</p>
<p style="margin: 0 0 15px; font-size: 12px;">{{ open_tracking_block }}</p>
<a href="{{ unsubscribe_url }}" style="color: #999999; font-size: 12px; text-decoration: underline;">{{ unsubscribe_link }}</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>