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.

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_link lub unsubscribe_url jest wymagana w niestandardowych wiadomościach e-mail z kodem Liquid. Jeśli masz aktywne śledzenie otwarć, wymagana jest również zmienna open_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:

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.

Opis zmiennych Liquid obsługiwanych przez Shopify Messaging
ZmiennaOpis
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.store_credit_account.balance | money_with_currency}}
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.
    • adres wyświetla adres sklepu, który zapewnia dostęp do następujących właściwości adresu:
      • address1
      • address2
      • city
      • country
      • phone
      • province
      • zip
    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.

    Opis zmiennych Liquid obsługiwanych przez Shopify Messaging dla porzuconego przeglądania, koszyka i przerwanej realizacji zakupu
    ZmiennaOpis
    abandoned_checkout.*

    Ta zmienna zapewnia dostęp do następujących właściwości przerwanej realizacji zakupu:

    • url wyświetla adres URL przerwanej realizacji zakupu.
    • line_items wyświetla pięć pierwszych pozycji pojedynczych przerwanej realizacji zakupu. Ponadto każdy line_items obiekt zawiera następujące właściwości dotyczące każdego produktu:
      • components
      • image_url
      • product_title
      • variant_title
      • quantity
    • line_items.components wyświetla elementy przerwanej realizacji zakupu. Ponadto każdy element obiekt zawiera następujące właściwości dotyczące każdego elementu:
      • image_url
      • quantity
      • product_title
      • variant_title
    • remaining_products_count wyświetla liczbę pozostałych pozycji pojedynczych, jeśli w przerwanej realizacji zakupu jest ich więcej niż pięć.
    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_price | money }}

    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: /products/great-product?ref=my-tracking-token

    landing_site_ref

    Wyodrębnia parametr odniesienia ze strony docelowej. Parametrami odniesienia mogą być: ref, source, r.

    Jeśli landing_site ma postać /products/great-product?ref=my-tracking-token, to landing_site_ref ma wartość my-tracking-token. Możesz wykonać określoną akcję, jeśli parametr odniesienia jest równy określonej wartości:

    {% 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: https://www.google.com/?s=great+products

    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ść
    true
    lub
    false
    w 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ść
    true
    jeśli w kasie znajduje się co najmniej jedna pozycja wymagająca wysyłki.
    subtotal_price
    Suma częściowa pozycji pojedynczych w kasie.
    email
    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: {{ attributes.gift-note }}

    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ść
    true
    jeśli realizacja zakupu nie wymaga wysyłki lub jeśli cena wysyłki wynosi zero.
    different_billing_address
    Zwraca wartość
    true
    lub
    false
    w 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.

    Opis zmiennych Liquid obsługiwanych przez Shopify Messaging
    ZmiennaOpis
    abandoned_visit.*

    Ta zmienna daje dostęp do następujących właściwości porzuconego koszyka lub przeglądania:

    • url wyświetla adres URL porzuconego koszyka lub przeglądania.
    • products_added_to_cart wyświetla pięć pierwszych pozycji produktów dodanych do koszyka podczas porzuconych odwiedzin. Ponadto każdy obiekt products_added_to_cart zawiera następujące właściwości dotyczące każdego produktu:
      • title
      • image_url
      • variant_title
      • quantity
    • products_viewed wyświetla pięć pierwszych produktów wyświetlonych podczas porzuconych odwiedzin. Ponadto każdy obiekt products_viewed zawiera następujące właściwości dotyczące każdego produktu:
      • title
      • description
      • image_url
      • url
      • image_alt_text
    • remaining_cart_products_count wyświetla liczbę pozostałych pozycji pojedynczych, jeśli w przerwanej realizacji zakupu znajduje się więcej niż pięć pozycji pojedynczych.

    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>