Condizioni in Shopify Flow

Su Shopify Flow le condizioni determinano se un'azione deve essere eseguita o meno dopo che un trigger ha avviato un flusso di lavoro. Quando imposti una condizione, scegli un valore recuperato dai dati del negozio, un operatore logico e imposti manualmente un valore di confronto.

Tipi di dati utilizzati con Flow

Il primo valore in ogni condizione di Flow è costituito da un dato recuperato dal negozio ed estratto dell'Admin API di GraphQL.

Flow supporta i tipi di dati seguenti:

  • A virgola mobile: i valori a virgola mobile sono numeri con una quantità decimale. Ad esempio, 4,25.
  • Numero intero: i valori a numero intero sono numeri interi privi di una quantità decimale. Ad esempio, 42.
  • Data: i valori di data sono la rappresentazione numerica della data. Ad esempio, 01012021.
  • Stringa: i valori stringa sono testi. I confronti che utilizzano valori stringa non tengono conto della differenza tra maiuscole e minuscole.
  • Booleano: i valori booleani sono true o false.
  • Enum: i valori enum sono set di dati che consentono a una variabile di essere un insieme di costanti predefinite.

Operatori logici utilizzati in Flow

Gli operatori logici definiscono la modalità con cui viene applicata la condizione. Le condizioni possono verificare proprietà semplici, ad esempio se il totale di un ordine è superiore a un certo importo o se un cliente accetta comunicazioni di marketing. Gli operatori logici possono anche verificare proprietà più complesse.

Flow può utilizzare gli operatori seguenti:

Equal to

L'operatore Equal to confronta i valori per verificare se sono uguali. Nell'esempio seguente il valore order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.

Esempio di un flusso di lavoro che utilizza l'operatore logico equal to per annullare un ordine se il dato recuperato è uguale a 50

Se il primo valore è uguale a 50, la condizione è true. L'ordine viene annullato.

Not equal to

L'operatore Not equal to confronta i valori per verificare che non corrispondano. Nell'esempio seguente il valore order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.

Esempio di un flusso di lavoro che utilizza l'operatore logico not equal to per annullare un ordine se il dato recuperato non è uguale a 50

Se il primo valore è uguale a 93, la condizione è true. L'ordine viene annullato.

Greater than e Greater than or equal to

Gli operatori Greater than e Greater than or equal to confrontano i valori per verificare se il primo è maggiore o maggiore o uguale rispetto al secondo. Nell'esempio seguente il valore order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.

Esempio di un flusso di lavoro che utilizza l'operatore logico greater than per annullare un ordine se il dato recuperato è maggiore di 50

Se il valore recuperato dal negozio è 137, la condizione è true, perché 137 è maggiore di 50. L'ordine viene annullato.

Less than e Less than or equal to

Gli operatori Less than e Less than or equal to confrontano i valori per verificare se il primo è minore o minore o uguale rispetto al secondo. Nell'esempio seguente il valore order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.

Esempio di un flusso di lavoro che utilizza l'operatore logico less than or equal to per annullare un ordine se il dato recuperato è minore o uguale a 50

Se il valore recuperato dal negozio è 47, la condizione è true, perché 47 è minore o uguale a 50. L'ordine viene annullato.

Any of

L'operatore Any of confronta i valori in una matrice di dati per verificare se l'input del primo contiene uno qualsiasi dei dati dell'input del secondo. I valori da verificare devono essere inseriti singolarmente premendo quindi il tasto Invio. Utilizzando l'operatore Any of con una matrice vuota si ottiene una valutazione falsa. Nell'esempio seguente il valore order.lineitem.product.title viene recuperato dai dati del negozio e confrontato con il secondo set di valori: pineapple, guava, kiwi (ananas, guava, kiwi).

Esempio di un flusso di lavoro che utilizza l'operatore logico any of per annullare un ordine se il dato recuperato include pineapple, guava, o kiwi (ananas, guava o kiwi)

Se il valore recuperato dal negozio è guava, la condizione è true, perché guava è incluso nella matrice pineapple, guava, kiwi (ananas, guava, kiwi). L'ordine viene annullato.

Not any of

L'operatore Not any of confronta i valori in una matrice di dati per verificare se l'input del primo valore non contiene nessuno dei dati contenuti nell'input del secondo. I valori da verificare devono essere inseriti singolarmente premendo quindi il tasto Invio. Nell'esempio seguente il valore order.lineitem.product.title viene recuperato dai dati del negozio e confrontato con il secondo set di valori: pineapple, guava, kiwi (ananas, guava, kiwi).

