Overførsel af data fra Shopify Flow
Dit e-mail-layout er en figur med huller i. Variabler (JSON) er den måde, hvorpå Shopify Flow udfylder disse huller.
Det her er den fejl, man oftest begår, så det er værd at bruge fem minutter på.
De to halvdele
| Hvor | Hvad du skriver | Eksempel |
|---|---|---|
| I dit e-mail-layout | Pladsholderen | Hi {{ variables.firstName }} |
| I »Shopify Flow«-handlingen | Den JSON-fil, der leverer den | {"firstName": "{{ order.customer.firstName }}"} |
Nøglen til venstre i JSON-filen skal stemme nøjagtigt overens med navnet efter »variables.« i dit layout - samme stavning, samme brug af store bogstaver. »firstName« og »firstname« er to forskellige variabler.
Lad appen generere JSON-koden for dig
Du behøver ikke at skrive det i hånden, og det bør du nok heller ikke.
Åbn dit layout. I sidepanelet (eller under fanen »Testvariabler« i den visuelle builder) finder du et kort med titlen »Brug iShopify Flow«, der indeholder den nøjagtige JSON-kode for det pågældende layout, hvor alle nøgler allerede er indstillet korrekt. Tryk på »Kopier JSON«, og indsæt den derefter i feltet »Variabler (JSON)« i din handling »Send transaktions-e-mail«.
Appen udfylder »Shopify Flow«-egenskaben for de felter, den genkender - kundens navn, ordrenavn, ordretotal, URL til status-siden og lignende. Alt, hvad den ikke kan udlede, vises som »<pick a Flow variable>«, så du selv kan udfylde det.
Hvordan JSON-filen skal se ud
{
"firstName": "{{ order.customer.firstName }}",
"orderName": "{{ order.name }}",
"statusPageUrl": "{{ order.statusPageUrl }}"
}
Regler, der er værd at kende:
- Sæt dobbelte anførselstegn omkring hver Shopify Flow-værdi.
"orderName": {{ order.name }}er ugyldig JSON;"orderName": "{{ order.name }}"er korrekt. - Kommaer mellem oplysningerne, men ikke efter den sidste.
- Du kan selv vælge navnene på nøglerne. De skal blot passe til dit layout. Hvis der i dit layout står »
{{ variables.kunde }}«, skal nøglen hedde »kunde«. - Værdier vises som tekst. Tal og datoer vises i den form, som Shopify Flow har gengivet dem i.


Den mest almindelige fejl: varelinjer
En ordre består af mange varelinjer, så der er ikke en enkelt variant.title, der kan læses. Dette returnerer intet:
{{ order.lineItems.variant.title }}
Du har to gode muligheder.
Mulighed 1 - gentagelse inden for layoutet. Send listen, og gentag derefter. I Shopify Flow-handlingen:
{
"items": "{{ order.lineItems | json }}"
}
Brug en Loop-blok i dit layout:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
</tr>
{% endfor %}
Mulighed 2 - udflad den i Shopify Flow. Hvis du kun har brug for én tekstlinje, skal du opbygge den i Shopify Flow ved hjælp af en »for«-løkke og sende den færdige streng:
{
"itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}
Hvis appen finder en variabel, der ligner varelinjer - altså noget med navne som variant, product, item, sku eller quantity - advarer den dig om dette på kortet »Brug i Shopify Flow«.
Testværdierne er ikke realtidsværdier
Det snubler næsten alle.
- Testvariablerne i layouteditoren styrer udelukkende forhåndsvisningen og funktionen »Send test-e-mail«.
- Et live Shopify Flow-kørsel ignorerer dem fuldstændigt og bruger det, som Shopify Flow-handlingen sender.
En test-e-mail, der ser perfekt ud, beviser altså, at dit design fungerer. Den beviser intet om din Shopify Flow-konfiguration. Bekræft altid ved at køre en rigtig arbejdsgang.
Når en variabel er tom
Siden version 1.10.0 giver appen dig besked, i stedet for at lade dig gætte.
Hvis en live-sendning sætter en variabel til intet, vises der et mærke med teksten »Tomme variabler« ved posten i historikken, og når man åbner den, vises det præcist, hvilke variabler der er tale om, opdelt i to tilfælde:
| Sag | Betydning | Rettelse |
|---|---|---|
| Sendt af Shopify Flow, men tom | Nøglen var i din JSON, men Shopify Flow genererede ingen værdi | Stien til Shopify Flow-egenskaben er forkert eller helt tom for denne ordre (en gæstekasse har ingen customer.firstName) |
| Er slet ikke sendt af Shopify Flow | Nøglen mangler helt i din JSON-fil | Tilføj det - knappen »Kopier JSON« giver dig det fulde sæt |
Beskyttelse mod tomme værdier
For alt, hvad der er valgfrit, skal du indsætte en reserve i layoutet, så kunden aldrig får vist en tom side:
Hi {{ variables.firstName | default: "there" }}
Når der er angivet et »default:«-filter, betragter appen en tom værdi som tilsigtet og viser derfor ingen advarsel herom.
Tjekliste
- Kopier JSON-koden fra kortet »Brug i Shopify Flow« på dit layout.
- Indsæt det i feltet »Variabler (JSON)« i Shopify Flow-handlingen.
- Erstat alle forekomster af »
<pick a Flow variable>« ved hjælp af Shopify Flows variabelvælger. - Gennemløb varelinjerne i en løkke i stedet for at læse dem direkte.
- Tilføj »
| default:« til alt, der er valgfrit. - Kør arbejdsgangen i praksis, og se derefter under »Historik«, om der vises et mærke for »Tomme variabler«.
Relateret
- Variabler og væske - den komplette reference til skabeloner.
- Opret et e-mail-layout - udformningen af selve layoutet.
- Historik og fejlfinding - at læse en mislykket eller tom afsendelse.

