概要
通常、ルールに複数のブロックがある場合、各ブロックは上から下に順番に実行され、任意のブロックの条件が満たされた場合、そのブロックのアクションが実行されます。したがって、各ルールは複数のアクションを持つことができます。しかし、場合によってはこの動作を望まず、1つのブロックだけを実行し、その後ルールを停止させたいことがあります。これが分岐(Branching)の出番です。 分岐を使用すると、if → else if → else ロジックに従う複数の条件ブロックを使用してルールを作成できます。各ブロックは順番にチェックされ、1つのブロックが一致すると、そのアクションが実行され、ルールは停止します。これにより、1つのブロックのみが実行されることが保証され、アクションの重複や競合を防ぎます。これは非常に強力な機能で、複数の条件を持つ複雑なルールの作成に使用できます。以下は、3つのブロックを持つ分岐ルールの例です。ここでは、商品タグに基づいて異なる割引を適用したい場合を示します。その他の割引に該当しない場合には、すべての配送に対してデフォルトで5%割引を適用します。条件に基づき1つのブロックのみが実行され、その後ルールは停止します。
ここでの重要な条件は、2番目と3番目のブロックにある前のすべての条件が無効で、条件に基づき1つのブロックのみが実行され、その後ルールは停止します。この条件を使用することで、任意のルールで分岐を使用できます。

1
商品タグが sport で、注文小計が 33 以上の場合
その場合、配送に対して20%割引が適用され、ルールは停止します。
2
顧客タグが VIP の場合
その場合、配送に対して50%割引が適用され、ルールは停止します。
3
それ以外(デフォルト)
その場合、配送に対して5%割引が適用されます。
説明
最初の条件ブロック(if)
- システムは最初の条件ブロックから開始します。
- このブロックには、AND または OR を使用した複数のサブ条件を含めることができます。
- ブロック全体の条件が満たされた場合、その**「Then」アクション**が実行されます(例:20%割引を適用)。
- 一度実行されると、システムは次のブロックをチェックしません。
例: 商品タグが sport かつ 注文小計 ≥ 33 または 商品タグが shoes → すべての配送に20%割引を適用

Else if 条件ブロック
- 最初のブロックが一致しない場合、システムは次のブロックをチェックします。
- Else If ブロックには、AND または OR を使用した複数のサブ条件を含めることができ、サブ条件として**「前のすべての条件が無効」**を含める必要があります。
- ブロックは1つ以上順番に配置できます。ただし、**「前のすべての条件が無効」**が含まれていない場合、そのブロックは Else If として機能せず、通常の If ブロックとして動作します。
- 任意のブロックの条件が満たされると、その**「Then」アクション**が実行され、評価は停止します。
例: 前のすべての条件が無効 かつ 顧客タグが VIP → すべての配送に50%割引を適用

フォールバックブロック(else)
- 以前のブロックがいずれも一致しない場合、前のすべての条件が無効 の条件を持つフォールバックブロックを追加できます。
- これにより、Else(デフォルト) として機能し、以前のブロックが実行されなかった場合でも常にデフォルトの**「Then」アクション**(例:5%割引)が実行されます。
例: 前のすべての条件が無効 → すべての配送に5%割引を適用

ブロックは優先度の高い順から低い順に並べることをおすすめします。最初のブロックが最も高い優先度で、最後のブロックが最も低い優先度です。
使用例
商品タグに基づいて異なる配送割引を適用したい場合を考えます。ルール設定
ブロック1(if) → 商品タグがsport
→ すべての配送に 20% 割引を適用(最優先)

最初のブロックの後に新しいブロックを追加するには、次のいずれかを実行します:
ルールビルダーで 「新しいブロックを追加」 ボタンをクリック

winter
かつ 前のすべての条件が無効 → すべての配送に 50% 割引 を適用



実行フロー
システムは ブロック1 から開始します。一致した場合(商品タグ =sport
)、20%配送割引 が適用され、ルールは終了します。

winter
の場合、50%配送割引 が適用され、ルールは終了します。

