Condizioni in Shopify Flow
Le condizioni fanno proseguire un flusso di lavoro quando determinate regole sono soddisfatte, ad esempio l’inizio di un’istruzione if-then. Quando imposti una condizione, scegli i criteri dai campi della GraphQL Admin API (ad esempio product.title), un operatore logico (ad esempio uguale a) e un valore di confronto (ad esempio Blue jeans). Quando un flusso di lavoro valuta una condizione, Flow confronta il valore definito nel flusso di lavoro con il valore restituito per il negozio, quindi visualizza i risultati nell’esecuzione del flusso di lavoro. Per comprendere meglio i campi e i valori disponibili per la definizione delle condizioni, scopri come visualizzare in anteprima i dati del negozio.
Scopri di più su come comprendere le basi delle condizioni.
In questa pagina
Tipi di dati utilizzati con Flow
Quando imposti una condizione, scegli un criterio dai campi disponibili nell'Admin API e Flow lo valuta rispetto al valore restituito per il negozio.
Flow supporta i seguenti tipi di dati:
- Float: i valori float sono numeri con decimali. Ad esempio, 4,25.
- Integer: i valori integer sono numeri interi senza decimali. Ad esempio, 42.
- Date: i valori date sono una rappresentazione numerica della data. Ad esempio, 01012021.
- Stringa: i valori stringa sono testo. I confronti che utilizzano valori stringa non fanno distinzione tra maiuscole e minuscole.
- Boolean: i valori booleani sono true o false.
- Enum: i valori enum sono set di dati che consentono a una variabile di assumere un valore da un set di costanti predefinite.
Operatori logici
Gli operatori logici definiscono come viene applicata la condizione. Le condizioni possono verificare proprietà semplici, ad esempio se il totale di un ordine è superiore a un determinato importo o se un cliente accetta di ricevere comunicazioni di marketing. Gli operatori logici possono anche verificare proprietà più complesse.
Gli operatori possono essere operatori a livello di campo, ad esempio uguale a o non uguale a, oppure operatori di elenco, ad esempio almeno uno di o nessuno di.
Operatori a livello di campo
Gli operatori a livello di campo vengono utilizzati per confrontare 2 valori. Flow può utilizzare i seguenti operatori:
| Operatore | Descrizione | Esempio |
|---|---|---|
| Uguale a | Confronta i valori per verificare se sono uguali. |
Il valore di order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.Se gli sconti totali dell’ordine sono pari esattamente a 50, allora la condizione è vera. |
| Non uguale a | Confronta i valori per verificare se non sono uguali. |
Il valore di order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.Se gli sconti totali dell’ordine non sono pari esattamente a 50, allora la condizione è vera. |
| Maggiore di e Maggiore o uguale a | Confronta i valori per verificare se il primo valore è maggiore o maggiore o uguale al secondo. |
Il valore di order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.Se il valore degli sconti totali dell’ordine è 137, allora la condizione è vera, poiché 137 è maggiore di 50. |
| Minore di e Minore o uguale a | Confronta i valori per verificare se il primo valore è minore o minore o uguale al secondo. |
Il valore di order.currentTotalDiscountsSet.shopMoney.amount viene recuperato dai dati del negozio e confrontato con il secondo valore, 50.Se il valore degli sconti totali dell’ordine è 47, allora la condizione è vera, poiché 47 è minore o uguale a 50. |
| Almeno uno di | Verifica se il campo è uguale a un qualsiasi valore nell’elenco fornito. I valori devono essere inseriti singolarmente e seguiti dal tasto Invio (in modo simile ai tag). L'utilizzo su un array vuoto restituisce una valutazione false. |
Il valore di order.lineitem.product.title viene confrontato con: pineapple, guava, kiwi.Se il titolo del prodotto della voce è guava, allora la condizione è vera, poiché “guava” è incluso nell’elenco fornito. |
| Nessuno di | Verifica se il campo non è uguale a nessuno dei valori nell'elenco fornito. |
Il valore di order.lineitem.product.title viene confrontato con: pineapple, guava, kiwi.Se il titolo del prodotto della voce è raspberry, allora la condizione è vera, poiché “raspberry” non è incluso nell’elenco fornito. |
| Include | Confronta i valori per verificare se il primo valore include il secondo. |
Il valore di order.lineitem.product.title viene confrontato con: berry.Se il titolo del prodotto della voce è strawberry, allora la condizione è vera, poiché “berry” è incluso in “strawberry”. |
| Non include | Confronta i valori per verificare se il primo valore non include il secondo. |
Il valore per order.lineitem.product.title viene confrontato con: berry.Se il titolo del prodotto della voce è apple, allora la condizione è vera, poiché “berry” non è incluso in “apple”. |
| Inizia con | Confronta i valori per verificare se il primo valore inizia con i dati del secondo valore. |
Il valore per order.shippingAddress.country viene confrontato con: United.Se il paese dell’indirizzo di spedizione dell’ordine è United Kingdom, allora la condizione è vera, poiché “United Kingdom” inizia con “United”. |
| Non inizia con | Confronta i valori per verificare se il primo valore non inizia con i dati del secondo valore. |
Il valore per order.shippingAddress.country viene confrontato con: United.Se il paese dell’indirizzo di spedizione dell’ordine è Canada, allora la condizione è vera, poiché “United Kingdom” non inizia con “Canada”. |
| Termina con | Confronta i valori per verificare se il primo valore termina con i dati del secondo valore. |
Il valore per order.lineitems.product.title viene confrontato con: pie.Se il titolo del prodotto della voce è key lime pie, allora la condizione è vera, poiché “key lime pie” termina con “pie”. |
| Non termina con | Confronta i valori per verificare se il primo valore non termina con i dati del secondo valore. |
Il valore per order.lineitems.product.title viene confrontato con: pie.Se il titolo del prodotto della voce è chocolate cake, allora la condizione è vera, poiché “chocolate cake” non termina con “pie”. |
Operatori nullo o vuoto
| Operatore | Descrizione | Condizione Vero/Falso |
|---|---|---|
| Vuoto o non esistente | Verifica se un campo è vuoto (non ha alcun valore) o non esiste (è null). |
Restituisce vero quando il campo è vuoto o null e falso se è presente.
|
| Non vuoto ed esistente | Verifica se un campo è presente e non è vuoto o null. | Restituisce vero quando il campo non è vuoto ed esiste, falso quando è vuoto. |
Operatori di elenco
Gli operatori di elenco sono combinati con gli operatori a livello di campo per consentirti di verificare le condizioni sui dati inclusi negli elenchi.
Come nell'esempio “almeno uno”, potresti voler verificare se un ordine contiene un prodotto specifico (che si trova in order.lineItems) con un tag specifico (un elenco in order.lineItems.product.tags). In entrambi i casi, l'esempio utilizza l'operatore di elenco Almeno uno di.
Flow fornisce 3 operatori per lavorare con gli elenchi: Almeno uno di, Nessuno di e Tutti gli elementi di.
| Operatore | Descrizione | Esempio di utilizzo |
|---|---|---|
| Almeno uno di | Verifica se un qualsiasi articolo nell’elenco soddisfa la condizione specificata. Restituisce true se un qualsiasi articolo nell’elenco la soddisfa. Se l’elenco è vuoto o nessun articolo la soddisfa, restituisce false. | Verifica se un ordine contiene un prodotto con un tag specifico utilizzando At least one of order line items.product.tags is equal to tagname. |
| Nessuno di | Verifica che nessuno degli articoli nell’elenco soddisfi la condizione specificata. Restituisce true se nessuno degli articoli soddisfa la condizione. Se l’elenco è vuoto, restituisce true. | Verifica se un prodotto non ha il tag presale utilizzando Nessuno dei tag di prodotto è uguale a presale.Un errore comune è cercare di negare l’operatore utilizzando non è uguale a. L’uso di questa doppia negazione, Nessuno dei tag di prodotto non è uguale a presale, rende la condizione difficile da comprendere e non valida.
|
| Tutti gli elementi di | Verifica che tutti gli articoli nell’elenco soddisfino la condizione specificata. Restituisce true se ogni articolo nell’elenco soddisfa la condizione. | Verifica se tutti gli articoli di un ordine hanno un venditore del prodotto specifico chiamato Acme utilizzando All of order line items have a product.vendor equal to Acme. |
Ordinamento delle condizioni
Puoi creare flussi di lavoro con più condizioni, ognuna delle quali può comportare azioni diverse. L'ordine delle condizioni è importante. La verifica delle condizioni inizia dall'inizio del flusso di lavoro e procede sistematicamente attraverso ogni condizione. La verifica si interrompe quando una condizione viene soddisfatta.
Questo esempio utilizza più condizioni per verificare se un cliente è idoneo a un programma fedeltà in base all'importo totale speso nel negozio. Le condizioni vengono verificate nell'ordine in cui sono visualizzate:
- Se il prezzo totale è maggiore di 1000 $ e il cliente accetta di ricevere comunicazioni di marketing, aggiungi il tag
Gold. - Se il prezzo totale è inferiore a 1000 $ ma superiore a 500 $ e il cliente accetta di ricevere comunicazioni di marketing, aggiungi il tag
Silver. - Se il prezzo totale è inferiore a 500 $ ma superiore a 200 $ e il cliente accetta di ricevere comunicazioni di marketing, aggiungi il tag
Bronze.

