フロアプランとテーブル
フロアプランエディターは、テーブルを配置するためのビジュアルキャンバスです。テーブルページは、各テーブルごとの詳細と操作を行うビューです。どちらも同じテーブルレコードを基に動作します。
フロア
フロアは、たとえば「メインホール」「中 2 階」「屋外テラス」など、物理的な場所ごとにテーブルをまとめるためのものです。フロアは設定 > カフェテリア から作成・管理します。
カフェには少なくとも 1 つのフロアが必要です。テーブルは必ず 1 つのフロアに割り当てられます。フロアは上下移動のコントロールで並べ替えでき、最上位のフロアがフロアプランタブを開いたときの既定になります。フロアプランページには「すべてのフロア」ピルもあり、全テーブルをまとめて表示できます。
フロアプランエディター
フロアプランエディターは、10 ピクセルのグリッドを持つ 1200 x 720 のキャンバス上に描画されます。テーブルは保存済みの位置に形状として表示されます。エディターは次の 2 つの表示モードをサポートします。
| モード | 用途 |
|---|---|
| 2D | 編集と配置に使います。テーブルの移動、追加、削除、名前変更を行えます。 |
| 3D | プレゼンテーションや見学向けです。キャンバスは CSS の perspective で傾き、建築図面風の二等角表示になります。傾いたキャンバスではポインタの対応が曖昧になるため、3D モードではドラッグは無効です。 |
テーブルの追加と配置
- カフェテリア > フロアプラン を開きます。
- 上部のフロアピルから対象フロアを選びます。
- テーブルを追加 をクリックします。新しいテーブルが、既定の形状、サイズ、座席数でキャンバス原点に表示されます。
- テーブル本体を目的の位置までドラッグします。マウスボタンを離した時点で位置が自動保存されます。
- 座席グループごとに繰り返します。
位置は 10 ピクセルのグリッドにスナップするため、ピクセル単位で厳密に合わせなくても整った配置になります。
テーブルのプロパティ
各テーブルには次の編集可能な項目があります。
| 項目 | 意味 |
|---|---|
| Code | QR に印字され、スタッフに見える短い識別子です。カフェ内で一意である必要があります。 |
| Display Name | スタッフ向けの長めのラベルです。例: 「窓側 3」「ボックス A」など。 |
| Seat Count | そのテーブルの座席数です。既定は 2 です。 |
| Shape | square、rectangle horizontal、rectangle vertical、round のいずれかです。 |
| Size | 1 から 10 の整数です。エディターと 3D 表示での描画サイズを制御します。 |
| Floor | このテーブルが属するフロアです。この項目を編集して別フロアへ移動できます。 |
| State | idle、in_use、out_of_order のいずれかです。 |
テーブルの状態
| State | 意味 |
|---|---|
idle |
アクティブなセッションがありません。スタッフが着席させるまで顧客は注文できません。 |
in_use |
セキュリティコードが有効です。顧客は QR を読み取って注文できます。 |
out_of_order |
テーブルは利用不可です。フロアプラン上では暗く表示され、QR ページには利用不可の案内が表示されます。メンテナンスや家具修理に便利です。 |
顧客を着席させる
テーブルから注文を受け付けるには、スタッフが顧客を着席させる必要があります。着席するとセキュリティコードが発行され、テーブルは in_use 状態になります。
- テーブルページ、またはフロアプランのアクションメニューからテーブルを選択します。
- 顧客を着席(「テーブルを開く」とも表示されます)をクリックします。
- システムが 6 桁のセキュリティコードを生成し、表示します。
- そのコードを顧客に渡します。顧客は QR 読み取り後に入力します。
コードは、生成した瞬間と、すでに着席済みのテーブルで管理者が「コードを表示」ダイアログを開いたときだけ、平文で表示されます。サーバー側ではハッシュ化されます。コードは既定の有効時間を過ぎると失効し、いつでも再発行またはリセットできます。
コードの表示と再発行
- コードを表示。 開いているテーブルの、現在キャッシュされている平文コードを表示します。顧客が番号を見逃したときに便利です。この操作ではコードは再発行されず、以前の QR も無効になりません。
- QR を再発行。 テーブル用の新しい QR トークンを生成します。以前の QR ステッカーは無効になります。ステッカーを再印刷するときや、古い QR が外部に共有された可能性があるときに使います。
テーブルを閉じる
顧客が未精算の請求なしで退店したら、テーブルを閉じる をクリックします。セキュリティコードは直ちに失効し、テーブルは idle に戻り、その後の読み取りには再度の着席が必要になります。
テーブルに未払い注文がある場合は、代わりに 精算 を使います。精算は、選択した支払い方法で未処理の注文をすべて閉じ、その後テーブルを idle に戻します。精算の流れは 注文ページ を参照してください。
QR コード
各テーブルには、URL handy.cafe/{cafe-slug}/{table-code} をエンコードした QR コードがあります。クエリパラメータには、そのステッカーが本物であることを証明する QR トークンが含まれます。顧客が QR を読み取ると:
- メニューページがクラウド API に対して slug とテーブルコードを解決します。
- テーブルが
in_use状態なら、6 桁のセキュリティコードの入力を求められます。 - 検証に成功すると、セッショントークンが発行され、Cookie と Bearer トークンのフォールバックに保存されます。iPhone の Safari は一部構成でサードパーティ Cookie をブロックすることがあるため、このフォールバックが必要です。
印刷用 QR はテーブルページから生成します。各テーブルには QR プレビューがあり、SVG または PNG として保存できます。QR トークンを再発行したときや slug を変更したときは、ステッカーを再印刷してください。
フロアプラン設計のヒント
- まず実際のレイアウトをキャンバスに写してください。入口を片側の端に置き、そこから内側へ配置していくと、スタッフが把握しやすくなります。
- 1 フロアだけの施設でも、テーブルはフロアごとに分けておくと便利です。「ホール」と「テラス」を別フロアにしておくと、注文ダッシュボードをエリアで絞り込めます。
- 4 人以上が座れるボックス席には大きめの Size を、カウンタースツールには小さめの Size を使ってください。
- 家具の修理が必要なテーブルは
out_of_orderにして、顧客が注文できないようにします。座席が恒久的に無くなる場合を除き、テーブルレコードは削除しないでください。