Lo scope eval:expr è il placeholder più potente: valuta un'espressione e stampa il risultato.
Permette di fare calcoli, concatenazioni, formattazioni e logica condizionale direttamente nella comunicazione senza dover modificare il codice del template; infatti il codice può essere copiato in un elemento testo (vista HTML).
| Espressione | Risultato |
|---|---|
[eval:expr value="1 + 1"] | 2 |
<meta mn:temp mn:name="t1" mn:type="int" mn:value="1"> <meta mn:temp mn:name="t2" mn:type="int" mn:value="2">
| 3 |
[eval:expr value="'valore ' + 'stringa ' + 'concatenata'"] | valore stringa concatenata |
[eval:expr value="temp.t1 + '_' + temp.t2"] | 1_2 |
[eval:expr value=temp.item.title {Titolo prodotto} left=10] | Titolo pro |
[eval:expr value="fn.if(temp.item.promo, temp.item.currentprice * fn.strtonumber(temp.item.discount, ','), temp.item.currentprice)"] | 8,62 |
Per poter usare delle stringhe costanti dentro al value="" si possono usare i seguenti approcci:
- singolo escape + doppio apice →
value="\"stringa\" + \"concatenata\"" doppio escape + singolo apice →
value="'che bell\\'albero'"
Testo condizionato in base a campo contatto
Un contatto deve ricevere un coupon di un valore variabile che potrebbe essere in punti o in valuta; nel caso in cui il campo TIPO_COUPON abbia “Euro” allora viene stampato “€ per te!”, altrimenti “punti per te!”
Inserire in un elemento testo il seguente codice:
C'è un buono da [contact:VALORE_COUPON]
[eval:expr value="fn.if(contact.values.TIPO_COUPON eq 'Euro', '€', ' Punti')"] per te!
Approfittane entro il 2 luglio! Vai su nella sezione Buoni di App o sito web.Percentuale di sconto
Nel account è stata creata e popolata un'Estensione contatto del catalogo prodotti di Shopify, vogliamo stampare la percentuale di sconto per ogni prodotto:
[eval:expr value="fn.round(((temp.item.compareatprice - temp.item.price) /
temp.item.compareatprice) * 100)" designvalue='20']%Data scadenza coupon oggi+15
[eval:expr value="fn.dateadd(fn.now(), +15, 'day')" ]Stampare la data ora corrente con pattern specifico
[eval:expr value="fn.now()" pattern=YYYY-MM-dd'T'HH:mm:ss]