Variabelen en vloeistoffen

Alles wat dynamisch is in deze app is Liquid - dezelfde sjabloontaal die ook door de thema’Shopify wordt gebruikt. U schrijft een plaatshouder en de app vult deze in op het moment van verzending.

De naamruimten

Naamruimte Waar de waarde vandaan komt Verkrijgbaar in
{{ variables.key }} Het veld „Variabelen (JSON)” bij de actie Shopify Flow Onderwerp en tekst van de e-mail, HTTP-URL, headers en inhoud
{{ secrets.key }} De pagina ‘Geheimen’ Hetzelfde, plus SMTP-gebruikersnaam en wachtwoord
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} Uw winkel E-mail- en HTTP-acties
{{ language }} De taal die in de stap „Shopify Flow” is verzonden, anders de hoofdtaal van de lay-out Onderwerp, voorbeeldtekst en hoofdtekst van de e-mail - zie Verzend e-mails in de taal van uw klant
{{ unsubscribe_link }}, {{ unsubscribe_url }} De afmeldlink voor de ontvanger, uitsluitend in marketinglay-outs E-mailtekst; leeg in transactionele lay-outs - zie hieronder
{{ flow.key }} De onbewerkte payload van de Shopify Flow Uitsluitend HTTP-verzoeken

Op het tabblad „Systeemvariabelen“ in de editor worden de winkelwaarden met hun huidige inhoud weergegeven; als u op een waarde klikt, wordt deze gekopieerd.

Variabelen doorgeven vanuit Shopify Flow

Voer in de actie „Shopify Flow” een JSON-object in het veld „Variabelen (JSON)” in:

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

Vervolgens kunt u er overal in de lay-out naar verwijzen:

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

U kunt zelf de toetsen kiezen. Wat u aan de linkerkant invult, is wat u na variables. gebruikt; de spelling en het gebruik van hoofdletters moeten exact overeenkomen.

U hoeft deze JSON niet met de hand te schrijven. Elke lay-out heeft een ‘Gebruik in Shopify Flow’-kaart met de juiste JSON die u kunt kopiëren - zie Gegevens doorgeven vanuit Shopify Flow.

Filters

Standaard vloeistoffilters werken. De handigste daarvan is default, die u beschermt tegen een lege waarde:

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

Andere gedragen zich zoals u zou verwachten:

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

Wanneer een variabele leeg wordt weergegeven

Een live-verzending waarbij elke variabele waarnaar wordt verwezen tot niets wordt gerenderd, krijgt in de Geschiedenis het label ‘Lege variabelen’. Wanneer u het item opent, krijgen deze een naam en worden twee verschillende problemen van elkaar gescheiden:

  • Verzonden door Shopify Flow maar leeg - de sleutel stond in uw JSON, maar Shopify Flow heeft geen waarde gegenereerd. Meestal is dit te wijten aan een onjuist eigenschapspad, of aan een veld dat voor dat record daadwerkelijk leeg is (bij een gastcheckout ontbreekt de voornaam van de klant).
  • Dit is helemaal niet verzonden door Shopify Flow - de sleutel ontbreekt volledig in uw JSON.

Door een fallback in de vorm van | default: toe te voegen, wordt het lege veld als opzettelijk aangemerkt en geeft de app hierover geen waarschuwing meer.

Voorwaardelijke constructies en lussen

Gebruik het HTML-/codeblok voor voorwaarden:

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

Gebruik het blok ‘Loop’ om een reeks te doorlopen, bijvoorbeeld de afzonderlijke artikelen van een bestelling:

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

Geef de array vanuit Shopify Flow door als JSON:

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

Om een lus in de builder te bekijken, voert u dezelfde JSON-array in als de waarde op het tabblad ‘Testvariabelen’.

Objecten gedragen zich anders in e-mail dan in HTTP

Dit is het enige belangrijke punt dat u moet weten.

  • Bij een HTTP-verzoek wordt een object of array automatisch naar JSON geserialiseerd wanneer het wordt geïnterpoleerd. {{ variables.records }} wordt een geldige JSON-array in de hoofdtekst van het verzoek. Er is ook een filter json beschikbaar indien u dit expliciet wilt aangeven.
  • In een e-mail vindt een dergelijke conversie niet plaats. Bij het invoegen van een volledig object wordt de letterlijke tekst [object Object] weergegeven.

Vermeld in e-mails de onderwerpregel dus altijd in de tekst zelf, in plaats van deze af te drukken:

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

Of doorloop een array met een lus in plaats van deze in zijn geheel weer te geven.

Geheimen in sjablonen

U kunt op dezelfde manier naar een opgeslagen geheim verwijzen:

Authorization: Bearer {{ secrets.airtableAccessToken }}

Gebruik de exacte syntaxis {{ secrets.keyName }}. De volgende varianten werken niet:

  • {{ secret.keyName }} - enkelvoud
  • {{ secrets['keyName'] }} - beugel-syntaxis

Bij sleutelnamen wordt onderscheid gemaakt tussen hoofdletters en kleine letters. Zie Geheimen.

Overschrijving van de body bij HTTP-verzoeken

Het veld ‘variables’ van de HTTP-actie beschikt over een tweede modus. Als u de sleutel body doorgeeft, wordt de opgeslagen verzoektekst volledig vervangen:

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

Dit is handig wanneer de vorm van de payload wordt bepaald door een eerdere stap in Shopify Flow. De enige uitzondering: als uw opgeslagen body zelf verwijst naar {{ variables.body }}, wordt deze in plaats daarvan behandeld als een gewone variabele.

Het controleren van wat u hebt geschreven

Het voorbeeld op de pagina verwerkt geen Liquid-tags - de tags worden weergegeven zoals ze zijn geschreven. Om de uitgewerkte waarden te zien:

  • Gebruik voor e-mails de optie ‘Test-e-mail verzenden’ in de lay-outeditor.
  • Gebruik voor HTTP-verzoeken de knop ‘Test’, waarmee naast het antwoord ook de ‘Resolved URL’ en de ‘Resolved Body’ worden weergegeven.

Een lay-out met het e-mailtype ‘Marketing’ krijgt twee extra variabelen. Elke ontvanger van een marketing-e-mail heeft een eigen afmeldlink, en deze wordt hier geplaatst:

  • {{ unsubscribe_link }} geeft een link weer met de tekst ‘Afmelden’ uit de instellingen (of de tekst die in de lay-out zelf is opgegeven).
  • {{ unsubscribe_url }} geeft het kale adres weer, voor een knop of een link die u zelf opmaakt.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>

U hoeft ze niet te gebruiken: aan elke marketing-e-mail wordt sowieso een voettekst met de afmeldoptie toegevoegd. Wanneer de weergegeven hoofdtekst de link al bevat, laat de voettekst de afmeldzin weg en voegt deze alleen de gegevens van het bedrijf toe. In het onderwerp en de voorbeeldtekst worden beide variabelen niet weergegeven, en in een transactionele lay-out zijn ze altijd leeg. Zie Marketingmails en afmeldingen.

Gerelateerd