Combinazione di più criteri in una condizione
Quando crei una condizione, puoi impostare diversi criteri. Puoi scegliere come combinare questi criteri separati per determinare se la condizione generale è vera o falsa.
Se tutti i criteri sono soddisfatti
Selezionando AND la condizione risulterà vera solo se tutti i criteri impostati sono veri.
Ad esempio, puoi creare un flusso di lavoro per aggiungere tag ai clienti che si trovano in Canada e spendono più di 500 $ in un singolo ordine.

Il flusso di lavoro aggiunge un tag a un cliente solo se si trova in Canada e ha speso più di 500 $ per l'ordine. Se una di queste condizioni non è soddisfatta, il tag non viene aggiunto.
Se un qualsiasi criterio è soddisfatto
La selezione di OR restituisce un valore "true" se uno qualsiasi dei criteri impostati è vero.
Ad esempio, puoi creare un flusso di lavoro per aggiungere un tag agli ordini con una raccomandazione sul rischio Annulla o Indaga. Finché una di queste condizioni è vera, all'ordine viene aggiunto il tag.

Dati statici e dinamici nelle condizioni
In genere, il secondo valore di una condizione è un valore statico, inserito manualmente (ad esempio product.title == "titolo personalizzato"). Questo valore rimane invariato a ogni esecuzione del flusso di lavoro.
Puoi anche utilizzare valori dinamici se il campo per il secondo valore mostra l'icona . I valori dinamici vengono estratti dai dati del negozio a ogni esecuzione del flusso di lavoro. Per utilizzare un valore dinamico, clicca sull'icona
e seleziona il valore con cui desideri eseguire il 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 nell'indirizzo di fatturazione dell'ordine corrisponde al paese nel suo indirizzo di spedizione.

