本発明の一実施形態について図面を参照して詳細に説明する。図1は、本発明の一実施形態における精算システム1が稼働している様子を表す斜視図である。精算システム1は、店舗フロアに設置される。精算システム1は、登録装置10と、精算装置20と、ストアコントローラ30(図1では不図示)とを備える。
登録装置10は、主として、商品を登録する登録処理を行う装置である。図1において、登録装置10は、商品登録カウンタ11に設置されている。店員(オペレータ)Sは、登録装置10を操作し、登録装置10に登録処理を実行させる。なお、図示した登録装置10の数は一例である。
精算装置20は、主として、登録処理10によって登録された買上商品を精算する精算処理を行う装置である。図1において、精算装置20は、精算カウンタ21に設置されている。顧客Cは、登録処理の完了後、店員Sによって指定された精算装置20の設置場所に移動し、精算装置20を操作し、精算装置20に精算処理を実行させる。なお、図示した精算装置20の数は一例である。
ストアコントローラ30は、店舗フロアの各装置(登録処理10、精算装置20)や、店舗外部の装置(例えば、本部の装置)などと通信する、コンピュータ(サーバ)である。ストアコントローラ30は、店舗のバックヤード(不図示)に設置される。
図2は、本発明の一実施形態における精算システム1の構成例を表すブロック図である。図2に示すように、各登録装置10(登録装置10−1、10−2、…)と、各精算装置20(精算装置20−1、20−2、…)と、ストアコントローラ30とは、LAN40を介して通信可能に接続されている。なお、登録装置10−1、10−2、…は、同一の構成であるため、特に個々を区別しない場合には、図1と同様、登録装置10と総称する。精算装置20−1、20−2、…は、同一の構成であるため、特に個々を区別しない場合には、図1と同様、精算装置20と総称する。なお、LAN40上には、上記に加えて、登録装置10や精算装置20の処理状況等を監視等する監視装置(不図示)が接続されていてもよい。
まず、ストアコントローラ30について説明する。ストアコントローラ30は、少なくとも、制御部(ストアコントローラ制御部と称する。不図示)と、記憶部(ストアコントローラ記憶部と称する。不図示)と、通信部(ストアコントローラ通信部と称する。不図示)と、を備える。ストアコントローラ制御部は、ストアコントローラ30全体を制御する。
ストアコントローラ記憶部は、種々の情報を記憶する。例えば、ストアコントローラ記憶部は、商品ファイルをマスタファイルとして記憶する。商品ファイルは、商品コード(例えば、JAN)、商品名、販売価格を含むマスタファイルである。また、ストアコントローラ記憶部は、取引情報を記憶する。取引情報は、各取引を特定(識別)するための取引番号(取引特定情報)、各取引の明細情報を含むログファイルである。
ストアコントローラ通信部は、ストアコントローラ制御部の制御によって、種々の情報を送受信する。例えば、ストアコントローラ通信部は、外部(例えば、本部のサーバ)から商品ファイルを受信し、ストアコントローラ記憶部に記憶する。また、ストアコントローラ通信部は、ストアコントローラ記憶部に記憶している商品ファイルを登録装置10や精算装置20に送信(配信)する。また、ストアコントローラ通信部は、登録装置10から取引情報を受信し、ストアコントローラ記憶部に記憶する。
続いて、登録装置10について説明する。図3は、登録装置10の構成例を表すブロック図である。登録装置10は、図3に示すように、CPU101と、ROM102と、RAM103と、スキャナ部104と、店員用表示部105と、客用表示部106と、ハードディスク107と、店員用操作部108と、通信部109と、ブザー110と、印刷部111と、バス112とを備える。これらは、バス112を介して互いに接続されている。
CPU101は、ROM102に記憶されているプログラムをRAM103に展開し、実行することにより、登録装置10全体を制御する。詳細は後述する。
ROM102は、種々の情報を記憶する。例えば、ROM102は、CPU101によって実行されるプログラムや、自装置の装置番号(装置識別情報)などを記憶する。
RAM103は、種々の情報を一時記憶する。例えば、RAM103は、ROM102から読み出されたプログラムや、当該プログラムの実行などによって取得又は生成される情報(例えば、各種の判定結果、取引情報、読取情報)を一時記憶する。なお、RAM103は、商品ファイルを一時記憶してもよい。
スキャナ部104は、商品に付されたバーコードを光学的に読み取って当該商品の商品コードを取得(コード化されていた商品コードを逆変換して取得)する。スキャナ部104は、取得した商品コードをCPU101に通知する。また、スキャナ部104は、店員Sの名札等に付されたバーコードを光学的に読み取って当該店員Sを識別する担当者識別情報(例えば、担当者コード、担当者名)を取得する。スキャナ部104は、取得した担当者識別情報をCPU101に通知する。また、スキャナ部104は、精算装置20によって発行された発行券(媒体)に印刷されている1次元バーコードを光学的に読み取って取引番号を取得(コード化されていた取引情報を逆変換して取得)する。スキャナ部104は、取得した取引番号をCPU101に通知する。なお、精算装置20によって発行された発行券(媒体)に印刷されている1次元バーコードから得られる取引番号によって特定される取引は、精算処理の完了前の取引(未精算取引とも称する)である。なお、詳細は後述する。
店員用表示部105は、店員Sに情報を表示する、例えば、液晶ディスプレイ装置である。店員用表示部105に表示される情報は、例えば、メニュー画面、登録処理の処理情報(例えば、買上商品の商品名、購入数、販売価格、合計金額)、各種のメッセージなどである。
なお、店員用表示部105は、店員Sの操作を受付可能な、例えば、液晶タッチディスプレイ装置であってもよい。例えば、店員用表示部105は、メニュー画面に対する操作、メッセージに対する操作を受け付ける。また、店員用表示部105は、店員用操作部108に代えて店員用操作部108が備える操作ボタン(後述)と同様の機能を有する各種のGUI操作ボタンを表示してもよい。また、店員用表示部105は、所定商品(例えば、生鮮食料品)を登録するためのプリセットボタンを表示してもよい。店員用表示部105において、店員Sの操作があった場合には、操作信号がCPU101に通知される。
客用表示部106は、顧客Cに情報を表示する、例えば、液晶ディスプレイ装置である。客用表示部106に表示される情報は、例えば、登録処理の処理情報、メッセージ、広告などである。
なお、客用表示部106は、店員用表示部105と同様、顧客Cの操作を受付可能な、例えば、液晶タッチディスプレイ装置であってもよい。例えば、客用表示部106は、メッセージ(例えば、公共料金の金額確認)に対する操作を受け付ける。客用表示部106において、顧客Cの操作があった場合には、操作信号がCPU101に通知される。
ハードディスク107は、種々の情報を記憶する。例えば、ハードディスク107は、ストアコントローラ30から送信され、通信部109によって受信された商品ファイルを記憶する。なお、ROM102に代えて、ハードディスク107が、上述のプログラムを記憶してもよい。
店員用操作部108は、各種の操作ボタン(操作キー)を備える。例えば、店員用操作部108は、数字を入力するための数字ボタン(数字キー)、一取引の登録処理を完了させるための現計ボタン(現計キー)、お会計券(媒体)を発行させるための発行ボタン(発行キー)、確認の意思を入力するための確認ボタン(確認キー)、取消の意思を入力するための取消ボタン(取消キー)などを備える。店員用操作部108は、上述のプリセットボタン(プリセットキー)を備えていてもよい。店員用操作部108において、店員Sの操作があった場合には、操作信号がCPU101に通知される。
通信部109は、LAN40を介して外部の装置と通信するための通信インタフェースである。ブザー110は、確認音や警告音などを発生させるための音発生部である。印刷部111は、お会計券として、2次元コード(例えば、QRコード(登録商標))を印刷した媒体を発行する。
CPU101は、スキャナ部104を介して担当者識別情報を取得した場合(名札等に付されたバーコードがスキャナ部104によって読み取られた場合)、RAM103に担当者識別情報を一時記憶する。
また、CPU101は、スキャナ部104を介して商品コードを取得した場合(商品に付されたバーコードがスキャナ部104によって読み取られた場合)、ハードディスク107に記憶されている商品ファイルを参照し、買上商品の商品名や販売価格を特定し、個々の買上商品の商品名や販売価格や購入数をRAM103に一時記憶する。つまり、登録処理を実行する。
また、CPU101は、登録処理の進行状況に応じて、買上商品に関する情報やメッセージなどを店員用表示部105や客用表示部106に表示させる。
CPU101は、登録処理の完了後に、取引情報を生成する。例えば、CPU101は、現計ボタン押下の操作信号が通知されたときに、RAM103に一時記憶されている情報や、ROM102に記憶されている情報などに基づいて取引情報(取引番号及び明細情報)を生成する。なお、取引番号は、例えば、自装置の装置番号と、取引毎に採番される固有の番号(例えば、シリアル番号)とから構成される番号としてもよい。また、明細情報には、例えば、装置番号、担当者識別情報、取引日時、合計金額、商品名(又は商品コード)、小計金額、購入数などが含まれていればよい。CPU101は、取引情報の生成後、生成した取引情報をRAM103に一時記憶する。
また、CPU101は、自装置(当該登録装置10)の接続状態(通信状態とも称する)を判定する。具体的には、他装置との通信の接続状態が、オンライン状態であるか、オフライン状態であるかを判定する。即ち、CPU101は、他装置(例えば、精算装置20、ストアコントローラ30)と通信可能か否かを判定する。例えば、CPU101は、他装置の代表としてストアコントローラ30との接続状態を判定し、自装置(当該登録装置10)の接続状態を判定する。具体的には、CPU101は、通信部109を制御して、所定のデータをストアコントローラ30に送信し、送信後の所定時間内にストアコントローラ30から応答データを受信したか否かによってストアコントローラ30との接続状態を判定してもよい。また、タイミングとしては、例えば、CPU101は、登録処理の完了後や、精算装置20において発行された発行券の読取後に、自装置の接続状態を判定してもよい。
CPU101は、登録処理が完了したときにオンライン状態であるときは(又は、オンライン状態であるときに登録処理が完了したときは)、通信部109を制御して当該登録処理の取引情報をストアコントローラ30に送信する。また、CPU101は、登録処理が完了したときにオンライン状態であるときは(又は、オンライン状態であるときに登録処理が完了したときは)、通信部109を制御して当該登録処理の取引情報に含まれる取引番号を店員Sによって指定された精算装置20に送信する。なお、店員Sは、店員用操作部108などを介して精算装置20を指定する。
一方、CPU101は、登録処理が完了したときにオフライン状態であるときは(又は、オフライン状態であるときに登録処理が完了したときは)、印刷部111を制御して、当該取引(当該登録処理が完了した取引)の精算処理を完了させるための情報を2次元コード化(2次元コードに変換)して印刷したお会計券を発行させる。具体的には、例えば、CPU101は、当該登録処理の取引情報を2次元コード化して印刷したお会計券を発行させる。なお、お会計券は、精算装置20にて処理される(読み取られる)。
CPU101は、取引番号を精算装置20に送信した場合、取引番号の送信先の精算装置20から取引情報を要求される。具体的には、CPU101は、通信部109を介して、取引番号の送信先の精算装置20から自装置(精算装置20)に対する取引情報の送信(応答)を要求する要求情報を取得する。当該要求(要求情報)には、取引番号が含まれる。CPU101は、上記要求があった場合(要求情報を取得した場合)、当該要求に含まれる取引番号によって特定される取引情報をRAM103から取得し、要求元の精算装置20に送信する。
CPU101は、スキャナ部104を介して取引番号を取得した場合(精算装置20によって発行された発行券に印刷されている1次元バーコードがスキャナ部104によって読み取られた場合)、当該取引番号によって特定される取引の精算処理を完了させるための情報を2次元コード化して印刷したお会計券を発行させる。具体的には、例えば、CPU101は、当該取引番号によって特定される取引の取引情報をRAM103から取得し、印刷部111を制御して、当該取引情報を2次元コード化して印刷したお会計券を発行させる。但し、CPU101は、オフライン状態であるときにはお会計券を発行し、オンライン状態であるときにはお会計券を発行しなくてもよい。なお、精算装置20によって発行された発行券(媒体)に印刷されている1次元バーコードから得られる取引番号によって特定される取引は、上述した様に、未精算取引である。
図4は、登録装置10において発行される媒体の一例を表す図である。図4(A)は、2次元コードが印刷されたお会計券の一例である。図4(A)のお会計券には、取引日時(図中は印刷日)と、取引番号と、個数(図中はお買上点数)と、メッセージと、2次元コードとが印刷されている。登録装置10が、図4(A)のお会計券を印刷、発行したときには、店員Sは、発行されたお会計券を顧客Cに手渡し、顧客Cは何れかの精算装置20にてお会計券に印刷されている2次元コードを読み取らせる。なお、図4(B)のお会計券については後述する。
続いて、精算装置20について説明する。図5は、精算装置20の構成例を表すブロック図である。精算装置20は、図5に示すように、CPU201と、ROM202と、RAM203と、スキャナ部204と、表示操作部205と、通信部207と、ブザー208と、印刷部209と、釣銭機210と、バス211とを備える。これらは、バス211を介して互いに接続されている。
CPU201は、ROM202に記憶されているプログラムをRAM203に展開し、実行することにより、精算装置20全体を制御する。詳細は後述する。
ROM202は、種々の情報を記憶する。例えば、ROM202は、CPU201によって実行されるプログラムや、自装置の装置番号(装置識別情報)などを記憶する。
RAM203は、種々の情報を一時記憶する。例えば、RAM203は、ROM202から読み出されたプログラムや、当該プログラムの実行などによって取得又は生成される情報(例えば、取引番号、金銭情報)を一時記憶する。なお、RAM203は、商品ファイルを一時記憶してもよい。
スキャナ部204は、登録装置10によって発行されたお会計券に印刷された2次元コードを光学的に読み取って取引情報を取得(コード化されていた取引情報を逆変換して取得)する。スキャナ部204は、取得した取引情報をCPU201に通知する。
表示操作部205は、顧客Cに情報を表示するとともに顧客Cの操作を受付可能な、例えば、液晶タッチディスプレイ装置である。表示操作部205に表示される情報は、例えば、メニュー画面、各種のGUI操作ボタン、登録処理の処理情報(例えば、買上商品の商品名、購入数、販売価格、合計金額)、金銭情報(預り金情報、釣り銭情報)、各種のメッセージなどである。表示操作部205において、顧客Cの操作があった場合には、操作信号がCPU201に通知される。GUI操作ボタンには、例えば、精算処理を開始させるための開始ボタン、確認の意思を入力するための確認ボタンなどが含まれる。
通信部207は、LAN40を介して外部の装置と通信するための通信インタフェースである。ブザー208は、確認音及び警告音を発生させるための音発生部である。印刷部209は、媒体に印刷し、発行する。なお、印刷部209は、担当者識別情報、取引日時、取引番号、商品名、商品毎の購入数、商品毎の金額、合計金額、預り金額、店舗名などを印刷したレシートを印刷する。また、印刷部209は、1次元バーコードを媒体(発行券)に印刷する機能を有する。
釣銭機210は、貨幣の投入口及び排出口を備える。釣銭機210は、顧客Cによって投入口に投入された貨幣(預り金額とも称する)を計数して、預り金情報としてCPU201に通知する。また、釣銭機210は、CPU201から通知された釣り銭情報に基づいて釣り銭を排出口から排出する。
CPU201は、通信部207を介して、登録装置10から送信された取引番号を取得する。CPU201は、取得した取引番号をRAM203に一時記憶させる。
CPU201は、スキャナ部204を介して取引情報を取得した場合(登録装置10によって発行されたお会計券に印刷されている2次元コードがスキャナ部204によって読み取られた場合)、当該取引情報を用いて精算処理を実行する。
また、CPU201は、自装置(当該精算装置20)の接続状態を判定する。即ち、CPU201は、他装置(例えば、登録装置10、ストアコントローラ30)と通信可能か否かを判定する。例えば、CPU201は、登録装置10のCPU101と同様、他装置の代表としてストアコントローラ30との接続状態を判定し、自装置(当該精算装置20)の接続状態を判定する。また、タイミングとしては、例えば、開始ボタンの押下後に、自装置の接続状態を判定してもよい。
CPU201は、開始ボタンが押下されたときにオンライン状態であるときは(又は、オンライン状態であるときに開始ボタンが押下されたときは)、RAM203に一時記憶されている取引番号(登録装置10から受信した取引番号)によって特定される取引情報を、通信部207を介して、当該取引番号の送信元の登録装置10に要求する。具体的には、CPU201は、取引番号を含む要求情報を送信元の登録装置10に送信する。続いて、CPU201は、要求に応じて登録装置10から送信された取引情報を取得し、取得した取引情報を用いて精算処理を実行する。例えば、CPU201は、合計金額と、釣銭機210から通知された預り金情報によって示される預り金額とに基づいて釣り銭額を算出し、算出した釣り銭額を示す釣り銭情報を釣銭機210に通知し、必要な釣り銭を釣り銭機210に排出させる。つまり、精算処理を実行する。
CPU201は、精算処理の進行状況に応じて、合計金額、釣り銭額、メッセージなどを表示操作部205に表示させる。
CPU201は、精算処理が完了したときは、通信部207を制御して当該精算処の精算情報(例えば、日時、預り金額、釣り銭金額)をストアコントローラ30に送信する。また、CPU201は、印刷部209を制御して、レシート(不図示)を発行させる。
一方、CPU201は、開始ボタンが押下されたときにオフライン状態であるときは(又は、オフライン状態であるときに開始ボタンが押下されたときは)、印刷部209を制御して、RAM203に一時記憶されている取引番号を1次元バーコード化(1次元バーコードに変換)して印刷した発行券を発行させる。つまり、精算装置20は、未精算取引があるときには、当該未精算取引の取引番号を1次元バーコード化して印刷した発行券を発行する。換言すれば、発行券(媒体)に印刷されている1次元バーコードから得られる取引番号によって特定される取引は、未精算取引である。なお、発行券は、登録装置10にて処理される(読み取られる)。
図6は、精算装置20において表示されるメッセージ、及び、発行される媒体の一例を表す図である。図6(A)は、精算装置20が取引情報を要求したが、オフライン状態であるために、取引情報を受信できなかった場合に、表示操作部205に表示されるメッセージである。具体的には、図6(A)のメッセージは、取引情報(図中は登録データ)の受信(呼び出し)ができなかった旨、未だ精算が完了していない旨、及び、確認ボタンの押下(タッチ)後に対応手順(精算処理を続行させるための手順)を記載した券(発行券)が発行される旨を顧客C(あるいは、顧客C及び近くに来た店員S)に知らせている。
図6(B)は、図6(A)のメッセージの表示に対して確認ボタンが押下された場合に印刷部209から発行される発行券の一例である。図6(B)の発行券には、対応手順を案内する案内情報が印刷されている。具体的には、手順1として、登録レジ(当該取引の登録処理を行った登録装置10)において発行ボタンを押下すべき旨、及び、押下後に発行券に印刷されている1次元バーコードを読み取るべき旨を案内(指示)している。また、手順2として、1次元バーコードの読み取り後に登録レジにて発行されるお会計券を使って精算装置20にて精算を行うべき旨を案内している。
図7は、登録装置10の動作の流れを表すフローチャートである。図7のフローチャートは、登録装置10の起動中において常に開始される。各ステップは、CPU101によって制御される。
ステップS1:お会計券を発行させるための発行ボタンが押下されたか否かを判定する。CPU101は、発行ボタン押下の操作信号が通知された場合には押下されたと判定し、発行ボタン押下の操作信号が通知されなかった場合には押下されていないと判定する。押下されたと判定したときは(ステップS1;Yes)、ステップS10に進む。押下されていないと判定したときは(ステップS1;No)、ステップS2に進む。
ステップS2:精算装置20から取引情報を要求されたか否かを判定する。具体的には、CPU101は、取引番号を含む要求情報を精算装置20から受信したか否かを判定する。要求されていると判定したときは(ステップS2;Yes)、ステップS9に進む。要求されていないと判定したときは(ステップS2;No)、ステップS3に進む。
ステップS3:登録処理を実行する。即ち、CPU101は、スキャナ部104による読み取りやプリセットボタンの押下によって顧客Cの買上商品を登録する。そして現計ボタンが押下された後にステップS4に進む。但し、顧客Cがいないときなど登録処理を要しない場合には、当該登録処理を実行せずに、図7のフローチャートは終了する。
ステップS4:当該取引の取引情報を記憶する。即ち、CPU101は、登録処理の完了後に取引情報を生成し、生成した取引情報をRAM103に一時記憶する。
ステップS5:オンライン状態であるか否かを判定する。例えば、CPU101は、ストアコントローラ30との接続状態を判定し、ストアコントローラ30と通信可能である場合にはオンライン状態であると判定し、ストアコントローラ30と通信不能である場合にはオンライン状態でない(オフライン状態)と判定する。オンライン状態であると判定したときは(ステップS5;Yes)、ステップS6に進む。オンライン状態でないと判定したときは(ステップS5;No)、ステップS8に進む。
ステップS6:ストアコントローラ30に当該取引の取引情報を送信する。
ステップS7:当該取引の取引情報に含まれる取引番号を店員Sによって指定された精算装置20に送信する。そして、図7のフローチャートは終了する。なお、店員Sは、ステップS3の実行後(登録処理の完了後)、ステップS6の実行前(取引番号の送信前)の何れかのタイミングにおいて、店員用操作部108などを介して当該取引の精算処理を実行させる精算装置20を指定すればよい。
ステップS8:当該登録処理が完了した取引(未精算取引)の精算処理を完了させるための情報を2次元コード化して印刷したお会計券を発行する。具体的には、当該取引の取引情報を2次元コード化して印刷したお会計券を発行する。そして、図7のフローチャートは終了する。
ステップS9:要求された取引情報をRAM103から取得し、要求元の精算装置20に返信する。そして、図7のフローチャートは終了する。
ステップS10:発行券の1次元バーコードが読み取られたか否かを判定する。即ち、CPU101は、精算装置20が発行した発行券(図6(B)参照)に印刷されている1次元バーコードがスキャナ部104によって読み取られたか否かを判定する。読み取られたと判定したときは(ステップS10;Yes)、ステップS12に進む。読み取られていないと判定したときは(ステップS10;No)、ステップS11に進む。
ステップS11:取消の意思を入力するための取消ボタンが押下されたか否かを判定する。CPU101は、取消ボタン押下の操作信号が通知された場合には押下されたと判定し、取消ボタン押下の操作信号が通知されなかった場合には押下されていないと判定する。押下されたと判定したときは(ステップS11;Yes)、ステップS2に進んでステップS2以降の処理を実行する。押下されていないと判定したときは(ステップS11;No)、ステップS10に戻ってステップS10の処理を実行する。
ステップS12:オンライン状態であるか否かを判定する。例えば、CPU101は、ステップS5と同様の方法によって判定する。オンライン状態であると判定したときは(ステップS12;Yes)、ステップS14に進む。オンライン状態でないと判定したときは(ステップS12;No)、ステップS13に進む。
ステップS13:発行券の取引番号によって特定される取引(未精算取引)の精算処理を完了させるための情報を2次元コード化して印刷したお会計券を発行する。具体的には、発行券の取引番号に対応する取引情報を2次元コード化して印字したお会計券を発行する。つまり、LAN40経由で取引情報を送受信できないので、取引情報を2次元コード化して印字したお会計券を発行する。そして、図7のフローチャートは終了する。なお、新たに発行されたお会計券(取引情報を2次元コード化して印字したお会計券)は、何れの精算装置20において処理してもよい(読み取ってもよい)。
なお、当該ステップS13の処理は、精算装置20の判定時点(図8のステップS23)においても、その後の登録装置10の判定時点(ステップS12)においてもオフライン状態と判定された場合に実行される。換言すれば、当該ステップS13の処理は、精算装置20における開始ボタンの押下時点(図8のステップS22)から、登録装置10における発行券の読取時点(ステップS10)までの間にオフライン状態からオンライン状態に復旧しなかった場合に実行される。
ステップS14:メッセージを表示する。つまり、LAN40経由で取引情報を送受信できるので、取引情報を2次元コード化して印字したお会計券は不要となる。従って、CPU101は、発行券の読取は行われたが、取引情報を2次元コード化して印字したお会計券を発行しない旨、手持ちのお会計券(取引番号を1次元バーコード化して印字したお会計券)をもう一度処理すべき旨などのメッセージを客用表示部106や店員用操作部108に表示する。そして、図7のフローチャートは終了する。なお、手持ちのお会計券は、何れの精算装置20において処理してもよい(読み取ってもよい)。
なお、当該ステップS14の処理は、精算装置20の判定時点ではオフライン状態と判定されたが、その後の登録装置10の判定時点ではオンライン状態と判定された場合に実行される。換言すれば、当該ステップS14の処理は、精算装置20における開始ボタンの押下時点から、登録装置10における発行券の読取時点までの間にオフライン状態からオンライン状態に復旧した場合に実行される。
図8は、精算装置20の動作の流れを表すフローチャートである。図8のフローチャートは精算装置20の起動中において常に開始される。各ステップは、CPU201によって制御される。
ステップS21:お会計券の2次元コードが読み取られたか否かを判定する。即ち、CPU201は、登録装置10が発行したお会計券(図4(A)参照)に印刷されている2次元コードがスキャナ部204によって読み取られたか否かを判定する。読み取られたと判定したときは(ステップS21;Yes)、ステップS26に進む。読み取られていないと判定したときは(ステップS21;No)、ステップS22に進む。
ステップS22:精算処理を開始させるための開始ボタンが押下されたか否かを判定する。CPU201は、開始ボタン押下の操作信号が通知された場合には押下されたと判定し、開始ボタン押下の操作信号が通知されなかった場合には押下されていないと判定する。押下されたと判定したときは(ステップS22;Yes)、ステップS23に進む。押下されていないと判定したときは(ステップS22;No)、図8のフローチャートは終了する。
ステップS23:オンライン状態であるか否かを判定する。例えば、CPU201は、ストアコントローラ30との接続状態を判定し、ストアコントローラ30と通信可能である場合にはオンライン状態であると判定し、ストアコントローラ30と通信不能である場合にはオンライン状態でない(オフライン状態)と判定する。オンライン状態であると判定したときは(ステップS23;Yes)、ステップS24に進む。オンライン状態でないと判定したときは(ステップS23;No)、ステップS29に進む。
ステップS24:登録装置10に取引情報を要求する。具体的には、CPU201は、当該精算処理の対象である取引番号(既に登録装置10から送信され、RAM203に一時記憶させている取引番号)を含む要求情報を当該取引番号の送信元の登録装置10に送信する。なお、当該ステップS24の処理に応じて、要求先の登録装置10から当該精算装置20に取引情報が送信される(図7のステップS2(Yes)、ステップS9)。
ステップS25:登録装置10から取引情報を受信する。即ち、ステップS24の要求の応答として、要求先の登録装置10から取引情報を受信する。
ステップS26:精算処理を実行する。具体的には、ステップS21(No)に続いて当該ステップS26の処理を実行する場合には、CPU201は、スキャナ部204を介して取得した取引情報を用いて精算処理を実行する。また、ステップS25に続いて当該ステップS26の処理を実行する場合には、CPU201は、登録装置10から受信した取引情報を用いて精算処理を実行する。
ステップS27:ストアコントローラ30に精算情報を送信する。
ステップS28:レシートを発行する。そして、図8のフローチャートは終了する。
ステップS29:当該精算処理の対象である取引番号(既に登録装置10から送信され、RAM203に一時記憶させている取引番号)を1次元バーコード化して印刷した発行券を発行する。つまり、未精算取引が存在するもののオフライン状態となっているため、当該未精算取引の取引番号を1次元バーコード化して印刷した発行券を発行する。発行券を発行を発行すれば、登録装置10において発行券に基づいてお会計券が発行されるため(図7のステップS13の処理)、LAN40経由で未精算取引の取引情報を送受信できなくても、登録装置10において発行されたお会計券から未精算取引の取引情報を取得し(ステップS21;yes)、精算処理(ステップS26)を実行することができる。換言すれば、お会計券を登録装置10において発行させるために(図7のステップS13の処理を実行させるために)、発行券を発行する。
ステップS30:メッセージを表示する。例えば、ステップS29において発行された発行券に記載の手順(図6(B)参照)に従って対応するべき旨などを表示する。そして、図8のフローチャートは終了する。
以上、本発明の一実施形態における精算システム1によれば、オフライン状態になったときであっても滞りなく精算処理を実行することができる。例えば、登録処理の完了後にはオンライン状態であったが(ステップS5;Yes)、精算処理を開始するときにオフライン状態になった場合(ステップS23;No)には、精算装置20において取引番号を1次元コード化して印字した発行券が発行される(ステップS29)。その後、登録装置10において、当該発行券が読み取られ(ステップS10;Yes)、当該発行券の読取時に未だオフライン状態であれば(ステップS12;No)、取引情報を2次元コード化して印字したお会計券が発行される(ステップS13)。その後、精算装置20において当該お会計券が読み取られ(ステップS21;Yes)、精算処理が実行される(ステップS26)。また、発行券の読取時に既にオンライン状態に復旧している場合には(ステップS12;Yes)、精算装置20において、改めて、取引情報を要求し(ステップS24)、精算処理が実行される(ステップS26)。
なお、上記実施形態では、登録装置10が自装置(当該登録装置10)の接続状態を判定するタイミングとして、登録処理の完了後と発行券の読取後とを例示したが、上記に代えて、又は、加えて、発行ボタンの押下時や、適宜(例えば、数秒間隔)、自装置の接続状態を判定してもよい。また、上記実施形態では、精算装置20が自装置(当該精算装置20)の接続状態を判定するタイミングとして、開始ボタンの押下後を例示したが、上記に代えて、又は、加えて、適宜(例えば、数秒間隔)、自装置の接続状態を判定してもよい。
また、登録装置10は、当該登録装置10において発行券が読み取られるときは、発行ボタンを通常とは異なる表示態様にて表示してもよい。発行券が読み取られるときは、例えば、当該登録装置10において登録処理された取引の取引番号を含む発行券が精算装置20において発行されたときや(発行後、発行ボタンの押下迄の間)、自装置(当該登録装置10)がオフライン状態であるとき(オフライン状態と判定されてから次にオンライン状態と判定される迄の間)である。具体的には、発行券が発行されたとき(又は、オフライン状態であるとき)には、発行券が発行されていないとき(又は、オンライン状態であるとき)に比べて、発行ボタンを大きく表示してもよいし、発行ボタンをより目立つ位置に表示してもよいし、目立つ色で発行ボタンを表示してもよい(例えば、背景や他のボタンが灰色系である場合には黄色や赤色。背景や他のボタンが黄色系である場合に青色など他のボタンや背景との関係から目立つ色であってもよい)。また、発行券が発行されたとき(又は、オフライン状態であるとき)に限って、発行ボタンを点滅表示させてもよいし、発行ボタンを含む小画面を手前側に表示(ポップアップ表示)させてもよい。これにより、発行ボタンの押下操作が容易になる。
また、登録装置10は、図7のフローチャートに示すように、発行ボタンの押下後に(ステップS1;Yes)、精算装置20から発行された発行券の1次元バーコードを読み取るが(ステップS10)、何も操作することなく発行券の1次元バーコードを読み取ってもよい。
なお、上記実施形態では、登録装置10において発行券の読取後にオンライン状態に復旧していると判定したときは(ステップS12;Yes)、精算装置20において、手持ちのお会計券(取引番号を1次元バーコード化して印字したお会計券)を再度読ませると説明したが、手持ちのお会計券に代えて、又は、加えて、手持ちの発行券(ステップS10において読み取られたと判定された発行券)を再度読ませてもよい。即ち、精算装置20は、お会計券に加えて発行券の読取機能を備え、登録装置10において発行券の読取後にオンライン状態に復旧していると判定したときは(ステップS12;Yes)、自装置(当該精算装置20)、又は、他の精算装置20によって取引番号を1次元バーコード化して印字、発行された発行券を読み取って、当該取引情報に基づいて登録装置10から精算情報を取得して、精算処理を実行してもよい。
また、上記実施形態では、上記判定をしたときは(ステップS12;Yes)、LAN40経由の送受信ができるので、発行券によって特定される取引情報を精算装置20に送信してもよい。即ち、オンライン状態に復旧していると判定したときは(ステップS12;Yes)、店員用操作部108などを介して店員Sにより精算装置20の指定入力を受け付けた後に、指定された精算装置20に、発行券によって特定される取引情報を送信してもよい。なお、登録装置10は、先ず、発行券の取引番号を精算装置20に送信し、その後、送信先の精算装置20が登録装置10に取引情報を要求してもよい。
また、上記実施形態では、登録装置10は、図7のフローチャートに示すように、精算装置20から取引情報が要求された場合には(ステップS2;Yes)、要求された取引情報を要求元の精算装置20に返信するが(ステップS9)、精算装置20から取引情報が要求された場合に、オンライン状態であるか否かを判定し、オフライン状態であるときは、オフライン状態である旨のメッセージを表示してもよい。なお、登録装置10は、精算装置20から取引情報が要求された場合にオフライン状態であると判定したときは、メッセージの表示に代えて、又は、加えて、要求された取引情報(要求情報に含まれる取引番号によって特定される取引情報)を2次元コード化して印字したお会計券を発行してもよい。
また、上記実施形態では、登録装置10は、ストアコントローラ30との接続状態を判定し、自装置(当該登録装置10)の接続状態を判定する例を説明したが、店員Sによって指定された精算装置20との接続状態を判定し、自装置の接続状態を判定してもよい。具体的には、例えば、登録装置10は、店員Sによって指定された精算装置20に対する、取引番号の送信の成否を以って自装置の接続状態を判定してもよい。つまり、登録装置10は、自装置の接続状態がオンライン状態であると判定した後に取引番号を送信するのではなく、自装置の接続状態を判定する前に取引番号の送信を試みて、その送信の成否からオンライン状態であるかオフライン状態であるかを判定してもよい。
また、上記実施形態では、精算装置20は、ストアコントローラ30との接続状態を判定し、自装置(当該精算装置20)の接続状態を判定する例を説明したが、取引番号の送信元である登録装置10との接続状態を判定し、自装置(当該精算装置20)の接続状態を判定してもよい。例えば、精算装置20は、取引番号の送信元である登録装置10に対する、要求情報の送信の成否を以って自装置の接続状態を判定してもよい。つまり、精算装置20は、自装置の接続状態がオンライン状態であると判定した後に要求情報を送信するのではなく、自装置の接続状態を判定する前に要求情報の送信を試みて、その送信の成否からオンライン状態であるかオフライン状態であるかを判定してもよい。
また、上記実施形態では、登録装置10は、登録処理が完了したときにオンライン状態であるときは(又は、オンライン状態であるときに登録処理が完了したときは)、当該登録処理の取引情報に含まれる取引番号を店員Sによって指定された精算装置20に送信するが、印刷部111を制御して、例えば、図4(B)に示すような、当該登録処理の取引情報に含まれる取引番号を1次元バーコード化して印刷したお会計券を発行させてもよい。
取引番号を送受信する態様ではなく取引番号を1次元バーコード化したお会計券を発行する態様においては、精算装置20(スキャナ部204)は、当該お会計券に印刷されている1次元バーコードを光学的に読み取って取引番号を取得(コード化されていた取引番号を逆変換して取得)する。また、精算装置20(CPU201)は、1次元バーコードが印刷されているお会計券から取引番号を取得した場合には、当該取引番号によって特定される取引情報を、当該お会計券の発行元の登録装置10に要求し、要求に応じて登録装置10から送信された取引情報を取得し、取得した取引情報を用いて精算処理を実行する。
なお、取引番号を送受信する態様のみならず、取引番号を1次元バーコード化したお会計券を発行する態様においても、従来は、オフライン状態になったときに精算処理が滞る可能性があった。例えば、精算装置20がオフライン状態であると分かった時点で、顧客Cは、読み取り済みのお会計券を既に使用済お会計券入れ(ゴミ箱)に投入している場合がある。お会計券を読み取ったら直ちに使用済お会計券入れに投入する顧客Cの場合、このような状況になる可能性が高い。そうすると、オフライン状態であると分かっても、取引番号を特定するために必要となるお会計券が手元にないため(又は、他のお会計券と混ざってしまって簡便に区別ができないため)、取引番号の特定に時間を要し、精算処理が滞る可能性があった。特に、手慣れた常連客の場合、反射的に上述のような行動を取る傾向があるため、本来(オンライン状態)であれば、非常に短時間で行われた筈の精算処理が進まなくなるという問題があった。これに対し、上述の方法の場合、登録装置10において、取引番号を1次元バーコード化したお会計券が発行されるときであっても、改めて、精算装置20において取引番号を1次元バーコード化した発行券が発行されるため、お会計券が手元になくても、他のお会計券に混ざってしまっていても、発行券に基づいて取引番号を直ちに特定することができる。従って、精算処理が進まなくなるという問題が生じなくなる。
また、上記実施形態では、精算装置20は、精算処理の開始時にオンライン状態でないときは(ステップS23;No)、取引番号を1次元コード化して印字した発行券を発行したが(ステップS29)、精算装置20は、取引番号を1次元コード化して印字した発行券に代えて、取引番号をそのまま印字した発行券を発行してもよい。また、精算装置20は、取引番号を1次元コード化して印字した発行券に代えて、又は、加えて、表示操作部205に取引番号を表示してもよい。なお、取引番号をそのまま印字した発行券を発行する態様や取引番号を表示する態様においては、店員Cは、発行券に印刷されている取引番号や表示操作部205に表示されている取引番号を、店員用操作部108を介して、登録装置10に当該取引番号を入力すればよい。
また、上記実施形態では、精算装置20は、取引情報の送信を要求する要求情報を登録装置10に送信したが、明細情報の送信を要求する要求情報を登録装置10に送信してもよい。つまり、精算装置20から要求情報を受信した登録装置10は、当該要求情報に含まれる取引番号によって特定される取引情報内の明細情報のみを送信してもよい。
また、上記実施形態では、未精算取引の精算処理を完了させるための情報として取引情報(即ち、取引番号と明細情報とを含む情報)を用いる例を説明したが、未精算取引の精算処理を完了させるための情報は、参照することによって精算処理が実行可能な情報であれば、取引情報に限定されない。換言すれば、登録装置10は、取引情報以外の情報を2次元コード化して印刷したお会計券を発行してもよい。例えば、登録装置10は、合計金額を2次元コード化して印刷したお会計券を発行してもよいし、商品コード及び購入数を2次元コード化して印刷したお会計券を発行してもよい。
なお、登録処理において、金券(品券)、クーポン券などが用いられ、あるいは、用いられずに、値引きなどが行われた取引(未精算取引)についてお会計券を発行するときには、精算処理を完了させるための情報には、値引きなどに関する情報も含まれる。
また、上記実施形態では、精算装置20は、登録装置10に要求情報を送信したが、精算装置20はストアコントローラ30に要求情報を送信してもよい。また、ストアコントローラ30は、精算装置20から要求情報を取得した場合には、当該要求情報に含まれる取引番号によって特定される取引情報(又は明細情報)を精算装置20に送信する。なお、取引情報(又は明細情報)の送信時に、ストアコントローラ30がオフライン状態である場合には、取引情報(又は明細情報)は精算装置20に送信されないが(即ち、精算装置20は取引情報(又は明細情報)を受信しないが)、当該場合には、精算装置20は、登録装置10において処理される発行券を発行すればよい。
また、登録装置10は、自装置(当該登録装置10)の接続状態の判定結果を履歴情報として記憶してもよい。精算装置20についても同様である。なお、代表する装置(例えば、代表の登録装置10)が、他の装置(他の登録装置10、各精算装置20)から夫々の接続状態の判定結果を受信し、履歴情報として記憶してもよい。なお、代表する装置は、代表する精算装置20であってもよいし、ストアコントローラ30であってもよいし、監視装置(不図示)を備える場合には監視装置であってもよい。
また、上記実施形態では、夫々の登録装置10や夫々の精算装置20が接続状態を判定しているが、代表する装置(例えば、代表の精算装置20)のみが接続状態を判定し、他の装置(他の精算装置20、各登録装置10)に接続状態の判定結果を送信し、他の装置(他の精算装置20、各登録装置10)の夫々は、自装置の接続状態の判定結果として受信してもよい。なお、接続状態を判定する代表する装置は、ストアコントローラ30であってもよいし、監視装置(不図示)を備える場合には監視装置であってもよい。
なお、上述までは、停電やネットワーク障害などによってLAN40上の装置全体が一斉にオンライン状態からオフライン状態になる場合、及び、個々の装置における通信基板の不良や接続不良などによって個々の装置がオンライン状態からオフライン状態になる場合の両方の場合を想定しているが、特に、個々の装置がオンライン状態からオフライン状態になる場合を想定し、以下のように動作させてもよい。なお、以下、登録装置10−1において登録処理を実行し、精算処理を実行する精算装置20として精算装置20−1が指定されたものとする。
精算装置20−1のみオフライン状態で、発行券の発行後にもオンライン状態に復旧しない場合、精算装置20−1は、登録装置10−1から取引情報を取得できないので、取引番号を1次元コード化して印字した発行券を発行する。当該発行券は、登録装置10−1において読み取ってもよいし、他の精算装置20(例えば、精算装置20−2)において読み取ってもよい。登録装置10−1において発行券を読み取らせた場合には、登録装置10−1は、他の精算装置20とLAN40経由の送受信ができるので、発行券によって特定される取引情報(又は、取引番号)を他の精算装置20に送信してもよい。なお、各精算装置20の接続状態の判定結果を登録装置10−1に一覧表示し、店員Sに指定させてもよい。一方、他の精算装置20(例えば、精算装置20−2)において発行券を読み取らせる場合には、他の精算装置20(例えば、精算装置20−2)は、登録装置10−1から取引情報を取得する。即ち、精算装置20(例えば、精算装置20−2)は、お会計券に加えて発行券の読取機能を備え、他の精算装置20(例えば、精算装置20−1)によって取引番号を1次元バーコード化して印字、発行された発行券を読み取って、当該取引情報に基づいて登録装置10−1から精算情報を取得して、精算処理を実行してもよい。
なお、精算装置20−1のみオフライン状態で、発行券の発行後にオンライン状態に復旧した場合には、当該発行券は、登録装置10−1において読み取ってもよいし、何れの精算装置20(例えば、精算装置20−1、20−2)において読み取ってもよい。即ち、精算装置20(例えば、精算装置20−1、20−2)は、お会計券に加えて発行券の読取機能を備え、当該精算装置20、又は、他の精算装置20によって取引番号を1次元バーコード化して印字、発行された発行券を読み取って、当該取引情報に基づいて登録装置10−1から精算情報を取得して、精算処理を実行してもよい。
1台の登録装置10−1が取引番号の送信後にオフライン状態になりオンライン状態に復旧しない場合、精算装置20−1は、登録装置10−1から取引情報を取得できないので、取引番号を1次元コード化して印字した発行券を発行する。当該発行券は、上記の場合と同様、登録装置10−1において読み取ってもよいし、何れの精算装置20(例えば、精算装置20−1、20−2)において読み取ってもよい。登録装置10−1において発行券を読み取らせた場合には、図7のステップS12以降と同様の動作となる。一方、何れかの精算装置20において発行券を読み取らせる場合には、図8のステップS29以降と同様の動作となる。なお、1台の登録装置10−1がオンライン状態に復旧した場合も同様である。
また、登録装置10−1を含む2台以上の登録装置10がオフライン状態になった場合や、精算装置20−1を含む2台以上の登録装置10がオフライン状態になった場合についても同様である。
なお、取引情報(明細情報)の要求や、発行券の読取は、該当する取引の登録処理を実行した登録装置10に対して行われると説明したが、各登録装置10が、他の登録装置10において登録処理された取引情報(明細情報)を参照できる場合には、何れかの登録装置10に取引情報(明細情報)を要求し、又は、何れかの登録装置10において発行券を読み取らせてもよい。なお、各登録装置10は、例えば、ストアコントローラ30を介して、他の登録装置10において登録処理された取引情報(明細情報)を参照してもよい。
なお、本実施形態の精算システム1(又は、登録装置10、精算装置20、ストアコントロ−ラ30)の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、精算システム1(又は、登録装置10、精算装置20)の各処理に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。以下、付記を開示する。
(付記1)付記1に係る精算システムは、客の買上商品を登録する登録処理を行う登録装置と、前記登録装置と通信可能に接続され、登録処理によって登録された前記買上商品を精算する精算処理を行う精算装置と、を有する精算システムにおいて、前記精算装置と他装置との通信の接続状態を判定する通信判定手段と、前記通信判定手段によって前記接続状態がオフライン状態であると判定され、かつ、精算処理の完了前の未精算取引がある場合に、前記未精算取引を特定するための取引特定情報を出力する出力手段とを備える。
付記1の精算システムによれば、精算処理の完了前にオフライン状態であると判定された場合には、取引特定情報(取引番号)が出力される。従って、時間を要することなく取引を特定し、精算装置における精算処理を滞りなく進行させることができる。例えば、登録処理の完了から精算処理の開始までの間にオンライン状態からオフライン状態に変化し、精算装置においてネットワーク経由の取引情報の受信が失敗した場合であっても、精算装置から出力される取引特定情報によって当該取引情報の取引番号を簡便に確認することができ、当該取引情報を受信以外の方法で精算装置に取得させて、滞りなく、精算処理を実行することができる。
(付記2)上記精算システムにおいて、前記精算装置は、前記出力手段を備え、当該出力手段は、前記取引特定情報を前記登録装置で読取可能なコードにコード化して媒体に出力するようにしてもよい。
付記2の精算システムによれば、登録装置で読取可能なコードにコード化された取引特定情報が媒体に出力される。従って、登録装置においてコードを読み取ることで、簡便、かつ迅速に、取引を特定し、精算装置における精算処理を進行させることができる。
(付記3)上記精算システムにおいて、前記出力手段は、精算処理を続行させるための手順を案内する案内情報を出力するようにしてもよい。
付記3の精算システムによれば、精算処理を続行させるための手順を案内する案内情報が出力される。従って、手順が分からないことによる精算処理の進行の遅れを防止することができる。
(付記4)上記精算システムにおいて、前記登録装置は、前記媒体に出力された前記取引特定情報を読み取ると、登録処理において生成された情報であって、前記取引特定情報によって特定される前記未精算取引の精算処理を完了させるための情報を、前記精算装置で読取可能なコードにコード化して媒体に出力するようにしてもよい。
付記4の精算システムによれば、取引特定情報を読み取った登録装置において、当該取引特定情報によって特定される前記未精算取引の精算処理を完了させるための情報が精算装置で読取可能なコードにコード化されて媒体に出力される。従って、精算装置においてコードを読み取ることで、簡便、且つ、迅速に、精算処理を進行させることができる。