見出し画像

飲食店舗運営を支えるプリンターの話

こんにちは、dinii のソフトウェアエンジニアの @lightnet328 です。

今回はダイニーのレジアプリや注文システムと連携して伝票を印刷することができるプリンターの役割や連携の仕組みについてお伝えしたいと思います。

ちなみに前回はレジアプリと連携している自動釣銭機の記事を書きました。こちらもソフトウェアと店舗オペレーションを紐付けているデバイスについて説明した記事です。併せて読んでみてください。

飲食店のプリンターと伝票

プリンターと聞いて一般に想起されるのは家庭用プリンターや業務用プリンターだと思います。飲食店では注文を厨房のスタッフに伝えたり、これから会計する内容や会計した結果を来店客に伝えるために小さな伝票を印刷します。
必要な印紙サイズが小さく、飲食店のスペースにも限りがあるため、飲食店のプリンターは 120 mm 四方程度のサイズのものがよく使われています。ルービックキューブが 57 mm 四方なので、大体ルービックキューブを 4 つ集めて立方体にした程度の大きさですね。

レシートプリンター TM-m30Ⅱ-H

飲食店で使われる伝票には、以下のような種類のものがあります。

キッチン伝票

  • 注文されたメニューのメニュー名や数量がメニュー名ごとに印字されます

  • 通常、メニューを都度調理するために使われることが多いです

キッチン伝票

デシャップ伝票

  • 注文されたメニューが卓毎にまとまって、メニュー名や数量、その卓の金額などが印字されます

  • 卓単位でメニューの提供を管理するために使われることが多いです

デシャップ伝票

会計伝票

  • 一般的なレシートです

  • 注文した商品や会計金額などが印字されます

  • 皆さんが貰ったり貰わなかったりします

会計伝票

領収書

  • 宛名の欄と領収金額が印字されます

領収書

これに加えて、ダイニーではモバイルオーダーからの店員さんの呼び出しやスタッフさんへの感謝の気持ちを伝える「推しエール」を呼び出し伝票や推しエール伝票として印刷しています。

伝票の価値とキッチンディスプレイ

ところで、なぜ飲食店では紙の伝票を使い続けているのでしょうか?

実は飲食店の伝票はただ伝えるということだけに価値があるのではなく、調理が終わったら伝票を都度捨てて調理を管理したり、伝票を料理のお皿の横に置いて提供を管理したり、というようにタスク管理の手段として使われています。
紙の伝票は飲食店のスタッフにとって慣れていたり、物理的なインターフェースとして扱いやすかったり、オペレーションが紙の伝票前提で作られているために一気にシステムで代替されるということは起こっていません。

一方で調理の管理をデジタル化するプロダクト「キッチンディスプレイ(KD)」も開発しています。

伝票をデジタル化することで注文が沢山入ったときに伝票が調理台から溢れそうになり慌てふためくことが無くなったり、調理の開始と終了の時間がわかってオペレーション改善のための計測ができるようになります。キッチンディスプレイも非常に魅力的なプロダクトですが、この記事の本題はプリンターなのでキッチンディスプレイの詳細は過去の記事や将来の記事に譲ります。

プリンターとキッチンディスプレイのどちらが良いという話では無く、ダイニーではお客様がオペレーションにおける考えと使いたい手段に寄り添えるように両方の開発を行っています。

印刷の仕組み

次に印刷の仕組みを紹介します。

ダイニーの iOS アプリケーションのレジや注文を処理するサーバーは EPSON のプリンターと連携しています。React Native で書かれたレジアプリは Epson ePOS SDK for iOS という SDK を内部的に使用して、会計後に会計伝票や領収書を印刷しています。レジアプリのコードは主に TypeScript で書かれているため、印刷のコードも TypeScript で書くために Objective-C の SDK を React Native の iOS Native Modules を使用してラップしています。

また、サーバーはモバイルオーダーなどから注文を受け付け、ePOS-Print という EPSON プリンターがサーバーに印刷の命令をポーリングしてくれる仕組みを利用してキッチン伝票やデシャップ伝票などを印刷しています。

印刷までの流れ

Epson ePOS SDK for iOS と ePOS-Print のどちらも、印刷内容は XML で表現することができます。ダイニーでは印刷内容を生成するために、XML を生成する関数を用意しています。関数を呼び出すことで XML が生成されるのはちょうど React に似ています。JSX は使っていませんが、React を書くのと同じような気持ちで伝票に印字するコードを実装できるようになっています。

印刷処理のイメージ

まとめ

本記事では飲食店におけるプリンターの役割、伝票の種類と伝票を使う理由、ダイニーの印刷の仕組みなどを紹介しました。このように飲食店舗の円滑なオペレーションのためにハードウェアとソフトウェアの連携を頑張っています。また、プリンター連携の他にも自動釣銭機やキャッシュドロワー、決済端末などとの連携を行っています。

この記事を読んでいただいた方が伝票を見たときに「これを印刷するのは大変そうだな」とか「この伝票は見やすいな」ということを思ってもらえると嬉しいです。

最後に求人です。ダイニーは「飲食をもっと楽しく面白く」というミッションを掲げて、モバイルオーダーを中心に新しい食事体験や「また行きたい」と思えるような体験を生み出す開発を行っています。少しでも興味を持っていただけた方は以下のリンクからカジュアル面談でお話させてください。

この記事が気に入ったらサポートをしてみませんか?