Tutorials: Liquid-Code schreiben
Neu bei Liquid? Diese Tutorials helfen Ihnen beim Einstieg in das Schreiben von Liquid-Code für einsteigerfreundliche Anwendungsfälle. Jedes Tutorial behandelt eine andere Kombination von Lernzielen, wie bedingte Logik und Operatoren.
Wenn Sie diese Tutorials abgeschlossen haben, können Sie:
- Liquid-Code für gängige Anwendungsfälle schreiben
- Bedingte Liquid-Logik verketten, um Nachrichten basierend auf Nutzerdaten zu personalisieren
- Variablen und Filter verwenden, um Gleichungen zu schreiben, die die Werte von Attributen nutzen
- Grundlegende Befehle in Liquid-Code erkennen und ein allgemeines Verständnis dafür entwickeln, was der Code bewirkt
| Tutorial | Lernziele |
|---|---|
| Nachrichten für Nutzersegmente personalisieren | Standardwerte, bedingte Logik |
| Warenkorb-Abbruch-Erinnerungen | Operatoren, bedingte Logik |
| Event-Countdown | Variablen, Datumsfilter |
| Monatliche Geburtstagsnachricht | Variablen, Datumsfilter, Operatoren |
| Lieblingsprodukt bewerben | Variablen, Datumsfilter, Gleichungen, Operatoren |
Personalisierte Nachrichten für Nutzersegmente
Lassen Sie uns Nachrichten für verschiedene Nutzersegmente anpassen, z. B. für VIP-Kund:innen und neue Abonnent:innen.
- Öffnen Sie die Nachricht mit personalisierten Begrüßungen, die gesendet werden soll, wenn Sie den Vornamen einer Nutzer:in haben und wenn nicht. Erstellen Sie dazu einen Liquid-Tag, der das Attribut
first_nameund einen Standardwert enthält, der verwendet wird, wennfirst_nameleer ist. In diesem Szenario verwenden wir „traveler“ als Standardwert.
Happy summer, {{${first_name} | default: "traveler"}}!
- Jetzt legen wir die Nachricht fest, die gesendet werden soll, wenn die Nutzer:in eine VIP-Kund:in ist. Dafür benötigen wir einen bedingten Logik-Tag:
if. Dieser Tag besagt, dass wenn das angepasste Attributvip_statusgleichVIPist, der folgende Liquid-Code ausgeführt wird. In diesem Fall wird eine bestimmte Nachricht gesendet.
{% if {{custom_attribute.${vip_status}}} == 'VIP' %}
Thank you for being a VIP customer! Enjoy your exclusive discount code: VIPSUMMR464.
- Senden wir eine angepasste Nachricht für Nutzer:innen, die neue Abonnent:innen sind. Wir verwenden den bedingten Logik-Tag
elsif, um festzulegen, dass wenn dervip_statusder Nutzer:innewist, die folgende Nachricht gesendet wird.
{% elsif {{custom_attribute.${vip_status}}} == 'new' %}
Thank you for subscribing! Enjoy your welcome discount code: NEWTRAVEL257.
- Was ist mit Nutzer:innen, die weder VIP noch neu sind? Wir können mit dem
else-Tag eine Nachricht an alle anderen Nutzer:innen senden, der festlegt, dass die folgende Nachricht gesendet werden soll, wenn die vorherigen Bedingungen nicht erfüllt sind. Dann können wir die bedingte Logik mit demendif-Tag schließen, da es keine weiteren VIP-Status zu berücksichtigen gibt.
{% else %}
Thanks for traveling with us! Enjoy your unique discount code: SUMMRTRVLS240.
{% endif %}
Vollständiger Liquid-Code
Happy summer, {{${first_name} | default: "traveler"}}!
{% if {{custom_attribute.${vip_status}}} == 'VIP' %}
Thank you for being a VIP customer! Enjoy your exclusive discount code: VIPSUMMR464.
{% elsif {{custom_attribute.${vip_status}}} == 'new' %}
Thank you for subscribing! Enjoy your welcome discount code: NEWTRAVEL257.
{% else %}
Thanks for traveling with us! Enjoy your unique discount code: SUMMRTRVLS240.
{% endif %}
Warenkorb-Abbruch-Erinnerungen
Senden wir personalisierte Nachrichten, um Nutzer:innen an Artikel in ihrem Warenkorb zu erinnern. Wir passen sie weiter an, sodass sie basierend auf der Anzahl der Artikel im Warenkorb gesendet werden – wenn drei oder weniger Artikel vorhanden sind, listen wir alle Artikel auf. Bei mehr als drei Artikeln senden wir eine kompaktere Nachricht.
- Prüfen wir zunächst, ob der Warenkorb der Nutzer:in leer ist, indem wir eine bedingte Liquid-Logik mit dem Operator
!=öffnen, der „ist nicht gleich“ bedeutet. In diesem Fall setzen wir die Bedingung so, dass das angepasste Attributcart_itemsnicht einem leeren Wert entspricht.
{% if {{custom_attribute.${cart_items}}} != blank %}
- Dann müssen wir den Fokus eingrenzen und prüfen, ob der Warenkorb mehr als drei Artikel enthält, indem wir den Operator
>verwenden, der „größer als“ bedeutet.
{% if {{custom_attribute.${cart_items}}} | size > 3 %}
- Schreiben Sie eine Nachricht, die die Nutzer:in mit ihrem Vornamen begrüßt, oder verwenden Sie „there“ als Standardwert, falls dieser nicht verfügbar ist. Geben Sie an, was angezeigt werden soll, wenn mehr als drei Artikel im Warenkorb sind. Da wir die Nutzer:in nicht mit einer vollständigen Liste überfordern möchten, listen wir die ersten drei
cart_itemsauf.
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items {{custom_attribute.${cart_items[0]}}}, {{custom_attribute.${cart_items[1]}}}, {{custom_attribute.${cart_items[2]}}}, and others are waiting for you.
- Verwenden Sie den
else-Tag, um festzulegen, was passieren soll, wenn die vorherigen Bedingungen nicht erfüllt sind (mit anderen Worten, wenncart_itemsleer ist oder weniger als drei enthält), und geben Sie dann die zu sendende Nachricht an. Da drei Artikel nicht viel Platz einnehmen, können wir alle auflisten. Wir verwenden den Liquid-Operatorjoinund,, um festzulegen, dass die Artikel durch ein Komma getrennt aufgelistet werden. Schließen Sie die Logik mitendif.
{% else %}
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items: {{{custom_attribute.${cart_items}}} | join: ', '} are waiting for you.
{% endif %}
- Verwenden Sie
elseund dann eineabort_message, um dem Liquid-Code mitzuteilen, dass keine Nachricht gesendet werden soll, wenn der Warenkorb keine der vorherigen Bedingungen erfüllt. Mit anderen Worten, wenn der Warenkorb leer ist. Schließen Sie die Logik mitendif.
{% else %}
{% abort_message('No items in cart') %}
{% endif %}
Vollständiger Liquid-Code
{% if {{custom_attribute.${cart_items}}} != blank %}
{% if {{custom_attribute.${cart_items}}} | size > 3 %}
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items {{custom_attribute.${cart_items[0]}}}, {{custom_attribute.${cart_items[1]}}}, {{custom_attribute.${cart_items[2]}}}, and others are waiting for you.
{% else %}
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items: {{{custom_attribute.${cart_items}}} | join: ', '} are waiting for you.
{% endif %}
{% else %}
{% abort_message('No items in cart') %}
{% endif %}
Event-Countdown
Senden wir Nutzer:innen eine Nachricht, die angibt, wie viele Tage bis zu einem Jubiläumsverkauf verbleiben. Dazu verwenden wir Variablen, um Gleichungen zu erstellen, die die Werte von Attributen manipulieren.
- Weisen wir zunächst der Variablen
sale_datedas angepasste Attributanniversary_datezu und wenden den Filterdate: "s"an. Dieser konvertiert dasanniversary_datein ein Zeitstempel-Format, das in Sekunden ausgedrückt wird, und weist diesen Wert dannsale_datezu.
{% assign sale_date = {{custom_attribute.${anniversary_date}}} | date: "%s" %}
- Wir müssen auch eine Variable zuweisen, die den heutigen Zeitstempel erfasst. Weisen wir die Variable
todaydem Wertnow(aktuelles Datum und Uhrzeit) zu und wenden dann den Filterdate: "%s"an.
{% assign today = 'now' | date: "%s" %}
- Berechnen wir nun, wie viele Sekunden zwischen jetzt (
today) und dem Jubiläumsverkauf (sale_date) liegen. Weisen Sie dazu der Variablendifferenceden Wert vonsale_dateminustodayzu.
{% assign difference = event_date | minus: today %}
- Jetzt müssen wir
differencein einen Wert umwandeln, den wir in einer Nachricht referenzieren können, da es nicht ideal ist, der Nutzer:in mitzuteilen, wie viele Sekunden es bis zu einem Verkauf sind. Weisen wirdifference_daysdemdifference-Wert zu und teilen ihn durch86400, um die Anzahl der Tage zu erhalten.
{% assign difference_days = difference | divided_by: 86400 %}
- Erstellen wir abschließend die zu sendende Nachricht.
Get ready! Our Anniversary Sale is in {{ difference_days }} days!
Vollständiger Liquid-Code
{% assign sale_date = {{custom_attribute.${anniversary_date}}} | date: "%s" %}
{% assign today = 'now' | date: "%s" %}
{% assign difference = event_date | minus: today %}
{% assign difference_days = difference | divided_by: 86400 %}
Get ready! Our Anniversary Sale is in {{ difference_days }} days!
Monatliche Geburtstagsnachricht
Senden wir eine besondere Aktion an alle Nutzer:innen, deren Geburtstag in den aktuellen Monat fällt. Nutzer:innen, die in diesem Monat keinen Geburtstag haben, erhalten keine Nachricht.
- Ziehen wir zunächst den aktuellen Monat. Wir weisen die Variable
this_monthdem Wertnow(aktuelles Datum und Uhrzeit) zu und verwenden dann den Filterdate: "%B", um festzulegen, dass die Variable dem Monat entsprechen soll.
{% assign this_month = 'now' | date: "%B" %}
- Ziehen wir nun den Geburtsmonat aus dem
date_of_birthder Nutzer:in. Wir weisen die Variablebirth_monthdem Wertdate_of_birthzu und verwenden dann den Filterdate: "%B".
{% assign birth_month = {{${date_of_birth}}} | date: "%B" %}
- Da wir nun zwei Variablen haben, die einen Monat als Wert enthalten, können wir sie mit bedingter Logik vergleichen. Setzen wir die Bedingung so, dass
this_monthdembirth_monthder Nutzer:in entspricht.
{% if {{this_month}} == {{birth_month}} %}
- Erstellen wir die Nachricht, die gesendet werden soll, wenn dieser Monat auch der Geburtsmonat der Nutzer:in ist.
We heard {{this_month}} is a special month! Enjoy a 50% discount on your purchase with code BIRTHDAY50 until the end of {{this_month}}.
- Verwenden Sie den
else-Tag, um festzulegen, was passiert, wenn die Bedingung nicht erfüllt ist (weil dieser Monat nicht der Geburtsmonat der Nutzer:in ist).
{% else %}
- Wir möchten keine Nachricht senden, wenn der Geburtsmonat der Nutzer:in nicht dieser Monat ist, also verwenden wir
abort_message, um die Nachricht abzubrechen, und schließen dann die bedingte Logik mitendif.
{% abort_message("Not their birthday month") %}
{% endif %}
Vollständiger Liquid-Code
{% assign this_month = 'now' | date: "%B" %}
{% assign birth_month = {{${date_of_birth}}} | date: "%B" %}
{% if {{this_month}} == {{birth_month}} %}
We heard {{this_month}} is a special month! Enjoy a 50% discount on your purchase with code BIRTHDAY50 until the end of {{this_month}}.
{% else %}
{% abort_message("Not their birthday month") %}
{% endif %}
Lieblingsprodukt bewerben
Bewerben wir das Lieblingsprodukt einer Nutzer:in, wenn ihr letzter Kauf mehr als sechs Monate zurückliegt.
- Zunächst verwenden wir bedingte Logik, um zu prüfen, ob wir das Lieblingsprodukt und das letzte Kaufdatum der Nutzer:in haben.
{% if {{custom_attribute.${favorite_product}}} == blank or {{custom_attribute.${last_purchase_date}}} == blank %}
- Dann legen wir fest, dass keine Nachricht gesendet werden soll, wenn wir das Lieblingsprodukt oder das letzte Kaufdatum der Nutzer:in nicht haben.
{% abort_message("No favorite product or last purchase date") %}
- Wir verwenden
else, um festzulegen, was passieren soll, wenn die obige Bedingung nicht erfüllt ist (weil wir das Lieblingsprodukt und das letzte Kaufdatum der Nutzer:in haben).
{% else %}
- Wenn wir das Kaufdatum haben, müssen wir es einer Variablen zuweisen, damit wir es mit dem heutigen Datum vergleichen können. Erstellen wir zunächst einen Wert für das heutige Datum, indem wir die Variable
todaydem Wertnow(aktuelles Datum und Uhrzeit) zuweisen und den Filterdate: "%s"verwenden, um den Wert in ein Zeitstempel-Format in Sekunden umzuwandeln. Wir fügen den Filterplus: 0hinzu, um eine „0“ zum Zeitstempel hinzuzufügen. Dies ändert den Wert des Zeitstempels nicht, ist aber nützlich für die Verwendung des Zeitstempels in zukünftigen Gleichungen.
{% assign today = 'now' | date: "%s" | plus: 0 %}
- Erfassen wir nun das letzte Kaufdatum in Sekunden, indem wir die Variable
last_purchase_datedem angepassten Attributlast_purchase_datezuweisen und den Filterdate: "s"verwenden. Wir fügen erneut den Filterplus: 0hinzu.
{% assign last_purchase_date = {{custom_attribute.${last_purchase_date}}} | date: "%s" | plus: 0 %}
- Da das letzte Kaufdatum und das heutige Datum in Sekunden vorliegen, müssen wir berechnen, wie viele Sekunden sechs Monate entsprechen. Erstellen wir eine Gleichung (ungefähr 6 Monate * 30,44 Tage * 24 Stunden * 60 Minuten * 60 Sekunden) und weisen sie der Variablen
six_monthszu. Wir verwendentimes, um die Multiplikation der Zeiteinheiten anzugeben.
{% assign six_months = 6 | times: 30.44 | times: 24 | times: 60 | times: 60 %}
- Da nun alle unsere Zeitwerte in Sekunden vorliegen, können wir ihre Werte in Gleichungen verwenden. Weisen wir eine Variable namens
today_minus_last_purchase_datezu, die den heutigen Wert nimmt und daslast_purchase_datedavon abzieht. Dies ergibt, wie viele Sekunden seit dem letzten Kauf vergangen sind.
{% assign today_minus_last_purchase_date = {{today | minus: last_purchase_date}} %}
- Vergleichen wir nun unsere Zeitwerte direkt in bedingter Logik. Definieren wir die Bedingung so, dass
today_minus_last_purchase_dategrößer oder gleich (>=) sechs Monaten ist. Mit anderen Worten: Der letzte Kauf liegt mindestens sechs Monate zurück.
{% if today_minus_last_purchase_date >= six_months %}
- Erstellen wir die Nachricht, die gesendet werden soll, wenn der letzte Kauf mindestens sechs Monate zurückliegt.
We noticed it’s been a while since you last purchased {{custom_attribute.${favorite_product}}}. Have you checked out our latest offerings?
- Wir verwenden den
else-Tag, um festzulegen, was passieren soll, wenn die Bedingung nicht erfüllt ist (weil der Kauf nicht mindestens sechs Monate zurückliegt).
{% else %}
- Wir fügen eine
abort_messageein, um die Nachricht abzubrechen.
{% abort_message("No favorite product or last purchase date") %}
- Zum Abschluss beenden wir den Liquid-Code mit zwei
endif-Tags. Das ersteendifschließt die bedingte Prüfung für das Lieblingsprodukt oder das letzte Kaufdatum, und das zweiteendifschließt die bedingte Prüfung, ob der letzte Kauf mindestens sechs Monate zurückliegt.
{% endif %}
{% endif %}
Vollständiger Liquid-Code
{% if {{custom_attribute.${favorite_product}}} == blank or {{custom_attribute.${last_purchase_date}}} == blank %}
{% abort_message("No favorite product or last purchase date") %}
{% else %}
{% assign today = 'now' | date: "%s" | plus: 0 %}
{% assign last_purchase_date = {{custom_attribute.${last_purchase_date}}} | date: "%s" | plus: 0 %}
{% assign six_months = 6 | times: 30.44 | times: 24 | times: 60 | times: 60 %}
{% assign today_minus_last_purchase_date = {{today | minus: last_purchase_date}} %}
{% if today_minus_last_purchase_date >= six_months %}
We noticed it’s been a while since you last purchased {{custom_attribute.${favorite_product}}}. Have you checked out our latest offerings?
{% else %}
{% abort_message("Last purchase was less than six months ago") %}
{% endif %}
{% endif %}