Daten aus Shopify Flow übergeben
Variablen (JSON) für die Shopify Flow Aktion „Transaktions-E-Mail senden“ korrekt befüllen: Platzhalter, Schreibweise und Schleifen für Artikellisten.
Das Layout Ihrer E-Mail gleicht einer Form mit Lücken. Mithilfe von Variablen (JSON) füllt Shopify Flow diese Lücken aus.
Dies ist der häufigste Fehler, den man begeht; daher lohnt es sich, sich dafür fünf Minuten Zeit zu nehmen.
Die beiden Hälften
| Wo | Was Sie schreiben | Beispiel |
|---|---|---|
| In Ihrem E-Mail-Layout | Der Platzhalter | Hi {{ variables.firstName }} |
| In der Aktion „Shopify Flow“ | Das JSON, aus dem es stammt | {"firstName": "{{ order.customer.firstName }}"} |
Der Schlüssel auf der linken Seite des JSON-Codes muss genau mit dem Namen nach variables. in Ihrem Layout übereinstimmen - gleiche Schreibweise, gleiche Groß- und Kleinschreibung. firstName und firstname sind zwei verschiedene Variablen.
Lassen Sie die App das JSON für Sie erstellen
Sie müssen dies nicht von Hand schreiben, und Sie sollten es wahrscheinlich auch nicht tun.
Öffnen Sie Ihr Layout. In der Seitenleiste (oder auf der Registerkarte „Testvariablen“ im visuellen Builder) finden Sie eine Karte mit dem Titel „In Shopify Flow verwenden“, die den exakten JSON-Code für dieses Layout enthält, wobei alle Schlüssel bereits korrekt eingestellt sind. Klicken Sie auf „JSON kopieren“ und fügen Sie den Code anschließend in das Feld „Variablen (JSON)“ Ihrer Aktion „Transaktions-E-Mail senden“ ein.
Die App füllt die „Shopify Flow“-Eigenschaft für die Felder aus, die sie erkennt - Kundenname, Auftragsname, Gesamtsumme, URL der Statusseite und Ähnliches. Alles, was sie nicht ableiten kann, wird als <pick a Flow variable> angezeigt, damit Sie es ersetzen können.
Wie das JSON aussehen muss
{
"firstName": "{{ order.customer.firstName }}",
"orderName": "{{ order.name }}",
"statusPageUrl": "{{ order.statusPageUrl }}"
}
Wichtige Regeln:
- Setzen Sie jeden Shopify Flow-Wert in doppelte Anführungszeichen.
"orderName": {{ order.name }}ist ungültiges JSON;"orderName": "{{ order.name }}"ist korrekt. - Kommas zwischen den Einträgen, keines nach dem letzten.
- Die Namen der Schlüssel können Sie frei wählen. Sie müssen lediglich zu Ihrem Layout passen. Wenn in Ihrem Layout
{{ variables.kunde }}steht, lautet der Schlüsselkunde. - Werte werden als Text übertragen. Zahlen und Datumsangaben werden so übernommen, wie sie von Shopify Flow dargestellt wurden.


Der häufigste Fehler: Artikel
Eine Bestellung umfasst viele Artikel, daher gibt es kein einzelnes variant.title, das gelesen werden könnte. Dies liefert keine Ausgabe:
{{ order.lineItems.variant.title }}
Sie haben zwei gute Möglichkeiten.
Option 1 - Schleife innerhalb des Layouts. Senden Sie die Liste und führen Sie anschließend eine Iteration durch. In der Shopify Flow-Aktion:
{
"items": "{{ order.lineItems | json }}"
}
Verwenden Sie in Ihrem Layout einen „Loop“-Block:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
</tr>
{% endfor %}
Option 2 - Reduzieren Sie den Text in Shopify Flow. Wenn Sie nur eine Textzeile benötigen, erstellen Sie diese in Shopify Flow mithilfe einer for-Schleife und senden Sie die fertige Zeichenfolge:
{
"itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}
Wenn die App eine Variable erkennt, die wie Artikel-Daten aussieht - also alles, was wie variant, product, item, sku oder quantity benannt ist -, weist sie Sie auf der Karte „Verwendung in Shopify Flow“ darauf hin.
Die Testwerte sind keine Echtzeitwerte
Das bringt fast jeden aus dem Konzept.
- Testvariablen im Layout-Editor beeinflussen ausschließlich die Vorschau und die Funktion „Test-E-Mail senden“.
- Ein Shopify Flow-Lauf ignoriert diese vollständig und verwendet stattdessen die von der Shopify Flow-Aktion übermittelten Werte.
Eine Test-E-Mail, die einwandfrei aussieht, beweist also, dass Ihr Design funktioniert. Sie sagt jedoch nichts über Ihre Shopify Flow-Konfiguration aus. Überprüfen Sie dies stets durch einen tatsächlichen Workflow-Durchlauf.
Wenn eine Variable keinen Wert enthält
Seit Version 1.10.0 informiert Sie die App direkt, anstatt Sie im Unklaren zu lassen.
Wenn bei einem Live-Send eine Variable auf „Null“ gesetzt wird, wird der Eintrag im Verlauf mit dem Hinweis „Leere Variablen“ gekennzeichnet; beim Öffnen wird genau angezeigt, um welche es sich handelt, unterteilt in zwei Fälle:
| Fall | Bedeutung | Beheben |
|---|---|---|
| Gesendet von Shopify Flow, jedoch leer | Der Schlüssel war in Ihrem JSON enthalten, doch Shopify Flow hat keinen Wert zurückgegeben | Der Pfad der „Shopify Flow“-Eigenschaft ist falsch oder bei dieser Bestellung tatsächlich leer (bei einem Gast-Checkout gibt es kein customer.firstName). |
| Wurde überhaupt nicht von Shopify Flow gesendet | Der Schlüssel fehlt in Ihrer JSON-Datei vollständig | Fügen Sie es hinzu - über die Schaltfläche „JSON kopieren“ erhalten Sie den vollständigen Datensatz |
Schutz vor leeren Werten
Für alle optionalen Elemente sollten Sie im Layout eine Ausweichlösung vorsehen, damit der Kunde niemals eine leere Seite zu sehen bekommt:
Hi {{ variables.firstName | default: "there" }}
Wenn der Filter default: aktiviert ist, behandelt die App einen leeren Wert als beabsichtigt und gibt keine Warnung aus.
Checkliste
- Kopieren Sie den JSON-Code aus der Karte „In Shopify Flow verwenden“ auf Ihrem Layout.
- Fügen Sie ihn in das Feld „Variablen (JSON)“ der Shopify Flow-Aktion ein.
- Ersetzen Sie alle
<pick a Flow variable>-Elemente mithilfe der Variablenauswahl von Shopify Flow. - Führen Sie eine Schleife über die Artikel durch, anstatt diese direkt auszulesen.
- Fügen Sie
| default:zu allen optionalen Elementen hinzu. - Führen Sie den Workflow tatsächlich aus und überprüfen Sie anschließend im Verlauf, ob ein Hinweis auf leere Variablen angezeigt wird.
Verwandte Themen
- Variablen und Flüssigkeit - die vollständige Referenz zu den Vorlagen.
- Erstellen Sie ein E-Mail-Layout - die Gestaltung des Layouts selbst.
- Hintergrund und Fehlerbehebung - das Auslesen einer fehlgeschlagenen oder leeren Übertragung.
