Overføring av data fra Shopify Flow
Fyll ut Variabler (JSON) i Shopify Flow-handlingen Send Transactional Email, få nøklene riktige og finn ut hvorfor en variabel vises tom.
E-postoppsettet ditt er en figur med hull i. Variabler (JSON) er måten Shopify Flow bruker for å fylle disse hullene.
Dette er den vanligste feilen man gjør, så det er verdt å bruke fem minutter på det.
De to halvdelene
| Hvor | Det du skriver | Eksempel |
|---|---|---|
| I e-postoppsettet ditt | Plassholderen | Hi {{ variables.firstName }} |
| I **Shopify Flow-**handlingen | JSON-filen som leverer den | {"firstName": "{{ order.customer.firstName }}"} |
Nøkkelen til venstre i JSON-filen må stemme nøyaktig overens med navnet etter variables. i oppsettet ditt - samme stavemåte, samme bruk av store bokstaver. firstName og firstname er to forskjellige variabler.
La appen skrive JSON-koden for deg
Du trenger ikke å skrive dette for hånd, og det bør du nok heller ikke.
Åpne oppsettet ditt. I sidepanelet (eller under fanen Testvariabler i den visuelle byggeren) finnes det et «Bruk i Shopify Flow»-kort som inneholder den nøyaktige JSON-koden for det aktuelle oppsettet, der alle nøkler allerede er riktige. Trykk på Kopier JSON, og lim den deretter inn i feltet Variabler (JSON) i handlingen Send Transactional Email.
Appen fyller ut Shopify Flow-egenskapen for feltene den gjenkjenner - kundenavn, ordrenavn, ordretotal, URL til statusiden og lignende. Alt den ikke kan utlede, vises som <pick a Flow variable>, slik at du kan fylle det inn selv.
Hvordan JSON-filen skal se ut
{
"firstName": "{{ order.customer.firstName }}",
"orderName": "{{ order.name }}",
"statusPageUrl": "{{ order.statusPageUrl }}"
}
Regler det er verdt å kjenne til:
- Sett alle Shopify Flow-verdier i doble anførselstegn.
"orderName": {{ order.name }}er ugyldig JSON;"orderName": "{{ order.name }}"er riktig. - Komma mellom oppføringene, men ikke etter den siste.
- Du kan selv velge nøkkelnavn. De må bare stemme overens med oppsettet ditt. Hvis oppsettet ditt inneholder
{{ variables.kunde }}, er nøkkelenkunde. - Verdiene kommer inn som tekst. Tall og datoer vises slik Shopify Flow har gjengitt dem.


Den vanligste feilen: linjeposter
En ordre består av mange linjeposter, så det finnes ikke én enkelt variant.title-verdi å hente ut. Dette gir ingen resultater:
{{ order.lineItems.variant.title }}
Du har to gode alternativer.
Alternativ 1 - løkke inne i oppsettet. Send listen, og gå deretter gjennom den. I Shopify Flow-handlingen:
{
"items": "{{ order.lineItems | json }}"
}
Bruk en Loop-blokk i oppsettet ditt:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
</tr>
{% endfor %}
Alternativ 2 - forenkle den i Shopify Flow. Hvis du bare trenger én tekstlinje, kan du lage den i Shopify Flow med en for-sløyfe og sende den ferdige teksten:
{
"itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}
Hvis appen oppdager en variabel som ser ut som varelinjedata - alt som heter variant, product, item, sku eller quantity - vil den gi deg en advarsel om dette på kortet «Bruk i Shopify Flow».
Testverdiene er ikke sanntidsverdier
Dette er noe nesten alle snubler over.
- Testvariablene i layoutredigereren påvirker kun forhåndsvisningen og funksjonen Send test-e-post.
- En kjøring av Shopify Flow i produksjonsmiljøet ignorerer dem fullstendig og bruker det som Shopify Flow-handlingen sender.
En test-e-post som ser perfekt ut, beviser altså at designet ditt fungerer. Det sier imidlertid ingenting om konfigurasjonen av Shopify Flow. Sjekk alltid ved å kjøre en ekte arbeidsflyt.
Når en variabel er tom
Siden versjon 1.10.0 gir appen deg beskjed, i stedet for å la deg gjette.
Hvis en live-sending setter en variabel til null, vises det et Tomme variabler-merke ved oppføringen i Historikk, og når man åpner den, vises det nøyaktig hvilke variabler det gjelder, delt inn i to tilfeller:
| Sak | Betydning | Løsning |
|---|---|---|
| Sendt via Shopify Flow, men tom | Nøkkelen var i JSON-filen din, men Shopify Flow genererte ingen verdi | Shopify Flow-egenskapsbanen er feil, eller helt tom for denne bestillingen (en gjestekasse har ingen customer.firstName) |
| Ikke sendt via Shopify Flow i det hele tatt | Nøkkelen mangler helt i JSON-filen din | Legg det til - knappen «Kopier JSON» gir deg hele settet |
Beskyttelse mot tomme verdier
For alt som er valgfritt, bør du legge inn en reserve i oppsettet, slik at kunden aldri får se et tomt felt:
Hi {{ variables.firstName | default: "there" }}
Når default:-filteret er aktivert, tolker appen en tom verdi som tilsiktet og vil ikke gi noen advarsel om dette.
Sjekkliste
- Kopier JSON-koden fra kortet «Bruk i Shopify Flow» i oppsettet ditt.
- Lim det inn i feltet Variabler (JSON) i Shopify Flow-handlingen.
- Erstatt alle forekomster av
<pick a Flow variable>med Shopify Flows variabelvelger. - Gå gjennom linjepostene i en løkke i stedet for å lese dem direkte.
- Legg til
| default:for alle valgfrie elementer. - Kjør arbeidsflyten på ordentlig, og sjekk deretter Historikk for å se om det vises et merke for Tomme variabler.
Relatert
- Variabler og væske - den fullstendige referansen for maler.
- Lag et e-postoppsett - utforming av selve oppsettet.
- Historikk og feilsøking - lesing av en mislykket eller tom sending.
