Variabili e liquidi

Tutti gli elementi dinamici di questa app sono scritti in Liquid, lo stesso linguaggio di templating utilizzato dai temi cShopify. È sufficiente inserire un segnaposto e l’app lo completerà al momento dell’invio.

Gli spazi dei nomi

Spazio dei nomi Da dove deriva il valore Disponibile in
{{ variables.key }} Il campo “Variabili (JSON)” nell’azione Shopify Flow Oggetto e testo dell'e-mail, URL HTTP, intestazioni e corpo
{{ secrets.key }} La pagina "I segreti" Lo stesso, oltre al nome utente e alla password SMTP
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} Il Suo negozio Azioni relative alla posta elettronica e all’HTTP
{{ language }} La lingua specificata nella fase "Shopify Flow", altrimenti la lingua principale del layout Oggetto dell’e-mail, testo di anteprima e corpo del messaggio - si veda Inviate e-mail nella lingua dei vostri clienti
{{ unsubscribe_link }}, {{ unsubscribe_url }} Il link per annullare l'iscrizione del destinatario, presente solo nei modelli di marketing Corpo dell'e-mail; vuoto nei layout transazionali - si veda di seguito
{{ flow.key }} Il payload grezzo di Shopify Flow Solo richieste HTTP

La scheda “Variabili di sistema” nell’editor elenca i valori predefiniti con il loro contenuto attuale; facendo clic su uno di essi, lo si copia.

Passaggio di variabili da unShopify Flow

Nell'azione "Shopify Flow", inserisca un oggetto JSON nel campo "Variabili (JSON)":

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

Successivamente, è possibile farvi riferimento in qualsiasi punto del layout:

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

La scelta dei tasti spetta a voi. Qualunque nome indichiate a sinistra è quello che dovrete utilizzare dopo variables., rispettandone esattamente l’ortografia e l’uso delle maiuscole.

Non è necessario scrivere questo JSON a mano. Ogni layout dispone di una scheda “Use inShopify Flow” contenente il JSON corretto, pronto per essere copiato - si veda Trasmissione dei dati da Shopify Flow.

Filtri

I filtri Liquid standard funzionano. Il più utile è default, che vi protegge dai valori vuoti:

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

Altri si comportano come ci si aspetterebbe:

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

Quando una variabile risulta vuota

Un invio in tempo reale che assegna il valore “nulla” a qualsiasi variabile a cui si fa riferimento riceve il badge “Variabili vuote” nella Cronologia. Aprendo la voce, queste vengono denominate e si distinguono due problemi distinti:

  • Inviato da Shopify Flow ma vuoto: la chiave era presente nel Suo JSON, ma Shopify Flow non ha generato alcun valore. Solitamente si tratta di un percorso di proprietà errato oppure di un campo effettivamente vuoto per quel record (un checkout come ospite non presenta il nome del cliente).
  • Non è stato affatto inviato da Shopify Flow: la chiave manca completamente dal Suo JSON.

L'aggiunta di un fallback di tipo | default: indica che lo spazio vuoto è intenzionale e l'app smette di segnalare il problema.

Condizionali e cicli

Utilizzi il blocco HTML / Codice per le condizioni:

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

Utilizzi il blocco "Loop" per eseguire una ripetizione su un array, ad esempio sugli articoli di un ordine:

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

Si passi l'array da Shopify Flow come JSON:

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

Per visualizzare in anteprima un ciclo nel builder, inserisca lo stesso array JSON come valore nella scheda “Variabili di test”.

Gli oggetti si comportano in modo diverso nelle e-mail e nel protocollo HTTP

Questo è l’unico aspetto cruciale che vale la pena conoscere.

  • In una richiesta HTTP, l'interpolazione di un oggetto o di un array ne comporta automaticamente la serializzazione in formato JSON. {{ variables.records }} diventa un vero e proprio array JSON nel corpo della richiesta. È inoltre disponibile un filtro json qualora si desideri specificarlo in modo esplicito.
  • In un’e-mail non avviene alcuna conversione di questo tipo. L’interpolazione di un oggetto intero restituisce il testo letterale [object Object].

Pertanto, nelle e-mail, inserite sempre il contenuto nell’oggetto anziché scriverlo:

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

Oppure si può eseguire un ciclo su un array invece di visualizzarlo per intero.

I segreti nei modelli

Per fare riferimento a un segreto memorizzato, proceda allo stesso modo:

Authorization: Bearer {{ secrets.airtableAccessToken }}

Utilizzi la sintassi esatta {{ secrets.keyName }}. Le seguenti non funzionano:

  • {{ secret.keyName }} - singolare
  • {{ secrets['keyName'] }} - sintassi delle parentesi graffe

I nomi delle chiavi distinguono tra maiuscole e minuscole. Si veda Segreti.

Sovrascrittura del corpo per le richieste HTTP

Il campo “variabili” dell’azione HTTP dispone di una seconda modalità. Se si passa una chiave body, questa sostituisce interamente il corpo della richiesta salvato:

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

Ciò risulta utile quando la forma del payload viene determinata da un passaggio precedente di Shopify Flow. L’unica eccezione: se il corpo salvato fa riferimento a {{ variables.body }}, esso viene invece trattato come una normale variabile.

Verifica di quanto da Lei scritto

L'anteprima nella pagina non esegue la valutazione del codice Liquid, ma mostra i tag così come sono stati scritti. Per visualizzare i valori risolti:

  • Per le e-mail, utilizzi la funzione “Invia e-mail di prova” dall’editor di layout.
  • Per le richieste HTTP, utilizzi il pulsante “Test”, che mostra l’URL risolto e il corpo risolto insieme alla risposta.

Un layout il cui tipo di email è “Marketing” dispone di due variabili aggiuntive. Ogni destinatario di un’email di marketing dispone di un proprio link per annullare l’iscrizione, e queste variabili lo inseriscono:

  • {{ unsubscribe_link }} visualizza un link con il testo “Annulla iscrizione” presente nelle Impostazioni (o quello previsto dal layout stesso).
  • {{ unsubscribe_url }} restituisce l'indirizzo nudo e crudo, per un pulsante o un link a cui applicate voi stessi lo stile.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>

Non è necessario utilizzarle: ogni e-mail di marketing presenta comunque un piè di pagina con l’opzione di annullamento dell’iscrizione. Quando il corpo del messaggio visualizzato contiene già il link, il piè di pagina omette la frase relativa all’annullamento dell’iscrizione e riporta solo i dati dell’azienda. Nell’oggetto e nel testo di anteprima entrambe le variabili non vengono visualizzate, mentre in un layout transazionale sono sempre vuote. Si veda E-mail di marketing e cancellazioni dall’iscrizione.

Correlati