Variabler og væske

Alt det dynamiske i denne app er skrevet i Liquid - det samme skabelonsprog, som temaerne på Shopify bruger. Du skriver en pladsholder, og appen udfylder den, når beskeden sendes.

Navneområde Hvor værdien kommer fra Fås i
{{ variables.key }} Feltet »Variabler (JSON)« i handlingen »Shopify Flow« E-mailens emnefelt og brødtekst, HTTP-URL, overskrifter og brødtekst
{{ secrets.key }} Siden »Hemmeligheder« Det samme, plus SMTP-brugernavn og adgangskode
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} Din butik E-mail- og HTTP-handlinger
{{ language }} Det sprog, som Shopify Flow-trinnet har sendt, ellers layoutets hovedsprog E-mail-emne, forhåndsvisningstekst og brødtekst - se Send e-mails på dine kunders sprog
{{ unsubscribe_link }}, {{ unsubscribe_url }} Modtagerens link til afmelding, kun i markedsføringslayouter E-mail-brødtekst; tom i transaktionslayouter - se nedenfor
{{ flow.key }} Den rå »Shopify Flow«-payload Kun HTTP-anmodninger

Kortet »Systemvariabler« i redigeringsprogrammet viser en liste over butiksværdierne med deres aktuelle indhold, og hvis man klikker på en af dem, kopieres den.

Overførsel af variabler frShopify Flow

I Shopify Flow-handlingen skal du indsætte et JSON-objekt i feltet Variabler (JSON):

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

Derefter kan du henvise til dem hvor som helst i layoutet:

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

Det er op til dig at vælge nøglerne. Det navn, du angiver til venstre, er det, du skal bruge efter variables. - det skal stemme nøjagtigt overens med hensyn til stavning og store bogstaver.

Du behøver ikke at skrive denne JSON-kode manuelt. Hvert layout har et »Brug i«-kort** på Shopify Flow** med den korrekte JSON-kode, der er klar til at blive kopieret - se Overførsel af data fra Shopify Flow.

Filtre

Standardvæskefiltre fungerer. Det mest nyttige er default, som beskytter dig mod en tom værdi:

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

Andre opfører sig, som man kunne forvente:

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

Når en variabel vises som tom

En live-udsendelse, der omdanner enhver variabel, der henvises til, til »nothing«, får et »Tomme variabler«-mærke i historikken. Når man åbner posten, får variablerne navne, og der skelnes mellem to forskellige problemer:

  • Sendt af Shopify Flow, men tom - nøglen var i din JSON, men Shopify Flow genererede ingen værdi. Det skyldes som regel en forkert egenskabssti eller et felt, der rent faktisk er tomt for den pågældende post (en gæstekøb har ikke kundens fornavn).
  • Det er slet ikke sendt af Shopify Flow - nøglen mangler helt i din JSON.

Hvis man tilføjer en fallback-værdi på | default:, markeres det tomme felt som bevidst, og appen holder op med at vise advarsler om det.

Betingede sætninger og løkker

Brug **HTML-/**kodeblokken til betingelser:

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

Brug Loop-blokken til at gentage gennem en matrix, f.eks. varelinjer:

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

Overfør arrayet fra Shopify Flow som JSON:

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

For at få et eksempel på en løkke i builder-værktøjet skal du indtaste den samme JSON-array som værdien under fanen »Testvariabler«.

Objekter opfører sig forskelligt i e-mail og HTTP

Det er den eneste skarpe kant, man bør være opmærksom på.

  • I en HTTP-anmodning medfører interpolering af et objekt eller en array automatisk, at det/den serialiseres til JSON. {{ variables.records }} bliver til en korrekt JSON-array i anmodningens brødtekst. Der findes også et json-filter, hvis du ønsker at angive dette eksplicit.
  • I en e-mail finder en sådan konvertering ikke sted. Når man interpolerer et helt objekt, vises den bogstavelige tekst »[object Object]«.

I e-mails skal du derfor altid indsætte emnet i selve e-mailen i stedet for blot at skrive det:

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

Eller gennemløb en matrix i en løkke i stedet for at udskrive den i sin helhed.

Hemmeligheder i skabeloner

Du henviser til en gemt hemmelighed på samme måde:

Authorization: Bearer {{ secrets.airtableAccessToken }}

Brug den nøjagtige syntaks {{ secrets.keyName }}. Følgende fungerer ikke:

  • {{ secret.keyName }} - ental
  • {{ secrets['keyName'] }} - parentes-syntaks

Der skelnes mellem store og små bogstaver i nøgle navne. Se Hemmeligheder.

Overskrivning af Body-feltet for HTTP-anmodninger

Feltet »Variabler« i HTTP-handlingen har en anden tilstand. Hvis man angiver nøglen »body«, erstatter den den gemte anmodningstekst fuldstændigt:

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

Dette er nyttigt, når payloadens form bestemmes af et tidligere trin i Shopify Flow. Den eneste undtagelse er, hvis din gemte krop selv henviser til {{ variables.body }}; i så fald behandles den i stedet som en almindelig variabel.

Afprøvning af det, du har skrevet

Forhåndsvisningen på siden fortolker ikke Liquid - den viser tagsene, som de er skrevet. For at se de udregnede værdier:

  • Når det gælder e-mails, skal du bruge funktionen »Send test-e-mail« i layoutredigeringsværktøjet.
  • Ved HTTP-anmodninger skal du bruge knappen »Test«, som viser den omregnede URL og det omregnede indhold sammen med svaret.

Linket til afmelding i markedsføringsskabeloner

Et layout, hvor e-mail-typen er »Marketing«, får to yderligere variabler. Hver modtager af en marketing-e-mail har sit eget link til afmelding, og disse placerer det:

  • {{ unsubscribe_link }} viser et link med teksten »Afmeld« fra Indstillinger (eller layoutets egen tekst).
  • {{ unsubscribe_url }} viser den rene adresse til en knap eller et anker, som du selv kan designe.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>

Du behøver ikke at bruge dem: Hver markedsførings-e-mail får alligevel tilføjet en fodnote med afmeldingslink. Når selve e-mailteksten allerede indeholder linket, udelades afmeldingssætningen i fodnoten, og der tilføjes kun virksomhedsoplysningerne. I emnefeltet og forhåndsvisningsteksten vises begge variabler som tomme, og i et transaktionslayout er de altid tomme. Se Markedsførings-e-mails og afmeldinger.

Relateret