Betingelser i Shopify Flow
I Shopify Flow avgjør betingelser hvorvidt en handling utføres eller ikke etter at en utløser starter en arbeidsflyt. Når du angir en betingelse velger du en verdi hentet fra data i butikken, en logisk operatør og manuelt angir en verdi det skal kontrolleres mot.
Datatyper som brukes med Flow
Den første verdien i en Flow-betingelse er data hentet fra butikken din, og hentes fra GraphQL Admin API.
Flow støtter følgende typer data:
- Flyt: Flytverdier er tall med et desimalbeløp. For eksempel 4,25.
- Integer: Heltallsverdier er heltall som ikke har desimaler. For eksempel 42.
- Dato: Datoverdier er en numerisk representasjon av datoen. For eksempel 01012021.
- Streng: Strengverdier er tekst. Sammenligninger som bruker strengverdier skiller ikke mellom små og store bokstaver.
- Boolsk: En boolsk verdi er enten sann eller usann.
- Enum: Enum-verdier er datasett som tillater at en variabel kan bestå av et sett forhåndsdefinerte konstanter.
Logiske operatører som brukes i Flow
Logiske operatører definerer hvordan betingelsen din brukes. Betingelser kan sjekke enkle egenskaper, for eksempel hvorvidt totalsummen for en bestilling er over et bestemt beløp, eller om en kunde godtar markedsføring. Logiske operatører kan også se etter mer kompliserte egenskaper.
Flow kan bruke følgende operatører:
- Tilsvarer
- Tilsvarer ikke
- Større enn og Større enn eller lik
- Mindre enn og Mindre enn eller lik
- Hvilken som helst av
- Ingen av
- Inkluderer
- Inkluderer ikke
- Begynner med
- Begynner ikke med
- Slutter med
- Slutter ikke med
Tilsvarer
Lik sammenligner verdier for å se om de er like. I det følgende eksempelet hentes verdien for order.currentTotalDiscountsSet.shopMoney.amount
fra butikkdataene dine og sammenlignes med den andre verdien, 50.
Hvis den første verdien tilsvarer 50, er betingelsen sann. Bestillingen blir kansellert.
Tilsvarer ikke
Tilsvarer ikke sammenligner verdier for å se om de er like eller ikke. I følgende eksempel hentes verdien order.currentTotalDiscountsSet.shopMoney.amount
fra butikkdataene, og sammenlignes med den andre verdien 50.
Hvis den første verdien tilsvarer 93, er betingelsen sann. Bestillingen blir kansellert.
Større enn og Større enn eller lik
Større enn og Større enn eller lik sammenligner verdier for å se om den første verdien er større enn, eller større enn eller lik, den andre verdien. I følgende eksempel hentes verdien order.currentTotalDiscountsSet.shopMoney.amount
fra butikkdataene, og sammenlignes med den andre verdien 50.
Hvis verdien som er hentet fra butikken din er 137, er betingelsen sann, fordi 137 er større enn 50. Bestillingen blir kansellert.
Mindre enn og Mindre enn eller lik
Mindre enn og Mindre enn eller lik sammenligner verdier for å se om den første verdien er mindre enn, eller mindre enn eller lik, den andre verdien. I det følgende eksempelet hentes verdien for order.currentTotalDiscountsSet.shopMoney.amount
fra butikkdataene dine og sammenlignes med den andre verdien, 50.
Hvis verdien som er hentet fra butikken din er 47, er betingelsen sann, fordi 47 er mindre enn eller lik 50. Bestillingen blir kansellert.
Hvilken som helst av
Hvilken som helst av sammenligner verdier i en matrise med data for å se om den første verdien inneholder noen av dataene i den andre verdien. Verdiene som skal kontrolleres må angis individuelt, og etterfølges av Enter-tasten. Hvis Hvilken som helst av brukes i en tom matrise fører det til en falsk evaluering. I følgende eksempel hentes verdien for order.lineitem.product.title
fra butikkdataene, og sammenlignes med det andre settet med verdier: ananas, guava, kiwi.
Hvis verdien som hentes fra butikken din er guava, er betingelsen sann, fordi guava er inkludert i matrisen ananas, guava, kiwi. Bestillingen blir kansellert.
Ingen av
Ingen av sammenligner verdier i en matrise med data for å se om den første verdien ikke inneholder noen av dataene i den andre verdien. Verdiene som skal kontrolleres må angis individuelt og etterfølges av Enter-tasten. I det følgende eksempelet hentes verdien for order.lineitem.product.title
fra butikkdataene og sammenlignes med det andre settet med verdier: ananas, guava, kiwi.
Hvis verdien som hentes fra butikken er bringebær, er betingelsen sann, fordi bringebær ikke er inkludert i matrisen ananas, guava, kiwi. Bestillingen blir kansellert.
Inkluderer
Inkluderer sammenligner verdier for å se om noe av teksten i den første verdien inneholder teksten i den andre verdien. I følgende eksempel hentes verdien order.lineitem.product.title
fra butikkdataene, og sammenlignes med den andre verdien, scrape.
Hvis verdien som hentes fra butikken er skyscraper, er betingelsen sann, fordi den nøyaktige strengen scrape er inkludert i strengen skyscraper. Bestillingen blir kansellert.
Inkluderer ikke
Inkluderer ikke sammenligner verdier for å se om noe av teksten i den første verdien ikke inneholder teksten i den andre verdien. I følgende eksempel hentes verdien for order.lineitem.product.title
fra butikken, og sammenlignes mot den andre verdien, scrape.
Hvis verdien som hentes fra butikkdataene er scrap-metal, er betingelsen sann, fordi den presise teksten scrape ikke er inkludert i strengen scrap-metal. Bestillingen blir kansellert.
Begynner med
Begynner med sammenligner verdier for å se om den første verdien starter med teksten fra den andre verdien. I følgende eksempel hentes verdien order.shippingAddress.country
fra butikkdataene, og sammenlignes med den andre verdien, United.
Hvis verdien som hentes fra butikken er United Kingdom, er betingelsen sann, fordi strengen United er begynnelsen på strengen United Kingdom. Bestillingen blir kansellert.
Begynner ikke med
Begynner ikke med sammenligner verdier for å se om den første verdien ikke starter med teksten i den andre verdien. I følgende eksempel hentes verdien order.shippingAddress.country
fra butikkdataene, og sammenlignes med den andre verdien, United.
Hvis verdien som hentes fra butikken er Canada, er betingelsen sann, fordi strengen Canada ikke er begynnelsen på strengen United Kingdom. Bestillingen blir kansellert.
Slutter med
Slutter med sammenligner verdier for å se om den første verdien slutter med teksten fra den andre verdien. I følgende eksempel hentes verdien order.lineitems.product.title
fra butikkdataene, og sammenlignes med den andre verdien, last-available.
Hvis verdien som hentes fra butikken er athletic socks last-available, er betingelsen sann, fordi strengen athletic socks last-available slutter med strengen last-available. Bestillingen blir kansellert.
Slutter ikke med
Slutter ikke med sammenligner verdier for å se om den første verdien ikke slutter med dataene i den andre verdien. I følgende eksempel hentes verdien order.lineitems.product.title
fra butikkdataene, og sammenlignes mot den andre verdien, last-available.
Hvis verdien som hentes fra butikken er athletic socks new, er betingelsen sann fordi strengen athletic socks new ikke slutter med strengen last-available. Bestillingen blir kansellert.
Bestillingsbetingelser
Du kan opprette arbeidsflyter med flere betingelser, og hver av dem kan resultere i ulike handlinger. Rekkefølgen på betingelsene er viktig. Kontrollen for betingelser starter i begynnelsen av arbeidsflyten, og fortsetter systematisk gjennom hver betingelse. Kontrollen stopper når en betingelse oppfylles.
Oppfylle flere betingelser
Når du angir en betingelse kan du angi flere kriterier, og avgjøre om Flow skal vurdere betingelsen som sann hvis alle betingelsene er oppfylt, eller hvis noen av betingelsene er oppfylt.
Hvis alle betingelser er oppfylt
Hvis du velger Hvis alle betingelser er oppfylt får du bare et sant svar hvis alle betingelser som er angitt er sanne.
Du oppretter for eksempel en arbeidsflyt som tagger kunder som er lokalisert i Canada og bruker mer enn 500 USD på en enkeltbestilling.
Arbeidsflyten tagger bare kunden hvis kunden er lokalisert i Canada og bruker mer enn 500 USD i en bestilling. Hvis noen av disse betingelsene er usanne, tagges ikke kunden.
Hvis noen av betingelsene er oppfylt
Hvis du velger Hvis noen av betingelsene er oppfylt, fører det til en sann respons hvis noen av betingelsene du angir er sanne.
Du oppretter for eksempel en arbeidsflyt for å tagge bestillinger som vurderes som høy eller middels risiko.
Arbeidsflyten tagger bestillingen hvis den er enten høy eller medium risiko. Så lenge en av disse betingelsene er sanne, blir bestillingen tagget.
Kombinere betingelser og handlinger
Du kan kombinere betingelser for å skape én stor betingelse. Når betingelser kombineres må alle betingelsene være oppfylt for at hele betingelsen skal være sann. Hvis noen av betingelsene ikke er oppfylt, er hele betingelsen usann. I følgende eksempelet må kunden godta markedsføringsmateriell, og totalprisen for bestillingen må være større enn en gitt terskel.
På samme måte kan du kombinere handlinger slik at du kan kjøre flere handlinger samtidig. Dette eksemplet bruker flere betingelser for å sjekke om en kunde er kvalifisert for et lojalitetsprogram basert på det totale beløpet de har brukt i butikken. I bildet ovenfor kontrolleres følgende betingelser i den rekkefølgen de vises.
- Hvis totalsummen er større enn 1000 USD og kunden godtar markedsføring, gir du dem Gold-taggen.
- Hvis totalbeløpet er under 1000 USD, men mer enn 500 USD og kunden godtar markedsføring, gir du dem Silver-taggen.
- Hvis kunden har brukt mer enn 200 USD og godtar markedsføring, gir du dem Bronze-taggen.
Statiske og dynamiske data i betingelser
Vanligvis er den andre verdien i en betingelse en statisk, manuelt angitt verdi. Denne verdien forblir den samme hver gang arbeidsflyten kjører.
Du kan også bruke dynamiske verdier hvis feltet for den andre verdien viser et </>
-symbol. Dynamiske verdier kommer fra butikkdataene dine hver gang arbeidsflyten kjører. For å bruke en dynamisk verdi klikker du </>
, og velger verdien du vil sjekke mot. Dynamiske verdier er ikke tilgjengelig for alle felt.
Du oppretter for eksempel en arbeidsflyt som tagger en bestilling dersom landet i bestillingens fakturaadresse samsvarer med landet i leveringsadressen.
I dette eksempelet trekkes både den første og den andre verdien fra butikkens data, i stedet for å manuelt spesifisere en statisk streng som skal sjekkes mot den andre verdien. Hvis landet i fakturaadressen som er oppgitt av kunden er det samme som landet kunden har oppgitt i leveringsadressen, er betingelsen sann og bestillingen blir tagget.