Esempio di un flusso di lavoro che utilizza l'operatore logico not any of per annullare un ordine se il dato recuperato non include pineapple, guava, o kiwi (ananas, guava o kiwi)

Se il valore recuperato dal negozio è raspberry (lampone), la condizione è true, perché raspberry non è incluso nella matrice pineapple, guava, kiwi (ananas, guava, kiwi). L'ordine viene annullato.

Includes

L'operatore Includes confronta i valori per verificare se l'input del primo comprende i dati dell'input del secondo. Nell'esempio seguente il valore order.lineitem.product.title viene recuperato dai dati del negozio e paragonato al secondo valore, scrape (raschiatura).

Esempio di un flusso di lavoro che utilizza l'operatore logico includes per annullare un ordine se il dato recuperato include la stringa scrape (raschiatura)

Se il valore recuperato dai dati del negozio è skyscraper (grattacielo), la condizione è true, perché la stringa esatta scrape (raschiatura) è inclusa nella stringa skyscraper (grattacielo). L'ordine viene annullato.

Does not include

L'operatore Does not include confronta i valori per verificare se l'input del primo valore non comprende i dati dell'input del secondo. Nell'esempio seguente il valore order.lineitem.product.title viene recuperato dai dati del negozio e paragonato al secondo valore, scrape (raschiatura).

Esempio di un flusso di lavoro che utilizza l'operatore logico does not include per annullare un ordine se il dato recuperato non include la stringa scrape (raschiatura)

Se il valore recuperato dai dati del negozio è scrap-metal (rottami metallici), la condizione è true, perché la stringa esatta scrape (raschiatura) non è inclusa nella stringa scrap-metal. L'ordine viene annullato.

Starts with

L'operatore Starts with paragona i valori per verificare se il primo inizia con i dati del secondo. Nell'esempio seguente il valore order.shippingAddress.country viene recuperato dai dati del negozio e paragonato al secondo valore, United (Unito).

Esempio di un flusso di lavoro che utilizza l'operatore logico starts with per annullare un ordine se il dato recuperato inizia con la stringa United (Unito)

Se il valore recuperato dal negozio è United Kingdom (Regno Unito), la condizione è true, perché la stringa United Kingdom (Regno Unito) inizia con la stringa United (Unito). L'ordine viene annullato.

Does not start with

L'operatore Does not start with paragona i valori per verificare se il primo non inizia con i dati del secondo. Nell'esempio seguente il valore order.shippingAddress.country viene recuperato dai dati del negozio e paragonato al secondo valore, United (Unito).

Esempio di un flusso di lavoro che utilizza l'operatore logico does not start with per annullare un ordine se il dato recuperato non inizia con la stringa United (Unito)

Se il valore recuperato dal negozio è Canada, la condizione è true, perché la stringa United Kingdom (Regno Unito) non inizia con la stringa Canada. L'ordine viene annullato.

Ends with

L'operatore Ends with paragona i valori per verificare se il primo termina con i dati del secondo. Nell'esempio seguente il valore order.lineitems.product.title viene recuperato dai dati del negozio e paragonato al secondo valore, last-available (ultimo-disponibile).

Esempio di un flusso di lavoro che utilizza l'operatore logico ends with per annullare un ordine se il dato recuperato termina con la stringa last-available (ultimo-disponibile)

Se il valore recuperato dal negozio è athletic socks last-available (calzini sportivi ultimo-disponibile), la condizione è true, perché la stringa athletic socks last-available termina con la stringa last-available (ultimo-disponibile). L'ordine viene annullato.

Does not end with

L'operatore Does not end with paragona i valori per verificare se il primo non termina con i dati del secondo. Nell'esempio seguente il valore order.lineitems.product.title viene recuperato dai dati del negozio e paragonato al secondo valore, last-available (ultimo-disponibile).

Esempio di un flusso di lavoro che utilizza l'operatore logico does not end with per annullare un ordine se il dato recuperato non termina con la stringa last-available (ultimo-disponibile)

Se il valore recuperato dal negozio è athletic socks new (calzini sportivi nuovo), la condizione è true, perché la stringa athletic socks new non termina con la stringa last-available (ultimo-disponibile). L'ordine viene annullato.

Ordinamento delle condizioni

