WORKS
WEB

QR ORDER / STAFF SCREENS スタッフUI 全画面

  • Java 21
  • Spring Boot 3.3.5
  • Thymeleaf
  • Spring Security
  • SSE
  • Flyway

店舗側の33画面(飲食店QRオーダーのスタッフUI)

このページに並んでいるのは静止画です。押しても動きません。 実際に触れるのは上の「店舗管理画面をひらく」で、そちらは公開デモにつながっています。 デモのデータはすべて架空です。実店舗の営業データとは別のデータベースで動いています。 無料枠のため、時間帯によっては最初の1回だけ起動に30〜40秒かかります。

OVERVIEW

なぜ33画面あるのか

セルフオーダーだけを作るなら、要るのはメニュー・注文・厨房ボードの3つです。 ところが実店舗に入れると、そこで止まりません。 品切れを誰が押すのか、時価の魚はいくらで打つのか、レシートはどこに積むのか、 月末に税理士へ何を渡すのか——注文の前後にある仕事が全部ついてきます。

このページはその全部です。画像を押すと拡大できます。 ほかの飲食店向けシステムと違うのは、 仕入れ・在庫・原価と税理士に渡す画面が同じアプリの中にあることです。 注文が売上になり、売上と仕入れが原価率になり、それがそのまま仕訳になる—— この道が途中で切れていないことが、この作品でいちばん見てほしいところです。

KITCHEN & HALL

厨房・ホール(営業中に開く画面)

営業中、ずっと開きっぱなしになる3画面です。 焼く人と運ぶ人では、見たいものが違います。 焼く人が知りたいのは「次に何を焼くか」、 運ぶ人が知りたいのは「どの卓がいま何を待っているか」。 だから厨房ボードは品ごと、ホール・会計は卓ごとに並べました。

3枚目は卓ごとの伝票です。注文の履歴を読む、品を取り消す、 会計へ進む——この3つが1枚に載ります。 近い作業に見えて押したあとに起きることは別なので、モーダルではなくページにしました。 まだ提供していない品があるときは、会計の前に帯で知らせます。

3枚に共通して気をつけたのは、情報量・見やすさ・押しやすさの釣り合いです。 詰めるほど一度に見えますが、字が小さくなり、押す的も小さくなります。 押す的は48px角を下回らないと先に決めて、そこから載せる量のほうを削りました。

この4画面のうち、厨房ボードだけは一度作り直しています。上の1枚目を見ながら読んでください。

NOTHING MOVES UNDER YOUR FINGER

この画面はSSEで自動更新します。注文が入るたび、焼き上がるたびに中身が変わる。 つまり指を伸ばしている最中に画面が動くということです。 押し間違いを減らすいちばんの方法は、押すものを動かさないことでした。

調理済みの札は、その卓の最初の1品が焼き上がった時刻で並びを固定しています。 あとから品が増えても札は動きません。新しい順に並べ替えていたら、 手を伸ばした先に別の卓が来ます。

押すものの数も減らしました。提供のボタンは卓に1つだけ。 そのために調理済みは卓ごとにまとめてあります(一緒に運ぶ単位)。 未調理は伝票ごと——こちらは一緒に焼く単位です。 それでも押してしまったときのために、「← 戻す」を1品ずつに置きました。

THE WEIGHT IS THE MESSAGE

焼き場で目に入るべきは品名です。卓名は運ぶときに要る情報で、焼く手は動かしません。 だから品名を20px、卓名を15pxにして、大きさで役割を分けました。 もとは逆で卓名のほうが大きく、店主に言われるまで気づきませんでした。

太さも情報にしています。同じレーンに瓶ビールのような焼かない品も並ぶので、 焼く品だけ太字にしました。読む前に「これは焼く仕事か」が分かります。

ALWAYS IN THE CORNER OF YOUR EYE

営業中に知りたいことは、どの画面にいても同じです。 注文を受けているか、未提供が何件たまっているか、いまが何日の営業か。 仕入れを打っている最中でも顔を上げた1秒で読めてほしいので、 この3つだけを全画面の上の帯に固定しました。

未提供の件数はボタンにしてあります。 数を見て「多いな」と思ったとき、次にやりたいのは厨房ボードを開くこと。 数字と行き先が離れていると、サイドバーを探す一手間が毎回挟まります。 0件のときは出しません。「0」と書いてあるより、無いほうが速く読めるからです。

QUIET, BUT NOT FAINT

取り消しの ✕ は、一度付けた枠を外しました。 枠があると隣の「調理済み」と同じ重さに見えます。 取り消しは見つかればよく、誘う必要はない操作です。

ただし静かにすることと、字を薄くすることは別です。 一度うすい灰色まで落としたら、背景との明暗差が 読みやすさの基準(4.5:1)を割りました。 いまは濃い灰色に戻して9.7:1。当たり判定も48px角のままです。

逆に「← 戻す」には枠を足しました。 ✕ は記号そのものが操作を表しますが、こちらはただの文字列で、形が無いと押せると分かりません。 この1画面だけで4回出し直しています。実機に出すまで、どちらが良いか分かりませんでした。

FLOOR TERMINAL

店舗端末(スタッフが持ち歩く画面)

店員が持つスマホから注文を受ける画面です。お客さまのQR注文と中身は同じで、 入口だけ変えました。お客さまはQRを読んで卓が決まり、店員は番号を押して卓が決まる。 そこから先のメニュー・品選び・かごはお客さま側のものをそのまま使っています。

