Variablen und Flüssigkeit

Variablen und Flüssigkeit

Seite kopieren

Liquid-Variablen für Shopify Flow: Betreff, Text und HTTP-Anfragen mit Variablen, Geheimnissen und Shop-Daten befüllen.

Alle dynamischen Elemente in dieser App basieren auf Liquid - derselben Vorlagensprache, die auch vShopify-Themes verwendet wird. Sie geben einen Platzhalter ein, und die App füllt diesen zum Zeitpunkt des Versands aus.

Die Namensräume

Namensraum Woher der Wert stammt Erhältlich in
{{ variables.key }} Das Feld „Variablen (JSON)“ bei der Aktion Shopify Flow Betreff und Text einer E-Mail, HTTP-URL, Header und Text
{{ secrets.key }} Die Seite „Geheimnisse“ Das Gleiche, zusätzlich SMTP-Benutzername und -Passwort
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} Ihr Shop E-Mail- und HTTP-Aktionen
{{ language }} Die Sprache, die der Shopify Flow gesendet hat, andernfalls die Hauptsprache des Layouts Betreff, Vorschautext und Haupttext der E-Mail - siehe Versenden Sie E-Mails in der Sprache Ihrer Kunden
{{ unsubscribe_link }}, {{ unsubscribe_url }} Der Abmeldelink für den Empfänger, ausschließlich in Marketing-Layouts E-Mail-Text; leer in Transaktionsvorlagen - siehe unten
{{ flow.key }} Die Rohdaten der Shopify Flow-Payload Ausschließlich HTTP-Anfragen

Auf der Registerkarte „Systemvariablen“ im Editor werden die Shop-Werte mit ihren aktuellen Inhalten aufgelistet; durch Anklicken eines Wertes wird dieser kopiert.

Übergabe von Variablen aus Shopify Flow

Fügen Sie in der Shopify Flow-Aktion ein JSON-Objekt in das Feld „Variablen (JSON)“ ein:

{
  "firstName": "{{ customer.firstName }}",
  "orderNumber": "{{ order.name }}",
  "total": "{{ order.totalPriceSet.shopMoney.amount }}"
}

Verweisen Sie dann an beliebiger Stelle im Layout auf diese Elemente:

Hi {{ variables.firstName }}, your order {{ variables.orderNumber }} is on its way.

Die Wahl der Schlüssel liegt bei Ihnen. Was auch immer Sie auf der linken Seite eingeben, wird nach variables. verwendet, wobei die Schreibweise und die Groß- und Kleinschreibung exakt übereinstimmen müssen.

Sie müssen diesen JSON-Code nicht von Hand schreiben. Jedes Layout verfügt über eine Karte „In Shopify Flow verwenden“, auf der der richtige JSON-Code zum Kopieren bereitsteht - siehe Daten aus Shopify Flow übergeben.

Filter

Standard-Flüssigkeitsfilter funktionieren. Am nützlichsten ist default, das Sie vor einem leeren Wert schützt:

Hi {{ variables.firstName | default: "there" }}

Andere verhalten sich so, wie man es erwarten würde:

{{ variables.productTitle | upcase }}
{{ variables.total | round: 2 }}
{{ variables.note | truncate: 100 }}

Wenn eine Variable nicht angezeigt wird

Ein Live-Send, der jede referenzierte Variable auf „nothing“ setzt, erhält im Verlauf das Abzeichen „Leere Variablen“. Beim Öffnen des Eintrags werden diese benannt, wodurch zwei unterschiedliche Probleme voneinander abgegrenzt werden:

  • Von Shopify Flow gesendet, aber leer - der Schlüssel war in Ihrem JSON enthalten, aber Shopify Flow hat keinen Wert generiert. In der Regel liegt dies an einem falschen Eigenschaftspfad oder an einem Feld, das für diesen Datensatz tatsächlich leer ist (bei einem Checkout gibt es keinen Vornamen des Kunden).
  • Dies wurde überhaupt nicht von Shopify Flow gesendet - der Schlüssel fehlt vollständig in Ihrem JSON.

Durch Hinzufügen eines Fallbacks | default: wird die Leerstelle als beabsichtigt gekennzeichnet, und die App zeigt keine Warnung mehr dazu an.

Bedingte Anweisungen und Schleifen

Verwenden Sie den **HTML-/Code-**Block für Bedingungen:

{% 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 %}

Verwenden Sie den „Loop“-Block, um ein Array zu durchlaufen, beispielsweise die Artikel einer Bestellung:

