AForms Eatsでは条件分岐を実現するのに「ラベリングロジック」という独自の方法を使っています。
基本的な考え方は「フォームの入力内容を見て、条件を満たしているならユーザーにぺたっとラベルを貼る」。そして「ユーザーに貼られているラベルを見て、フォーム部品をコントロールする」というものです。
実例で説明するのが分かりやすいと思いますので、例を挙げていきます。
例1:一定額以上の場合のみ注文できるようにしたい
たとえば、「ご注文は2,000円から」のようなロジックです。
これは、フォーム作成の視点から言い直すと「注文金額が2000円未満ならフォームの送信を中断する」となります。
この場合、まずは料金監視項目を使って注文金額を監視します。上限値を「2000」、上限値を「含まない」として、ラベルを「small-order」とします。
これは「注文金額が2000円未満の場合にsmall-orderラベルをユーザーに貼りなさい」という意味です。
次に、ストップ項目を使って中断を実現します。メッセージを「2,000円以上で注文してください。」として、必要ラベルを「small-order」とします。
これは「small-orderラベルが貼られていたら、フォームの送信を中断してメッセージを表示しなさい」という意味です。
この2つの部品の相乗効果で「ご注文は2,000円から」を実現できます。
ラベリングロジックの処理は、上から下に向かって進みます。
ですので、料金監視項目(ラベルを貼る部品)より下にストップ項目(ラベルを見る部品)を配置するようにしてください。
例2:一定額以上の場合のみ配達料を無料にしたい
たとえば、「3,000円以上のご注文で配送料500円→無料」のようなロジックです。
これは、フォーム作成の視点から言い直すと「注文金額が3000円未満なら配送料500円の明細行を追加する」となります。
例1と同じように、まずは料金監視項目を使って注文金額を監視します。上限値を「3000」、上限値を「含まない」として、ラベルを「small-order」とします。
これは「注文金額が3000円未満の場合にsmall-orderラベルをユーザーに貼りなさい」という意味です。
次に、自動項目を使って明細行が自動追加されるようにします。名前を「配送料」、金額を「500」、税率を「10」として、必要ラベルを「small-order」とします。
これは「small-orderラベルが貼られていたら、配送料500円(税率10%)の明細行を追加しなさい」という意味です。
この2つの部品の相乗効果で「3,000円以上のご注文で配送料500円→無料」を実現できます。
ラベルの仕様
- ラベルに使える文字は英語、数字、ハイフン「-」、アンダースコア「_」(すべて半角)です。ラベルの前後に付いた半角スペース「 」はラベル名から除去されます。
- ラベルを複数書く場合は半角カンマ「,」で区切ってください。
まとめ
飲食店での注文に複雑なロジックはなじまないようにも思えますが、ネット注文であることやデリバリー周りでは条件分岐が必要になってくるケースも多いようです。
ぜひラベリングロジックを使ってお望みの注文フォームを作ってください。
なお、有料のAForms Eats PROでは、配達先に応じて配達料を変えるロジックや、デリバリーでなくテイクアウトなら割引するロジックなども作れます。その辺りも上級編としていずれ解説したいと思います。