流用したのは前職での出来事が理由です。卓にタッチパネルを入れたとき、 機械が使えないお客さまに「口頭で頼みたい」と言われ、 バイトの子が「できません」と答えてトラブルになりました。 代わりの手順が紙で受けて厨房の端末に入れ直すという、普段やらないものだったからです。 だから店員の画面は覚えることを増やさない形にしました。 自分がスマホで注文したときと同じ手順で、そのまま受けられます。

卓に入ったあとは、画面の上に卓名を貼り付けたままにしました。 店員は卓を渡り歩くので、品を選んでいる最中に「これはどの卓だったか」が 分からなくなるのが、この画面でいちばん起きやすい事故です。送信の直前にも必ず目に入ります。

COST

仕入れ・在庫・原価

ここがこのシステムのもう半分です。 レシートは写真を撮って送るだけ。スマホならカメラが直接開き、 APIが読んでデータにします。 機械が苦手でも入力できる形にして、そこから原価率と在庫を出しています。 数字を出すときは、その数字が欠けている理由も同じ画面に書くようにしました。

ただし発注の判断はシステムに渡していません。 前職で「仕入れと在庫から売上を予測する」システムを外注しましたが、当たりませんでした。 長年いるスタッフの読みのほうが正確だったからです。 だからここは予測をやめ、決めた残量を下回ったら、下回ったと出すだけにしています。

SALES

売上・履歴

飲食店の利益構造はほぼ型が決まっています。 FL(食材+人件費)で6割、賃料で1割、光熱費と雑費が1割ずつ。 残りの約1割が営業利益です。だから売上画面は金額を並べるのをやめて、 この目安と今月の実績を上下に並べ、差だけを赤で出します。 店主が知りたいのは金額そのものではなく、いまの経営が型からどれだけずれているかです。 型が決まっているので、実績を並べるだけでそれが読めます。

同じ画面に「注文されている商品」も並べました。 どの品がどれだけ出ているかが分かれば、店主はそこから売上目標を立てられます。 その目標から逆算して仕入れが決まるので、前の節の発注はここが起点です。 新しい品を考えるときも、どんな品がどれだけ出ていたかがそのまま手がかりになります。

TABLES & QR

卓とQR

注文が始まる場所です。QRは卓ごとに発行して紙に焼きます。 一度刷って貼ってしまうと直すのが大変なので、 印刷する前に気づけることを優先しました。

QRには、お客さまのスマホが開くURLを焼き込みます。 ここを設定し忘れると、そのパソコンの中だけで通じるアドレスが入ったまま印刷されます。 やっかいなのは、店のパソコンで試すと普通に開くことです。刷る側は気づけません。 貼って、開店して、お客さまがスマホをかざした瞬間に初めて分かります。 だからこの画面は、URLが直っていないときだけ帯を出して知らせます。

QRの再発行は、いちばん下に離しました。 押すとその卓の合言葉が変わり、席に貼ってあるQRは読めなくなります。 新しい紙を刷って貼り替えるまで、その席からは注文できません。 紙を貼り替えるという物理の作業まで発生するので、取り返しがつかないからです。

FOR THE ACCOUNTANT

税理士に渡す画面

月末に税理士へ渡すための5画面です。店が記録するのは 「食材を8%で買った、インボイスは無かった」という事実で、 会計ソフトが欲しいのは「仕入高/課対仕入(軽)8%・80%控除」という言葉です。 この翻訳をアプリの中でやり切るところまで作りました。 税理士のログインは店のスタッフとは別で、左のメニューもこの5画面だけになります。

インボイスにも対応しています。自分の店の登録番号(T+13桁)と、 仕入先が領収書に登録番号を印字していたかを別々に持ちます。 同じ食材の8%でも、登録番号のある仕入れは全額控除、無い仕入れは経過措置で80%。 証憑の一覧では「登録番号なし」だけを拾えるので、判断が要る分をまとめて見られます。

店の立場も、「課税か免税か」と「登録番号を持っているか」を別の項目にしました。 ひとつの真偽値では課税事業者だがインボイスに登録していない状態が表せません。 納めるけれど、こちらが出す領収書では相手が控除できない——という店が実際にあります。 既定は「未設定」です。免税を既定にすると、何も設定していない店に 「消費税を納めなくてよい」と表示されてしまうからです。

税理士は店の外の人です。月末の帳簿に要るのは売上と仕入れの金額だけで、 品ごとの原価やレシピ、まだ出していない商品までは要りません。 そこは店が外に出したくない情報です。漏れれば作り方も値付けも読まれます。 そこで税理士には専用のロールを割り当てました。この3つには到達できません。 店長だけは税理士画面も見られます。 何を渡しているか自分で確認できないと、外に出す責任が持てないからです。

OPERATIONS

運用

店に置いたあと、誰も見ていない時間を支える画面です。 この4つが無いと、動いてはいても預けられません。

LIVE

触れるデモ(ログイン不要)

上の33枚は静止画です。実際に動くものは公開デモにあります。 ID もパスワードも要りません(最初に、見学モードの説明が1枚はさまります)。 店舗側は見学モードのため表示のみで、保存や削除はできません (厨房ボードで品の状態を進める操作だけ触れます)。 無料枠のため、時間帯によっては最初の1回だけ起動に30〜40秒かかります。

コピーしました