In questo esempio, sia il primo che il secondo valore vengono estratti dai dati del negozio, anziché specificare manualmente una stringa statica di confronto per il secondo valore. Se il paese dell'indirizzo di fatturazione fornito dal cliente è lo stesso di quello dell'indirizzo di spedizione, la condizione è vera e all'ordine viene aggiunto il tag.
A volte potresti dover utilizzare dati dinamici del tipo sbagliato. Ad esempio, potresti dover confrontare un numero memorizzato come stringa con un altro numero. In questo caso, puoi utilizzare l'opzione Esegui codice per convertire i dati nel tipo corretto.
Modelli
La maggior parte dei modelli nella libreria di modelli contiene una condizione.
Condizioni di esempio
Verifica se almeno un articolo in un elenco corrisponde a una condizione
Questo esempio mostra una condizione tipica che verifica se almeno un articolo in un elenco corrisponde a un determinato valore.
In questo caso, la condizione verifica se uno dei prodotti di un ordine ha un tag prevendita. Per creare questa condizione, dovrai scegliere ordine / articoli / prodotto / tag. Per impostazione predefinita, Flow sceglie almeno uno di come operatore logico:

Le parti almeno uno di sono operatori di elenco e vengono utilizzate per gestire la corrispondenza tra più articoli dell'elenco. La parte è uguale a è un operatore a livello di campo che determina se un singolo articolo dell'elenco corrisponde.
Verifica se nessun articolo in un elenco corrisponde a una condizione
Questo esempio mostra una condizione tipica che verifica se nessun articolo di un elenco corrisponde a un determinato valore. Un problema comune da considerare è che gli elenchi possono essere vuoti. Quando un elenco è vuoto, la condizione verrà gestita dall'operatore di elenco (in questo caso nessuno di).
In questo caso, la condizione verifica se nessuno dei tag di prodotto è uguale a "foo":

La condizione restituirà true se (1) non sono presenti tag di prodotto o (2) nessuno dei tag è "foo". Altrimenti, restituirà false.
Verifica se un articolo in un elenco corrisponde a più criteri
Questo esempio mostra una condizione tipica che verifica se almeno un articolo in un elenco corrisponde a due criteri distinti.
In questo caso, la condizione verifica se uno dei prodotti in un ordine ha un tag prevendita e se ha un productType abbigliamento.

Per creare questa condizione, procedi come segue:
- Scegli ordine / articoli / prodotto / tag per il primo criterio.
- Scegli Aggiungi criteri per lo stesso articolo nell'elenco articoli. Nota: la scelta dell'articolo sbagliato dall'elenco è un errore comune.
- Scegli articolo_elenco come oggetto di primo livello e quindi prodotto / productType per il secondo criterio. Nota: anche la scelta dell'oggetto sbagliato in questo passaggio è un errore comune.
- Scegli AND per combinare i due criteri.
- Inserisci i valori
prevenditaeabbigliamentoper i due criteri.