Puoi creare flussi di lavoro con più condizioni, ognuna delle quali può comportare diverse azioni. L'ordine delle condizioni è importante. Il controllo delle condizioni comincia all'inizio del flusso di lavoro e prosegue sistematicamente per ciascuna di esse. Il controllo si interrompe quando una condizione risulta soddisfatta.

Soddisfazione di più condizioni

Quando imposti una condizione puoi stabilire diversi criteri e determinare se questa verrà considerata true da Flow se tutte le condizioni sono soddisfatte o se sarà sufficiente che lo sia solo una.

If all conditions are met (Se tutte le condizioni sono soddisfatte)

Selezionando l'opzione If all conditions are met (Se tutte le condizioni sono soddisfatte) si ottiene una risposta true solo se tutti i criteri impostati risultano true.

Ad esempio, puoi creare un flusso di lavoro per taggare i clienti che si trovano in Canada e che spendono più di 500 USD per un singolo ordine.

Esempio di un flusso di lavoro che utilizza la condizione and

Il flusso di lavoro aggiunge un tag al cliente solo se quest'ultimo si trova in Canada e spende più di 500 USD per l'ordine. Se una di queste condizioni è false, il cliente non verrà contrassegnato con un tag.

If any conditions are met (Se almeno una condizione è soddisfatta)

Selezionando l'opzione If any conditions are met (Se almeno una condizione è soddisfatta) si ottiene una risposta true se risulta true uno solo dei criteri impostati.

Ad esempio, puoi creare un flusso di lavoro per aggiungere tag agli ordini considerati ad alto o medio rischio.

Esempio di un flusso di lavoro che utilizza la condizione or

Il flusso di lavoro aggiunge un tag all'ordine se quest'ultimo è ad alto o medio rischio. L'ordine verrà contrassegnato con un tag, purché una di queste condizioni sia true.

Combina condizioni e azioni

Puoi combinare le condizioni per crearne una più complessa. Quando si combinano le condizioni, perché l'intera condizione sia true è necessario che tutte le condizioni siano true. In caso contrario, l'intera condizione è false. Nell'esempio seguente il cliente deve accettare l'invio di materiali di marketing e il prezzo totale dell'ordine deve raggiungere una determinata soglia.

Esempio di un flusso di lavoro che verifica l'importo totale della spesa di un cliente e aggiunge tag

Allo stesso modo, puoi combinare le azioni in modo da poterne eseguire un numero maggiore. Questo esempio utilizza più condizioni per verificare l'idoneità di un cliente a un programma fedeltà basato sull'importo totale speso nel negozio. Nell'esempio sopra, le seguenti condizioni vengono verificate nell'ordine in cui sono riportate:

  1. Se l'importo totale è superiore a 1000 EUR e il cliente ha accettato di ricevere comunicazioni di marketing, contrassegnalo con il tag Gold (oro).
  2. Se l'importo totale è inferiore a 1000 EUR ma superiore a 500 EUR e il cliente ha accettato di ricevere comunicazioni di marketing, contrassegnalo con il tag Silver (argento).
  3. Se il cliente ha speso più di 200 EUR e ha accettato di ricevere comunicazioni di marketing, contrassegnalo con il tag Bronze (bronzo).

Dati statici e dinamici nelle condizioni

In genere, il secondo valore di una condizione è un valore statico inserito manualmente. Questo valore rimane invariato ad ogni esecuzione del flusso di lavoro.

Se il campo per il secondo valore mostra un simbolo </>, puoi anche utilizzare i valori dinamici. Questi ultimi vengono ricavati dai dati del negozio ad ogni esecuzione del flusso di lavoro. Per utilizzare un valore dinamico, clicca sul simbolo </> e seleziona il valore di confronto. I valori dinamici non sono disponibili per tutti i campi.

Ad esempio, puoi creare un flusso di lavoro che aggiunge un tag a un ordine se il paese indicato nell'indirizzo di fatturazione corrisponde a quello indicato nell'indirizzo di spedizione.

Esempio di un flusso di lavoro che aggiunge un tag a un ordine utilizzando i dati RHS per verificare che il paese di fatturazione e di spedizione di un cliente corrispondano.

In questo esempio, sia il primo che il secondo valore vengono ricavati dai dati del negozio: non viene specificata manualmente una stringa statica di controllo per il secondo valore. Se il paese nell'indirizzo di fatturazione fornito dal cliente corrisponde a quello indicato nell'indirizzo di spedizione, la condizione è true e l'ordine viene contrassegnato con un tag.

Sei pronto per iniziare a vendere con Shopify?

Provalo, è gratis