(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、電子レシートシステムに係るデータ処理をPOSアプリケーションに代わって請け負うことができる電子レシートエージェントの実施形態について、図面を用いて説明する。始めに、電子レシートシステムについて説明する。
【0010】
図1は、電子レシートシステム10を説明するための模式図である。電子レシートシステム10は、各加盟店Sにそれぞれ設けられるPOS端末20と、電子レシートセンタCに設けられるセンタサーバ30と、ネットワーク40と、を含む。加盟店Sは、電子レシートシステム10を利用するために加盟店登録をした店舗である。電子レシートセンタCは、電子レシートシステム10を運営する運営体によって管理されるコンピュータセンタである。ネットワーク40は、例えばインターネットである。各加盟店SのPOS端末20と電子レシートセンタCのサーバ30とは、それぞれルータ等の通信機器を介してネットワーク40に接続されている。
【0011】
消費者(買物客)が電子レシートシステム10を利用するためには、情報端末50が必要である。情報端末50は、無線LAN(Local Area Network)又はモバイル通信の技術を利用して無線通信が可能な携帯型の電子機器である。ネットワーク40には、無線LAN又はモバイル通信に対応したアクセスポイント60が多数接続されている。情報端末50は、いずれかのアクセスポイント60を介してセンタサーバ30と無線通信を可能とする。このような情報端末50としては、例えばスマートフォン、タブレット端末、携帯電話等が適用される。
【0012】
電子レシートシステムを利用する消費者は、情報端末50に専用のアプリケーションプログラムをインストールし、電子レシート会員の登録を行う。会員登録を行うことにより、その消費者固有の会員IDが発行される。会員IDが発行された後は、アプリケーションプログラムを起動することで、当該会員IDを表すバーコードが情報端末50の表示デバイスに表示される。そこで消費者は、加盟店Sで買物を行い買上商品の会計を会計担当の店員に申し出る際に、表示デバイスに表示された会員IDのバーコードを提示する。店員は、POS端末20に備えられたバーコード読取用のスキャナ208を用いて会員IDのバーコードを読み取る。
【0013】
POS端末20は、スキャナ208で会員IDのバーコードが読み取られた場合、レシートを紙レシートではなく電子レシートとして発行する商取引であると認識する。そしてPOS端末20は、その商取引の明細を示すレシートを電子化した電子レシートデータを、バーコードから取得した会員IDとともにセンタサーバ30へと送信する。
【0014】
センタサーバ30は、各POS端末20から受信した電子レシートデータを、会員IDと関連付けて記憶する。その後、情報端末50から会員IDを含む電子レシートデータの要求コマンドを受信すると、センタサーバ30は、その会員IDで関連付けられた電子レシートデータを要求元の情報端末50へと無線送信する。電子レシートデータを受信した情報端末50では、その電子レシートデータに基づき表示デバイスにレシート画像が表示される。かくして消費者は、加盟店での会計時には受け取らなかったレシートを確認することができる。
【0015】
さて、本実施形態の電子レシートエージェントは、POS端末20に対して適用される。そこで次に、POS端末20について説明する。始めに、POS端末20のハードウェア構成について、
図2を用いて説明する。
【0016】
図2は、POS端末20のハードウェア構成を示すブロック図である。POS端末20は、プロセッサ201、メインメモリ202、補助記憶デバイス203、時計204、通信インターフェース205、キーボード206、ディスプレイ207、スキャナ208、プリンタ209、自動釣銭機210及びシステムバス211を備える。そしてPOS端末20は、システムバス211に、プロセッサ201、メインメモリ202、補助記憶デバイス203、時計204、通信インターフェース205、キーボード206、ディスプレイ207、スキャナ208、プリンタ209及び自動釣銭機210を直接または信号入出力回路を介して接続する。かくしてPOS端末20は、プロセッサ201、メインメモリ202及び補助記憶デバイス203と、これらを接続するシステムバス211とによってコンピュータを構成する。
【0017】
プロセッサ201は、上記コンピュータの中枢部分に相当する。プロセッサ201は、オペレーティングシステムやアプリケーションプログラムに従って、POS端末20としての各種の機能を実現するべく各部を制御する。
【0018】
メインメモリ202は、上記コンピュータの主記憶部分に相当する。メインメモリ202は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。メインメモリ202は、不揮発性のメモリ領域ではオペレーティングシステムやアプリケーションプログラムを記憶する。またメインメモリ202は、プロセッサ201が各部を制御するための処理を実行する上で必要なデータを不揮発性または揮発性のメモリ領域で記憶する場合もある。メインメモリ202は、揮発性のメモリ領域を、プロセッサ201によってデータが適宜書き換えられるワークエリアとして使用する。
【0019】
補助記憶デバイス203は、上記コンピュータの補助記憶部分に相当する。例えばEEPROM(Electric Erasable Programmable Read-Only Memory)、HDD(Hard Disc Drive)、あるいはSSD(Solid State Drive)等が補助記憶デバイス203として使用される。補助記憶デバイス203は、プロセッサ201が各種の処理を行う上で使用するデータや、プロセッサ201での処理によって生成されたデータを保存する。補助記憶デバイス203は、上記のアプリケーションプログラムを記憶する場合もある。
【0020】
時計204は、POS端末20の時刻情報源として機能する。プロセッサ201は、時計204によって計時される時刻情報を基に、現在の日付及び時刻を計時する。
【0021】
通信インターフェース205は、LAN(Local Area Network)を介して店舗S内のストアサーバ等とデータ通信を行う。また通信インターフェース205は、LANに接続されたルータを介してネットワーク40に接続しており、所定の通信プロトコルに従い、ネットワーク40を介してセンタサーバ30とデータ通信を行う。
【0022】
キーボード206は、テンキー、小計キー、締めキー等のように、POS端末20として必要な種々のキーが配設され、操作者による各種指示の入力を受け付ける。キーボード206は、POS端末20の入力デバイスとして機能する。なお、キーボード206に代えて、あるいはキーボード206と組み合わせてタッチパネルを、この種の入力デバイスとして適用することも可能である。操作者は、典型的には、会計担当の店員である。しかし、消費者である買物客が自ら操作者となることも妨げるものではない。
【0023】
ディスプレイ207は、操作者に対して各種の情報を通知するための各種画面を表示する。ディスプレイ207は、POS端末20の表示デバイスとして機能する。ディスプレイ207は1つに限定されるものではない。例えば店員用と買物客用の2つのディスプレイ207をPOS端末20が備えていてもよい。
【0024】
スキャナ208は、バーコードを光学的にスキャンして読み取る。スキャナ208は、POS端末20の入力デバイスとして機能する。各商品には、その商品固有の商品コードを表わしたバーコードが付されている。スキャナ208は、各商品に付されたバーコードを読み取ることができる。また、前述したように、情報端末50の表示デバイスに会員IDを示す会員IDのバーコードが表示されている場合、スキャナ208は、このバーコードを読み取ることができる。なお、スキャナ208は、バーコード以外のコードシンボル、例えば二次元データコードを読み取るものであってもよい。
【0025】
プリンタ209は、レシート用紙に対してレシート画像をプリントし、紙レシートを発行する。プリンタ209は、レシート用紙以外の用紙、例えばジャーナル用紙にデータを印字してもよい。プリンタ209は、POS端末20の印刷デバイスとして機能する。
【0026】
自動釣銭機210は、紙幣及び硬貨の投入口を有し、投入された紙幣又は硬貨の金額を算出する。そして自動釣銭機は、この投入金額から取引金額を減じた差額を釣銭額として釣銭額相当の紙幣又は硬貨を払出口に払い出すものである。なお、自動釣銭機210に代えて、現金を収容するためのドロワを備えてもよい。
【0027】
次に、POS端末20のソフトウェア構成について、
図3及び
図4を用いて説明する。
図3は、POS端末20が有する主要なソフトウェアを示すブロック図であり、
図4は、
図3の要部(スキャナダミーサービスオブジェクト807とプリンタダミーサービスオブジェクト808)を詳細に示すブロック図である。
図3に示すようにPOS端末20は、POSアプリケーション70と電子レシートエージェント80とを備える。
【0028】
POSアプリケーション70は、キーボード206、ディスプレイ207、スキャナ208、プリンタ209等のデバイスを制御し、商品販売に係る情報処理を、プロセッサ201を主体としたコンピュータに実行させるためのプログラムである。すなわちプロセッサ201を主体としたコンピュータは、POSアプリケーション70の実行部として機能する。
【0029】
商品販売に係る情報処理には、登録処理と決済処理とが含まれる。登録処理は、入力デバイス(キーボード206、スキャナ208等)を介して買物客が買い上げる商品の商品コードが入力されるのを待ち受ける。そして商品コードが入力されると、その商品コードで特定される商品の販売データを生成し、取引メモリに登録する処理である。また登録処理は、取引メモリに登録された販売データの商品名、価格等を表示デバイス(ディスプレイ207等)に表示させる処理も含む。取引メモリは、メインメモリ202の揮発性メモリ領域に形成されている。
【0030】
決済処理は、締めキーの入力により商取引の登録締めが指令されると、取引メモリに登録されたデータを基に取引金額を算出する。そして、支払データが入力されると、取引金額を支払いデータで決済する処理である。また決済処理は、取引メモリに登録されたデータを基にレシートデータを生成する処理も含む。支払データは、現金決済の場合、預り金額のデータである。電子マネー決済の場合、電子マネーカードの残高である。ポイント決済の場合、ポイントカードの残ポイントである。
【0031】
電子レシートエージェント80は、POSアプリケーション70に成り代わって電子レシートシステムに係るデータ処理を請け負う。すなわち電子レシートエージェント80は、会員IDの読取りに供される入力デバイスすなわちスキャナ208を制御する。また電子レシートエージェント80は、レシート印刷に供される印刷デバイスすなわちプリンタ209を制御する。さらに電子レシートエージェント80は、レシートデータの送信に供される通信デバイスである通信インターフェース205を制御する。
【0032】
具体的には電子レシートエージェント80は、USB(Universal Serial Bus)ドライバ801、スキャナコントロールオブジェクト802、スキャナサービスオブジェクト803、プリンタコントロールオブジェクト804、プリンタサービスオブジェクト805、レシートデータ送信プロセス806、スキャナダミーサービスオブジェクト807、及びプリンタダミーサービスオブジェクト808を含む。USBドライバ801は、カーネル空間に属する。スキャナコントロールオブジェクト802、スキャナサービスオブジェクト803、プリンタコントロールオブジェクト804、プリンタサービスオブジェクト805、レシートデータ送信プロセス806、スキャナダミーサービスオブジェクト807、及びプリンタダミーサービスオブジェクト808は、ユーザ空間に属する。
【0033】
USBドライバ801は、USBインターフェースに準拠したデバイスとのデータ通信を制御するソフトウェアである。本実施形態において、スキャナ208及びプリンタ209は、USBインターフェースに準拠したデバイスであり、POS端末20の本体に対してUSBケーブルで接続される。
【0034】
スキャナコントロールオブジェクト802及びスキャナサービスオブジェクト803は、POSアプリケーション70に対してオープンPOS標準仕様に準拠したインターフェースを有し、スキャナ208に対応して設けられたソフトウェアである。
【0035】
スキャナコントロールオブジェクト802は、スキャナ208に関するプロパティ、メソッド、イベントのセットをPOSアプリケーション70に提供する。POSアプリケーション70は、スキャナコントロールオブジェクト802から提供されたメソッド及びプロパティを通じてスキャナ208への実行要求を行う。そしてPOSアプリケーション70は、メソッドの戻り値とプロパティ及びイベントを通じて、スキャナコントロールオブジェクト802からスキャナ208の処理結果を取得する。
【0036】
スキャナサービスオブジェクト803は、スキャナ208の製造元及び機種に対応しており、スキャナコントロールオブジェクト802によって呼び出されて動作する。すなわちスキャナサービスオブジェクト803は、POSアプリケーション70からの実行要求をスキャナ208に指令し、スキャナ208から処理結果を受け取って、スキャナコントロールオブジェクト802へと出力する。
【0037】
ここに、スキャナコントロールオブジェクト802及びスキャナサービスオブジェクト803は、入力デバイス(スキャナ208)を介して入力された商取引に関するデータを、当該データを基にレシートデータを生成するアプリケーションプログラムの実行部に出力する入力処理部として機能する。
【0038】
プリンタコントロールオブジェクト804及びプリンタサービスオブジェクト805は、POSアプリケーション70に対してオープンPOS標準仕様に準拠したインターフェースを有し、プリンタ209に対応して設けられたソフトウェアである。
【0039】
プリンタコントロールオブジェクト804は、プリンタ209に関するプロパティ、メソッド、イベントのセットをPOSアプリケーション70に提供する。POSアプリケーション70は、プリンタコントロールオブジェクト804から提供されたメソッド及びプロパティを通じてプリンタ209への実行要求を行う。そしてPOSアプリケーション70は、メソッドの戻り値とプロパティ及びイベントを通じて、プリンタコントロールオブジェクト804からプリンタ209の処理結果を取得する。
【0040】
プリンタサービスオブジェクト805は、プリンタ209の製造元及び機種に対応しており、プリンタコントロールオブジェクト804によって呼び出されて動作する。すなわちプリンタサービスオブジェクト805は、POSアプリケーション70からの実行要求をプリンタ209に指令し、プリンタ209から処理結果を受け取って、プリンタコントロールオブジェクト804へと出力する。
【0041】
ここに、プリンタコントロールオブジェクト804及びプリンタサービスオブジェクト805は、レシートデータを基にレシート印刷を印刷デバイス(プリンタ209)に実行させる印刷処理部として機能する。
【0042】
レシートデータ送信プロセス806は、POSアプリケーション70によるデータ処理で生成されたレシートデータをセンタサーバ30へと送信するように、通信インターフェース205を制御するソフトウェアである。すなわちレシートデータ送信プロセス806は、レシートデータをXML(Extensible Markup Language)フォーマット、JCON(JavaScript Object Notation)又はCSV(Comma Separated Value)フォーマットの構造化データに変換する。レシートデータを構造化することで、レシートデータに含まれる各要素(レシートを構成する各テキストデータ)を区別、特定することができ、要素間の配列関係などを、そのデータだけから認識することができるようになる。そこでレシートデータ送信プロセス806は、通信インターフェース205を制御して、構造化データに変換されたレシートデータをセンタサーバ30へと送信させる。
【0043】
ここにレシートデータ送信プロセス806は、通信デバイス(通信インターフェース205)を制御してレシートデータをセンタサーバ30へと送信する送信処理部として機能する。
【0044】
スキャナダミーサービスオブジェクト807は、スキャナサービスオブジェクト803と同様に、スキャナコントロールオブジェクト802によって呼び出されて動作するソフトウェアである。スキャナダミーサービスオブジェクト807は、スキャナサービスオブジェクト803からスキャナコントロールオブジェクト802へと出力されるスキャナ208の処理結果に対し、以下の処理を行う。
【0045】
プリンタダミーサービスオブジェクト808は、プリンタサービスオブジェクト805と同様に、プリンタコントロールオブジェクト804によって呼び出されて動作するソフトウェアである。プリンタダミーサービスオブジェクト808は、プリンタコントロールオブジェクト804からプリンタサービスオブジェクト805へと出力されるレシートデータに対し、以下の処理を行う。
【0046】
図4は、スキャナダミーサービスオブジェクト807及びプリンタダミーサービスオブジェクト808の処理構成を具体的に示すブロック図である。以下、
図4を用いて、スキャナダミーサービスオブジェクト807及びプリンタダミーサービスオブジェクト808の処理について説明する。
【0047】
スキャナダミーサービスオブジェクト807は、入力部8071、判断部8072、第1出力部8073及び第2出力部8074によって構成される。入力部8071は、スキャナサービスオブジェクト803の出力、すなわちスキャナ208で読み取ったバーコードのデータを入力する。そして入力部8071は、入力されたバーコードデータを判断部8072へと与える。
【0048】
判断部8072は、入力部8071を介して入力されたバーコードデータが、電子レシートを要求するデータであるか否かを判断する。前述したように本実施形態では、レシートを電子レシートとして受け取る消費者は、情報端末50の表示デバイスに表示された会員IDのバーコードを店員に提示する。店員は、スキャナ208を操作して、そのバーコードを読み取る。そこで判断部8072は、入力部8071を介して入力されたバーコードデータが、会員IDのバーコードを読み取ったデータであるか否かを判断する。
【0049】
スキャナ208によって読み取られるバーコードには、主に、会員IDのバーコードと商品コードのバーコードとがある。会員IDのバーコードと商品コードのバーコードとは、コード体系が異なる。判断部8072は、コード体系の違いによって、バーコードデータが会員IDのバーコードを読み取ったデータであるか否かを判断する。
【0050】
バーコードデータが会員IDのバーコードを読み取ったデータでない場合、判断部8072は、当該バーコードデータが電子レシートを要求するデータではないと判断する。この場合、判断部8072は、バーコードデータを第1出力部8073へと出力する。これに対し、バーコードデータが会員IDのバーコードを読み取ったデータである場合には、判断部8072は、当該バーコードデータが電子レシートを要求するデータであると判断する。この場合、判断部8072は、バーコードデータを第2出力部8074へと出力する。
【0051】
第1出力部8073は、判断部8072を介して入力されたバーコードデータをスキャナコントロールオブジェクト802へと出力する。
【0052】
第2出力部8074は、判断部8072を介して入力されたバーコードデータを、後述するプリンタダミーサービスオブジェクト808の切替部8082へと出力する。
【0053】
ここに、スキャナダミーサービスオブジェクト807は、入力デバイス(スキャナ208)を介して入力されたデータが電子レシートを要求するデータ(会員IDのバードデータ)であるか否かを判断する判断部として機能する。
【0054】
プリンタダミーサービスオブジェクト808は、入力部8081、切替部8082、第1出力部8083及び第2出力部8084によって構成される。入力部8081は、プリンタコントロールオブジェクト804の出力、すなわちレシートデータを入力する。そして入力部8081は、入力されたレシートデータを切替部8082へと与える。
【0055】
切替部8082は、入力部8081を介して入力されたレシートデータの出力先を、第1出力部8083と第2出力部8084との間で切り替える。切替部8082は、スキャナダミーサービスオブジェクト807の第2出力部8074からバーコードデータが入力されていない状態でレシートデータを入力すると、このレシートデータの出力先を第1出力部8083とする。すなわち切替部8082は、レシートデータを第1出力部8083へと出力する。これに対し、切替部8082は、スキャナダミーサービスオブジェクト807の第2出力部8074からバーコードデータが入力された後でレシートデータを入力すると、このレシートデータの出力先を第2出力部8084とする。すなわち切替部8082は、レシートデータをバーコードデータとともに第2出力部8084へと出力する。
【0056】
第1出力部8083は、切替部8082を介して入力されたレシートデータをプリンタサービスオブジェクト805へと出力する。
【0057】
第2出力部8084は、切替部8082を介して入力されたレシートデータとバーコードデータとをレシートデータ送信プロセス806へと出力する。
【0058】
このようにプリンタダミーサービスオブジェクト808は、判断部(スキャナダミーサービスオブジェクト807)で電子レシートを要求するデータであると判断された後に実行部で生成されたレシートデータについては送信処理部(レシートデータ送信プロセス806)へ与える。また、プリンタダミーサービスオブジェクト808は、判断部(スキャナダミーサービスオブジェクト807)で電子レシートを要求するデータであると判断されることなく実行部で生成されたレシートデータについては印刷処理部(プリンタサービスオブジェクト805)へ与える。ここに、プリンタダミーサービスオブジェクト808は、切替部として機能する。
【0059】
図5及び
図6は、
図3及び
図4を用いて説明した電子レシートエージェント80を備えたPOS端末20のプロセッサ201の主要な動作(処理手順)を示すフローチャートである。具体的には、
図5は、スキャナ208から入力されるバーコードデータに対する動作を示しており、
図6は、POSアプリケーション70で生成されたレシートデータに対する動作を示している。始めに、
図5を用いてバーコードデータに対するプロセッサ201の動作について説明する。
【0060】
プロセッサ201は、Act11としてスキャナ208からバーコードデータが入力されるのを待ち受ける。スキャナ208からバーコードデータが入力されたならば(Act1、YES)、プロセッサ201は、Act12してそのバーコードデータを解析する。そしてプロセッサ201は、Act13としてそのバーコードデータが会員IDのコード体系を有するバーコードデータであるか否かを判断する。プロセッサ201は、会員IDのコード体系を有するバーコードデータでないと判断した場合(Act13、NO)、Act14としてそのバーコードデータでPOSアプリケーション70を実行する。
【0061】
一方、会員IDのコード体系を有するバーコードデータであると判断した場合には(Act13、YES)、プロセッサ201は、Act15としてそのバーコードデータを含む割込み信号を生成する。しかる後、プロセッサ201は、Act1に戻り、次のバーコードデータが入力されるのを待ち受ける。
【0062】
次に、
図6を用いてレシートデータに対するプロセッサ201の動作について説明する。
【0063】
プロセッサ201は、Act21として状態フラグFを“0”にリセットする。状態フラグFは、メインメモリ202の揮発性領域に記憶されている。プロセッサ201は、Act22としてPOSアプリケーション70の処理によりレシートデータが生成されたか否かを判断する。レシートデータが生成されていない場合(Act22、NO)、プロセッサ201は、Act23として割込み信号が生成されたか否かを判断する。割込み信号が生成されていない場合(Act23、NO)、プロセッサ201は、Act22に戻る。ここにプロセッサ201は、Act22及びAct23の処理により、レシートデータが生成されるか割込み信号が生成されるのを待ち受ける。
【0064】
プロセッサ201は、Act22及びAct23の待ち受け状態において、割込み信号が生成されたことを確認した場合(Act23、YES)、Act24として状態フラグFを“1”にセットする。その後、プロセッサ201は、Act22及びAct23の待ち受け状態に戻る。
【0065】
プロセッサ201は、Act22及びAct23の待ち受け状態において、レシートデータが生成されたことを確認した場合(Act22、YES)、Act25として状態フラグFを判定する。ここで、状態フラグFが“0”にリセットされたままであった場合(Act25、NO)、プロセッサ201は、Act26としてレシートデータをプリンタ209へと出力し、レシート印刷を制御する。これに対し、状態フラグFが“1”にセットされていた場合には(Act26、YES)、プロセッサ201は、Act27としてレシートデータを電子化し、この電子化されたレシートデータをセンタサーバ30へと送信するように通信インターフェース205を制御する。
【0066】
かくして、レシート印刷を制御するか通信インターフェース205を制御した後、プロセッサ201は、Act21の処理に戻る。すなわちプロセッサ201は、状態フラグFを“0”にリセットし、レシートデータ又は割込み信号が生成されるのを待ち受ける。
【0067】
このように電子レシートエージェント80においては、判断部8072を備えたスキャナダミーサービスオブジェクト807を、スキャナコントロールオブジェクト802とスキャナサービスオブジェクト803との間に介在させている。また、切替部8082を備えたプリンタダミーサービスオブジェクト808を、プリンタコントロールオブジェクト804とプリンタサービスオブジェクト805との間に介在させている。
【0068】
そうすることにより、スキャナ208で読み取られ、スキャナサービスオブジェクト803により取り込まれたバーコードデータは、スキャナダミーサービスオブジェクト807に与えられる。そして、スキャナダミーサービスオブジェクト807により、会員IDのバーコードデータはプリンタダミーサービスオブジェクト808へ出力される。会員IDのバーコードデータは、POSアプリケーション70には出力されない。一方、会員IDのバーコード以外のバーコードデータは、スキャナコントロールオブジェクト802によりPOSアプリケーション70の実行部に与えられ、登録処理又は決済処理に供される。
【0069】
そして、この決済処理によりレシートデータが生成されると、このレシートデータはプリンタコントロールオブジェクト804によりプリンタダミーサービスオブジェクト808に与えられる。このとき、会員IDのバーコードデータがプリンタダミーサービスオブジェクト808に与えられていない場合には、レシートデータは、プリンタサービスオブジェクト805によりプリンタ209へと出力される。すなわち紙レシートが発行される。
【0070】
一方、会員IDのバーコードデータがプリンタダミーサービスオブジェクト808に与えられていた状態で、レシートデータが生成された場合には、このレシートデータは、レシートデータ送信プロセス806により構造化データに変換される。そしてレシートデータは、バーコードデータとともに通信インターフェース205を介してセンタサーバ30へと送信される。
【0071】
このように電子レシートエージェント80によれば、POSアプリケーション70に代わって電子レシートシステムに係るデータ処理を請け負うことができる。したがって、既存のPOSアプリケーション70を改修することなく、電子レシートシステム10に対応したPOS端末20を得ることができる。
【0072】
また、電子レシートエージェント80は、スキャナ208に対応したソフトウェアとして、スキャナコントロールオブジェクト802とスキャナサービスオブジェクト803とを備え、さらにスキャナコントロールオブジェクト802とスキャナサービスオブジェクト803との間にスキャナダミーサービスオブジェクト807を介在させた構成となっている。したがって、電子レシートエージェント80は、スキャナ208に関し、POSアプリケーション70に対してオープンPOS標準仕様に準拠したインターフェースを有しているので、スキャナ208の製造元及び機種を適宜変更することができる。
【0073】
同様に、電子レシートエージェント80は、プリンタ209に対応したソフトウェアとして、プリンタコントロールオブジェクト804とプリンタサービスオブジェクト805とを備え、さらにプリンタコントロールオブジェクト804とプリンタサービスオブジェクト805との間にプリンタダミーサービスオブジェクト808を介在させた構成となっている。したがって、電子レシートエージェント80は、プリンタ209に関し、POSアプリケーション70に対してオープンPOS標準仕様に準拠したインターフェースを有しているので、プリンタ209の製造元及び機種を適宜変更することができる。
【0074】
以下、実施形態の変形例について説明する。
前記実施形態では、スキャナ208及びプリンタ209をUSBインターフェースに準拠したデバイスとして説明したが、必ずしもUSBインターフェースに準拠したデバイスでなくてもよい。ただしその場合には、スキャナ208及びプリンタ209にそれぞれ対応したドライバが必要となる。また、電子レシートエージェント80は、USBドライバ801を除いて構成される。
【0075】
前記実施形態では、電子レシートを要求するデータを会員IDのバーコードデータとしたが、必ずしも会員IDのバーコードデータに限定されるものではない。例えば、会員が所有するポイントカードのカード番号と当該会員の会員IDとを関連付けて記憶する。そして、ポイントカードには、カード番号を表すバーコードが表記されているものとする。このような実施形態においては、判断部8072は、会員IDと関連付けられたカード番号のバーコードデータが入力された場合、そのバーコードデータを、電子レシートを要求するデータと判断すればよい。
【0076】
なお、POS端末20の譲渡は一般に、POSアプリケーション70や電子レシートエージェント80等のソフトウェアがメインメモリ202又は補助記憶デバイス203に記憶された状態にて行われる。しかしこれに限らず、ソフトウェアがメインメモリ202又は補助記憶デバイス203に記憶されていない状態で譲渡されてもよい。そしてこの場合は、POS端末20が備える書き込み可能な記憶デバイスに、このPOS端末20とは個別に譲渡されたソフトウェアがユーザなどの操作に応じて書き込まれてもよい。ソフトウェアの譲渡は、リムーバブルな記録媒体に記録して、あるいはネットワークを介した通信により行うことができる。記録媒体は、CD−ROM,メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。また、プログラムのインストールやダウンロードにより得る機能は、装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
【0077】
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
入力デバイスを介して入力された商取引に関するデータを、当該データを基にレシートデータを生成するアプリケーションプログラムの実行部に出力する入力処理部と、
前記レシートデータを基にレシート印刷を印刷デバイスに実行させる印刷処理部と、
通信デバイスを制御して前記レシートデータをサーバへと送信する送信処理部と、
前記入力デバイスを介して入力されたデータが電子レシートを要求するデータであるか否かを判断する判断部と、
前記判断部で前記電子レシートを要求するデータであると判断された後に前記実行部で生成されたレシートデータについては前記送信処理部へ与え、前記判断部で前記電子レシートを要求するデータであると判断されることなく前記実行部で生成されたレシートデータについては前記印刷処理部へ与える切替部と、を具備する電子レシートエージェント。
[C2]
前記入力処理部は、
前記入力デバイスを介して入力されたデータを取り込むサービスオブジェクトと、前記実行部とのインターフェースを提供して前記入力されたデータを前記実行部へと出力するコントロールオブジェクトと、で構成し、
前記判断部は、
前記入力処理部の前記サービスオブジェクトと前記コントロールオブジェクトの間に介在して、前記サービスオブジェクトにより取り込まれたデータが電子レシートを要求するデータである場合にはそのデータを前記切替部へ与え、前記サービスオブジェクトにより取り込まれたデータが電子レシートを要求するデータでない場合にはそのデータを前記コントロールオブジェクトに与えるダミーサービスオブジェクトで構成する、[C1]記載の電子レシートエージェント。
[C3]
前記印刷処理部は、
前記実行部とのインターフェースを提供して前記レシートデータを取り込むコントロールオブジェクトと、レシートの印刷を印刷デバイスに実行させるサービスオブジェクトと、で構成し、
前記切替部は、
前記印刷処理部の前記コントロールオブジェクトと前記サービスオブジェクトとの間に介在して、前記コントロールオブジェクトにより取り込まれたレシートデータを、前記判断部から電子レシートを要求するデータを受信した場合には前記送信処理部へ与え、前記電子レシートを要求するデータを受信していない場合には前記サービスオブジェクトに与えるダミーサービスオブジェクトで構成する、[C1]記載の電子レシートエージェント。
[C4]
前記判断部は、前記入力デバイスを介して入力されたデータが、電子レシート会員として登録された会員に対して発行される会員IDであるとき、電子レシートを要求するデータであると判断してその会員IDを前記切替部に与え、
前記切替部は、前記判断部から前記会員IDが与えられた場合、この会員IDとともに前記実行部で生成されたレシートデータを前記送信処理部へ与える[C1]記載の電子レシートエージェント。
[C5]
入力デバイス、印刷デバイス及び通信デバイスを備えたコンピュータに、[C1]乃至[C4]のうちいずれか1項記載の電子レシートエージェントとしての機能を実現させるためのプログラム。