Behind the build — Day 028

つくり方の全容

day28は、架空のしゃぶしゃぶ店「くぐり」。作ったのは、時間ごとに予約の定員を決められる予約カレンダーです。この店なら、同じ時間に受けるのは3組まで。空きは◯△✕。埋まった枠は自動で満席になり、満席のあとに届いた予約には自動でお断りの返信まで返します。台帳はGoogleカレンダーだけ。

くぐりの空き状況。今日から7日間×開始時刻4枠の表に◯△✕—が並ぶ
時間ごとの空きが、◯(空きあり)・△(残り1組)・✕(満席)で見える

01

きっかけは質問でした

いただいた質問の要旨。飲食店で使いたいのですが、指定した時間帯に何枠まで、という設定はできますか
SNS経由でいただいた、飲食店の方からの質問

先日、無料配布している予約カレンダーについて、飲食店の方から質問をいただきました。「指定した時間帯に、何枠まで。そういう設定はできますか」。配布版は美容室や教室のような「1つの時間枠に1組」の前提で作っていたので、そのままではできません。技術的にはできるはず——と考えて、「検証してからご連絡します」とお答えしました。今回は、その検証の記録です。

02

予定を数えて定員と比べる

Googleカレンダー。7月25日に予約のお客さまの予定が並んでいる
台帳はGoogleカレンダー。予約1件=予定1件

仕組みの芯は単純です。予約1件=Googleカレンダーの予定1件。ページは、同じ時間帯に予定が何件あるかを数えて、決めておいた定員(今回は3組)と比べるだけ。予定が1件までなら◯、2件になると△(残り1組)、3件で✕。時間ごとに定員を変えることもできます(17時は2組まで、19時は4組まで、のように)。

電話で受けた予約も同じ台帳に電話や店頭で受けた予約は、店主がカレンダーに普段どおり書けば、それも1件として数えられます。LINEの予約と手書きの予約が同じ台帳に並ぶので、どこから来た予約でも定員の計算はひとつです。

03

受ける直前にもう一度数える

LINEのやりとり。予約が承られたあと、同じ枠への予約に「ただいま満席となりました」と自動返信が返っている
満席の枠に届いた予約には、自動でお断りの返信

予約はLINEです。枠と人数を選び、名前を入れると、LINEが下書きつきで開くので、お客さまは送信を押すだけ。すると裏側が受ける直前にもう一度その枠を数えて、定員に届いていなければカレンダーに書き込み、「ご予約承りました」と返します。もし直前に埋まっていたら、書き込まずに「ただいま満席となりました」とお断りします。

なぜ「もう一度」数えるのかサイトの表示は、見ている間に古くなります。◯を見て送った2人が同じ最後の1枠を取り合うことがある——だから表示の時点ではなく、書き込む瞬間の事実で受けるかどうかを決めます。これで定員を超える予約は構造的に入りません。

04

お客さまが書くのは名前だけ

枠を選んだ後の予約画面。人数をタップで選び、名前を入れて、LINEを開いて送信するボタン
枠→人数→名前。LINEでは送信を押すだけ

予約までの操作は、枠をタップ、人数をタップ、名前を入れる、の3つ。あとはLINEを開いて送信するだけです。予約と同時に店とお客さまのLINEがつながるので、変更やキャンセルの連絡もそのままできます。

休みもカレンダーで管理する定休日の設定項目は、途中で捨てました。毎週の定休は繰り返しの終日予定、臨時休業はその日に終日予定を入れるだけ。ページでは「—」になり、その日に届いた予約には「お休みのためお受けできません」と返ります。予約も休みも、カレンダー1か所で管理できます。

05

そして、完成形。

完成形 PC。しゃぶしゃぶ くぐりのサイト全体。鍋の写真、空き状況の表、お品書き、店の情報
完成 — くぐり(PC・全体)
完成形 スマホ。同じページを縦画面で通した状態
完成 — くぐり(スマホ・全体)

店は架空のしゃぶしゃぶ店「くぐり」——肉が出汁をくぐる、のれんをくぐる、の二重の意味です。写真は主役にせず、予約カレンダーそのものを一番上に置きました。今回の主役は見た目ではなく、定員のある予約がきちんと動くことだからです。

予約の定員も、カレンダーだけで。

時間ごとに定員を決めて、埋まった枠は自動で満席に。満席のあとに届いた予約には自動でお断り。使ったのはGoogleカレンダーとLINE公式アカウント、どちらも無料の道具だけです。本物のカレンダーとLINEで、3組で満席になること・4組目が断られることを確かめてから、この記事を書いています。質問をくださった方にも、検証の結果を報告しました。100連発は、まだ続きます。