Overførsel af data fra Shopify Flow
Lær at udfylde feltet "Variabler (JSON)" i Shopify Flow korrekt, så variabler ikke vises tomme, og varelinjer med løkker virker.
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 de fem minutter værd.
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 dette i hånden, og det bør du nok heller ikke.
Åbn dit layout. I sidepanelet (eller fanen »Testvariabler« i den visuelle builder) finder du et kort med titlen »Brug i Shopify 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 statussiden 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 alle Shopify Flow-værdier i dobbelte anførselstegn.
"orderName": {{ order.name }}er ugyldig JSON;"orderName": "{{ order.name }}"er korrekt. - Kommaer mellem oplysningerne, men ikke efter den sidste.
- Du kan selv vælge navne 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 én bestemt fil (variant.title), der skal 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«-loop 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 varelinje-data - dvs. alt, der hedder variant, product, item, sku eller quantity - advarer den dig om dette på kortet »Brug i Shopify Flow«.
Testværdierne er ikke realtidsværdier
Det vildleder 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. Det siger dog intet om din Shopify Flow-konfiguration. Du skal altid kontrollere det 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 Historik, 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 faktisk tom for denne ordre (en gæstekøb har ingen customer.firstName) |
| Er slet ikke sendt af Shopify Flow | Nøglen mangler helt i din JSON | 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 modtager et tomt dokument:
Hi {{ variables.firstName | default: "there" }}
Når der er indstillet et »default:«-filter, betragter appen en tom værdi som bevidst og viser ikke nogen 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 stedet for at læse dem direkte.
- Tilføj »
| default:« til alt, der er valgfrit. - Kør arbejdsgangen i praksis, og tjek derefter under »Historik« for et mærke med teksten »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.
