Variabler och vätska

Variabler och vätska

Kopiera sidan

Referens för Liquid-variabler i Shopify Flow: skicka data till e-postämne, e-posttext och HTTP-förfrågningar med variabler, hemligheter och butiksvärden.

Allt som är dynamiskt i den här appen är skrivet i Liquid - samma mallspråk som används i Shopify-teman. Du skriver en platshållare, och appen fyller i den när meddelandet skickas.

Namnrymderna

Namnrymd Varifrån värdet kommer Finns i
{{ variables.key }} Fältet ”Variabler (JSON)” i Shopify Flow-åtgärden E-postens ämne och text, HTTP-URL, rubriker och text
{{ secrets.key }} Sidan ”Hemligheter” Samma sak, plus SMTP-användarnamn och lösenord
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} Din butik E-post- och HTTP-åtgärder
{{ language }} Det språk som steget ”Shopify Flow” skickade, annars layoutens huvudspråk E-postämne, förhandsgranskningstext och brödtext - se Skicka e-postmeddelanden på kundens språk
{{ unsubscribe_link }}, {{ unsubscribe_url }} Länken för att avsluta prenumerationen, endast i marknadsföringsmallar E-posttexten; tom i transaktionsmallar - se nedan
{{ flow.key }} Den obearbetade Shopify Flow-datauppsättningen Endast HTTP-förfrågningar

Kortet ”Systemvariabler” i redigeraren visar en lista över butiksvärdena med deras aktuella innehåll, och om man klickar på ett av dem kopieras det.

Överföra variabler från Shopify Flow

I Shopify Flow-åtgärden ska du ange ett JSON-objekt i fältet Variabler (JSON):

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

Använd dem sedan var som helst i layouten:

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

Du väljer själv vilka nycklar du vill använda. Det du anger till vänster är det du använder efter variables., och stavningen och versalerna måste stämma exakt.

Du behöver inte skriva den här JSON-koden för hand. Varje layout har ett kort med namnet ”Använd i Shopify Flow” där den korrekta JSON-koden redan finns klar att kopiera - se Överföring av data från Shopify Flow.

Filter

Standardfilter för Liquid fungerar. Det mest användbara är default, som skyddar dig mot tomma värden:

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

Andra beter sig precis som man kan förvänta sig:

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

När en variabel visas som tom

En live-sändning som omvandlar alla refererade variabler till ”nothing” får märket ”Tomma variabler” i historiken. När man öppnar posten namnges de och två olika problem skiljs åt:

  • Skickat av Shopify Flow men tomt - nyckeln fanns i din JSON, men Shopify Flow genererade inget värde. Oftast beror det på en felaktig egenskapsväg eller ett fält som verkligen är tomt för den posten (vid gästkassan finns inget förnamn på kunden).
  • Det har inte skickats via Shopify Flow överhuvudtaget - nyckeln saknas helt i din JSON-fil.

Genom att lägga till en fallback-angivelse | default: markeras det tomma fältet som avsiktligt, och appen slutar visa varningar om det.

Villkorssatser och slingor

Använd HTML-/kodblocket för villkorssatser:

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

Använd Loop-blocket för att gå igenom en array, till exempel orderrader:

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

Skicka arrayen från Shopify Flow som JSON:

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

För att förhandsgranska en loop i byggaren anger du samma JSON-array som värdet på fliken Testvariabler.

Objekt beter sig olika i e-post och HTTP

Det här är den enda vassa kanten som är värd att känna till.

  • I en HTTP-förfrågan omvandlas ett objekt eller en array automatiskt till JSON när det interpoleras. {{ variables.records }} blir en korrekt JSON-array i förfrågans kropp. Det finns även ett json-filter om du vill ange detta uttryckligen.
  • I ett e-postmeddelande sker ingen sådan omvandling. Om man interpolerar ett helt objekt visas texten [object Object].

I e-postmeddelanden bör du alltså alltid ange ämnet i själva meddelandet istället för att skriva ut det:

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

Eller gå igenom en array med en loop istället för att skriva ut den i sin helhet.

Hemligheter i mallar

Man hänvisar till en lagrad hemlighet på samma sätt:

Authorization: Bearer {{ secrets.airtableAccessToken }}

Använd exakt syntaxen {{ secrets.keyName }}. Följande fungerar inte:

  • {{ secret.keyName }} - singular
  • {{ secrets['keyName'] }} - parentes-syntax

Nyckelnamn är skiftlägeskänsliga. Se Hemligheter.

Överskrivning av huvud för HTTP-förfrågningar

Fältet ”variabler” i HTTP-åtgärden har ett andra läge. Om du anger nyckeln body ersätts den sparade förfrågningstexten helt och hållet:

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

Detta är användbart när nyttolastens form bestäms av ett tidigare steg i Shopify Flow. Det enda undantaget är om din sparade text i sig hänvisar till {{ variables.body }} - då behandlas den istället som en vanlig variabel.

Testa det du skrev

Förhandsvisningen på sidan tolkar inte Liquid - den visar taggarna precis som de är skrivna. För att se de utvärderade värdena:

  • För e-postmeddelanden använder du funktionen ”Skicka testmeddelande” i layoutredigeraren.
  • För HTTP-förfrågningar använder du knappen ”Test”, som visar den upplösta URL:en och det upplösta innehållet tillsammans med svaret.

Länken för att avsluta prenumerationen i marknadsföringsmaterial

En layout med e-posttypen ”Marknadsföring” får ytterligare två variabler. Varje mottagare av ett marknadsföringsmejl har en egen länk för att avsluta prenumerationen, och dessa placeras här:

  • {{ unsubscribe_link }} visar en länk med texten ”Avsluta prenumerationen” från Inställningar (eller den som anges i själva layouten).
  • {{ unsubscribe_url }} visar den rena adressen, som du själv kan formatera till en knapp eller en länk.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>

Du behöver inte använda dem: varje marknadsföringsmejl får ändå en fotnot med avregistreringslänk bifogad. När själva mejltexten redan innehåller länken utelämnas avregistreringsmeningen i fotnoten och endast företagsuppgifterna läggs till. I ämnesraden och förhandsgranskningstexten visas båda variablerna som tomma, och i en transaktionslayout är de alltid tomma. Se Marknadsföringsmejl och avregistreringar.

Relaterat