{% for item in variables.items %}
  <tr>
    <td>{{ item.title }}</td>
    <td>{{ item.quantity }}</td>
    <td>{{ item.price }}</td>
  </tr>
{% endfor %}

Übergeben Sie das Array aus Shopify Flow als JSON:

{
  "items": [
    { "title": "Classic White T-Shirt", "quantity": 2, "price": "29.00" },
    { "title": "Eco Water Bottle", "quantity": 1, "price": "19.00" }
  ]
}

Um eine Schleife im Builder in der Vorschau anzuzeigen, geben Sie dasselbe JSON-Array als Wert auf der Registerkarte „Testvariablen“ ein.

Objekte verhalten sich in E-Mails und bei HTTP unterschiedlich

Dies ist die eine wichtige Besonderheit, die Sie kennen sollten.

  • Bei einer HTTP-Anfrage wird ein Objekt oder Array durch die Interpolation automatisch in JSON serialisiert. Aus {{ variables.records }} wird im Anfragetext ein korrektes JSON-Array. Falls Sie dies explizit festlegen möchten, steht Ihnen zudem der Filter json zur Verfügung.
  • In einer E-Mail findet eine solche Umwandlung nicht statt. Bei der Interpolation eines gesamten Objekts wird der Text wörtlich als [object Object] wiedergegeben.

Verwenden Sie daher in E-Mails stets den Objektbezug, anstatt ihn auszuschreiben:

Wrong:  {{ variables.customer }}
Right:  {{ variables.customer.firstName }} {{ variables.customer.lastName }}

Oder durchlaufen Sie ein Array in einer Schleife, anstatt es vollständig auszugeben.

Geheimnisse in Vorlagen

Auf ein gespeichertes Geheimnis verweisen Sie auf dieselbe Weise:

Authorization: Bearer {{ secrets.airtableAccessToken }}

Verwenden Sie genau folgende Syntax: {{ secrets.keyName }}. Folgende Varianten funktionieren nicht:

  • {{ secret.keyName }} - Singular
  • {{ secrets['keyName'] }} - Klammersyntax

Bei Schlüsselnamen wird zwischen Groß- und Kleinschreibung unterschieden. Siehe Geheimnisse.

Überschreibung des HTTP-Anfrage-Body

Das Feld „Variablen“ der HTTP-Aktion verfügt über einen zweiten Modus. Wenn Sie den Schlüssel body übergeben, wird der gespeicherte Request-Body vollständig ersetzt:

{
  "body": { "anything": "you like", "shaped": ["however"] }
}

Dies ist nützlich, wenn die Form der Payload durch einen früheren Shopify Flow-Schritt festgelegt wird. Die einzige Ausnahme: Wenn Ihr gespeicherter Körper selbst auf {{ variables.body }} verweist, wird er stattdessen als gewöhnliche Variable behandelt.

Überprüfung dessen, was Sie geschrieben haben

Die Vorschau auf der Seite wertet Liquid nicht aus - sie zeigt die Tags so an, wie sie geschrieben sind. Um die aufgelösten Werte anzuzeigen:

  • Verwenden Sie für E-Mails die Funktion „Test-E-Mail senden“ im Layout-Editor.
  • Verwenden Sie für HTTP-Anfragen die Schaltfläche „Testen“, über die neben der Antwort auch die aufgelöste URL und der aufgelöste Body angezeigt werden.

Ein Layout mit dem E-Mail-Typ „Marketing“ verfügt über zwei weitere Variablen. Jeder Empfänger einer Marketing-E-Mail hat seinen eigenen Link zum Abbestellen, und diese Variablen fügen ihn ein:

  • {{ unsubscribe_link }} Zeigt einen Link mit dem Text „Abmelden“ aus den Einstellungen (oder dem des jeweiligen Layouts) an.
  • {{ unsubscribe_url }} gibt die reine Adresse aus - für eine Schaltfläche oder einen Anker, deren/dessen Gestaltung Sie selbst vornehmen.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>

Sie müssen diese nicht verwenden: Jeder Marketing-E-Mail wird ohnehin eine Fußzeile zum Abbestellen angehängt. Wenn der gerenderte Haupttext bereits den Link enthält, lässt die Fußzeile den Satz zum Abbestellen weg und fügt lediglich die Daten des Unternehmens hinzu. In der Betreffzeile und im Vorschautext werden beide Variablen nicht angezeigt, und in einem Transaktionslayout sind sie stets leer. Siehe Marketing-E-Mails und Abmeldungen.

Verwandte Themen