Shopify Flowの条件
Shopify Flowの場合、トリガーがワークフローを起動した後にアクションが実行されるかどうかは、条件によって決まります。条件を設定する際、ストアのデータから取得される値、論理演算子を選択します。また、検証する値を手動で設定してください。
Flowで使用されるデータのタイプ
Flowの条件の1つ目の値は、ストアから取得されるデータで、GraphQL Admin APIから抽出されます。
Flowでは、以下のデータをサポートしています。
- 浮動小数: 浮動小数値は、4.25のように小数値を含む数値です。
- 整数: 整数の値は、42のように小数値を含まない整数です。
- 日付: 日付の値は、01012021のように日付を数値で表したものです。
- 文字列: 文字列の値はテキストです。文字列の値を使用した比較では、大文字と小文字の区別がされません。
- ブーリアン: ブーリアンの値は、trueまたはfalseです。
- Enum: Enumの値は、1つの変数をあらかじめ定義されたいくつかの定数にできるデータセットです。
Flowで使用される論理演算子
論理演算子によって、条件の適用方法が決まります。条件によって、注文の合計が一定の金額を超えているか、お客様がマーケティング情報を受け入れるかなどの単純なプロパティを検証できます。また、論理演算子を使用して、より複雑なプロパティを検証できます。
Flowでは、以下の演算子を使用できます。
と一致する
[と一致する]では、値を比較して、一致するかどうかを確認します。以下の例では、order.currentTotalDiscountsSet.shopMoney.amount
の値はストアデータから取得され、2つ目の値である50と比較されます。
最初の値が50と一致する場合、条件はtrueです。この注文はキャンセルされます。
と一致しない
[と一致しない]を使用すると、値を比較して、一致しないかどうかを確認します。以下の例では、order.currentTotalDiscountsSet.shopMoney.amount
の値はストアデータから取得され、2つ目の値である50と比較されます。
最初の値が93の場合、この条件はtrueとなります。この注文はキャンセルされます。
より大きい、以上
[より大きい]や[以上]を使用すると、値を比較して、1つ目の値が2つ目の値より大きい、または2つ目の値以上であるかどうかを確認します。以下の例では、order.currentTotalDiscountsSet.shopMoney.amount
の値がストアデータから取得され、2つ目の値である50と比較されます。
ストアから取得された値が137の場合、137は50より大きいので、この条件はtrueとなります。この注文はキャンセルされます。
より小さい、以下
[より小さい]や[以下]では、値を比較して、1つ目の値が2つ目の値より小さい、または2つ目の値以下であるかどうかを確認します。以下の例では、order.currentTotalDiscountsSet.shopMoney.amount
の値がストアデータから取得され、2つ目の値である50と比較されます。
ストアから取得された値が47の場合、47は50以下なので、この条件はtrueとなります。この注文はキャンセルされます。
のいずれか
[のいずれか]では、配列されたデータの値を比較して、1つ目の入力値に2つ目の入力値のデータのいずれかが含まれるかを確認します。検証する値は、個別に入力し、その後、Enterキーを押す必要があります。配列を入力しないで、[のいずれか]を使用すると、正しい評価ができません。以下の例では、order.lineitem.product.title
の値がストアデータから取得され、2つ目の値であるpineapple、guava、kiwiと比較されます。
ストアから取得された値がguavaの場合、guavaはpineapple、guava、kiwiの配列に含まれるので、この条件はtrueとなります。この注文はキャンセルされます。
のいずれでもない
[のいずれでもない]では、配列されたデータの値を比較して、1つ目の入力値に2つ目の入力値のデータのいずれも含まれていないことを確認します。検証する値は、個別に入力し、その後、Enterキーを押す必要があります。カンマの前後の空白は自動的に削除されます。以下の例では、order.lineitem.product.title
の値がストアデータから取得され、2つ目の値であるpineapple、guava、kiwiと比較されます。
ストアから取得された値がraspberryの場合、raspberryはpineapple、guava、kiwiの配列に含まれないので、この条件はtrueとなります。この注文はキャンセルされます。
を含む
[を含む]を使用すると、値を比較して、1つ目の入力値のいずれかに2つ目の入力値のデータが含まれているかを確認します。以下の例では、order.lineitem.product.title
の値はストアデータから取得され、2つ目の値であるscrapeと比較されます。
ストアデータから取得されたデータがskyscraperの場合、scrapeと合致する文字列が、skyscraperの文字列に含まれているので、この条件はtureとなります。この注文はキャンセルされます。
を含まない
[を含まない]では、値を比較して、1つ目の入力値のいずれかに2つ目の入力値のデータが含まれていないことを確認します。以下の例では、order.lineitem.product.title
の値がストアデータから取得され、2つ目の値であるscrapeと比較されます。
ストアデータから取得されたデータがscrap-metalの場合、scrapeと合致する文字列は、scrap-metalの文字列に含まれていないので、この条件はtureとなります。この注文はキャンセルされます。
から始まる
[から始まる]を使用すると、値を比較して、1つ目の値が2つ目の値のデータから始まっているかを確認します。以下の例では、order.shippingAddress.country
の値がストアデータから取得され、2つ目の値であるUnitedと比較されます。
ストアデータから取得されたデータがUnited Kingdomの場合、United Kingdomの文字列はUnitedの文字列で始まるので、この条件はtureとなります。この注文はキャンセルされます。
から始まらない
[から始まらない]を使用すると、値を比較して、1つ目の値が2つ目の値のデータから始まっていないかを確認します。以下の例では、order.shippingAddress.country
の値はストアデータから取得され、2つ目の値であるUnitedと比較されます。
ストアデータから取得されたデータがCanadaの場合、Canadaの文字列はUnitedの文字列で始まらないので、この条件はtureとなります。この注文はキャンセルされます。
下4桁
[で終わる]を使用すると、値を比較して、1つ目の値が2つ目の値のデータで終わっているかを確認します。以下の例では、order.lineitems.product.title
の値はストアデータから取得され、2つ目の値であるlast-availableと比較されます。
ストアデータから取得されたデータがathletic socks last-availableの場合、athletic socks last-availableの文字列はlast-availableの文字列で終わるので、この条件はtureとなります。この注文はキャンセルされます。
で終わらない
[で終わらない]では、値を比較して、1つ目の値が2つ目の値のデータで終わっていないことを確認します。以下の例では、order.lineitems.product.title
の値がストアデータから取得され、2つ目の値であるlast-availableと比較されます。
ストアデータから取得されたデータがathletic socks newの場合、athletic socks newの文字列はlast-availableの文字列で終わらないので、この条件はtureとなります。この注文はキャンセルされます。
条件の順序
複数の条件を持つワークフローを作成することができ,各条件はそれぞれ異なるアクションとなります。条件の順序は重要です。条件の確認は、ワークフローの開始時に開始され、各条件を通じて体系的に進められます。条件が満たされると、確認は停止します。
複数の条件を満たす
条件を設定する際に、複数の基準を設定して、すべての条件が満たされた場合に条件をtrueとみなすようにFlowを設定するか、いずれか1つの条件が満たされた場合に条件をtrueとみなすようにFlowを設定するかを決めることができます。
すべての条件が満たされた場合
[すべての条件が満たされた場合]を選択すると、設定したすべての条件がtrueの場合にのみ、trueという応答になります。
たとえば、お客様の所在地がカナダにあって、一度の注文で500ドルより多く支払った場合に、お客様にタグ付けをするワークフローを作成するとします。
そのようなワークフローは、お客様の所在地がカナダにあって、お客様が注文で500ドルより多く支払った場合にのみ、お客様にタグ付けします。いずれかの条件がfalseの場合、お客様にタグ付けはされません。
いずれかの条件が満たされた場合
[いずれかの条件が満たされた場合]を選択すると、設定した条件のいずれか1つがtrueの場合に、trueという応答になります。
たとえば、リスクレベルが高または中と思われる注文にタグ付けするワークフローを作成するとします。
ワークフローは、リスクレベルが高か中であれば、注文にタグ付けします。条件のうち1つがtrueであれば、注文はタグ付けされます。
条件とアクションを組み合わせる
複数の条件を組み合わせて1つの大きな条件を作成できます。条件が組み合わされている場合、条件全体がtrueとなるためには、すべての条件を満たす必要があります。いずれかの条件が満たされないと、条件全体がfalseとなります。以下の例では、お客様がマーケティング情報の受領を承認する必要があり、注文の合計金額が特定の基準値を満たしている必要があります。
同様に、複数のアクションを実行できるように、アクションをまとめて組み合わせることができます。この例では、複数の条件を使用して、お客様がストアで支払った合計金額に基づいてロイヤリティプログラムの対象になるかどうかを確認します。上記の例では、以下の条件が、表示された順番でチェックされます。
- 合計金額が1,000ドルを超えており、お客様がマーケティングを受け入れることに同意している場合、「金」のタグでタグ付けします。
- 500年合計金額がドルを超えており1000ドル未満で,お客様がマーケティングを受け入れることに同意している場合、「銀」のタグでタグ付けします。
- お客様の支払いが200ドルを超えており、マーケティングを受け入れることに同意している場合、「銅」のタグでタグ付けします。
条件内の静的データと動的データ
通常、条件の2つ目の値は静的データで手動で入力されます。毎回ワークフローが実行される際に同じ値が使用されます。
2つ目の値のフィールドに>
記号が表示されている場合、動的な値を使用することもできます。動的な値は、ワークフローが実行されるたびにストアデータから抽出されます。動的な値を使用するには、>
記号をクリックして、照合する値を選択します。すべてのフィールドで動的な値を使用できるわけではありません。
たとえば、注文の請求先住所の国が配送先住所の国と一致する場合に、注文をタグ付けするワークフローを作成するとします。
この例では、2つ目の値と照合するために手動で静的な文字列を指定するのではなく、1つ目と2つ目の値は両方ストアのデータから抽出されます。お客様が入力した請求先住所の国が、お客様が入力した配送先住所の国と同じであれば、この条件はtrueとなり、この注文はタグ付けされます。