以下、本発明を実施するための最良の形態について、図面を用いて説明する。
なお、この実施の形態は、特定の一種類の商品に対して値引または割引サービスを提供するクーポン券(この実施の形態では「単品クーポン券」と称する)と、特定の商品群に属する商品全品に対して値引または割引サービスを提供するクーポン券(この実施の形態では「商品群クーポン券」と称する)とが混在する店のPOS端末に本発明を適用した場合である。
図1は商品販売データ処理装置の一実施形態であるPOS端末1の要部構成を示すブロック図である。POS端末1には、制御部本体としてCPU(Central Processing Unit)11が搭載されている。また、プログラム等の固定的データが予め格納されたROM(Read Only Memory)12、可変的なデータを一時的に記憶する種々のワークエリア等が形成されたRAM(Random Access Memory)13、現在の日付及び時刻を計時する時計部14、有線または無線の伝送路を介してホスト装置2との間で行うデータ通信を制御する通信コントローラ15、締めキー,指定取消キー等が配設されたキーボード16のキー入力を制御するキーボードコントローラ17、キャッシャ等のオペレータに対して種々の情報を表示するオペレータ用ディスプレイ18の画面表示を制御する第1の表示コントローラ19、会計を行う客に対して種々の情報を表示する客用ディスプレイ20の画面表示を制御する第2の表示コントローラ21、レシート印字等を行うプリンタ22の印字動作を制御するプリンタコントローラ23、バーコードを光学的に読取ることが可能なバーコードスキャナ24が電気的に接続されるスキャナインターフェイス25等が設けられている。CPU11と、ROM12,RAM13,時計部14,通信コントローラ15,キーボードコントローラ17,第1の表示コントローラ19,第2の表示コントローラ21,プリンタコントローラ23及びスキャナインターフェイス25とは、アドレスバス,データバス等のバスライン26で接続されている。
ホスト装置2では、特に、商品テーブル3とクーポンテーブル4とが記憶管理されている。商品テーブル3のデータ構造の一例を図2に示す。また、クーポンテーブル4のデータ構造の一例を図3に示す。
図示するように、商品テーブル3には、各商品をそれぞれ識別するために商品毎に設定された単品コードに対応して、その商品が属する商品群を識別する商品群コード、その商品の名称、その商品1点あたりの価格(単価)等の商品データが予め記憶されている。そして、各商品には、それぞれ自己に設定された単品コードを含むバーコードが印刷等によって付されている。
一方、クーポンテーブル4には、単品クーポン券及び商品群クーポン券をそれぞれ識別するためにクーポン券毎に設定されたクーポンコードに対応して、そのクーポン券の名称、値引サービスのクーポン券なのか割引サービスのクーポン券なのかを区分する値割引区分(本実施の形態では値引サービスの区分を“0”とし、割引サービスの区分を“1”とする)、値割引のサービス量(値引の場合は値引額、割引の場合は割引率)、単品クーポン券なのか商品群クーポン券なのかを区分する券種区分(本実施の形態では単品クーポン券の区分を“0”とし、商品群クーポン券の区分を“1”とする)、値割引対象の商品特定コード(単品クーポン券の場合は単品コード、商品群クーポン券の場合は商品群コード)等のクーポンデータが予め記憶されている。そして、各クーポン券には、それぞれ自己に設定されたクーポンコードを含むバーコードが印刷等によって付されている。
図4はPOS端末1のRAM13に形成される取引メモリ30の要部構成を示す模式図である。取引メモリ30は、1客との商取引で発生する種々のデータを一時的に記憶保持するワークエリアであって、図示するように、登録商品バッファ31、登録クーポンバッファ32、小計エリア33等のメモリ領域に区分されている。
登録商品バッファ31には、図5に示すように、レコード番号(No)、単品コード、商品群コード、商品名称、単価、点数、金額及び値引額等の各項目データで構成された登録商品レコードが、レコード番号順に記憶される。登録商品バッファ31は、1商取引として売上げる全ての商品の販売データを記憶する商品販売データ記憶部として機能する。
一方、登録クーポンバッファ32には、図6に示すように、レコード番号(No)、クーポンコード、クーポン名称、値割引区分、値割引のサービス量、券種区分、値割引対象の商品特定コード、クーポン券枚数及び確定フラグ等の各項目データで構成された登録クーポンレコードが、レコード番号順に記憶される。登録クーポンバッファ32は、1商取引の中で入力手段を介して入力された全てのクーポン券データを記憶するクーポン券データ記憶部として機能する。
かかる構成のPOS端末1を操作するキャッシャは、客から買上商品に対する会計の申し出を受けると、先ず、各買上商品にそれぞれ付されているバーコードをバーコードスキャナ24で読取操作(スキャニング)する。これにより、各買上商品の販売データがPOS端末1に売上登録処理される。また、客からクーポン券の提示を受けた場合には、そのクーポン券に付されているバーコードをバーコードスキャナ24で読取操作する。これにより、このクーポン券による値割引処理がPOS端末1で実行される。
このように、客が買上げる商品のデータ及び当該客が提示したクーポン券のデータを、入力手段であるバーコードスキャナ24を介して入力し終えると、この客との商取引が確定する。そこでキャッシャは、キーボード16に設けられた締めキーを操作して、当該客との会計を処理する。なお、客との商取引が確定する前に、この客から一部の商品の購入取止めの申し出を受けた場合には、キャッシャは、先ず、キーボード16に設けられた指定取消キーを押下する。続いて、その購入を取止める商品のバーコードをバーコードスキャナ24で読取操作する。こうすることにより、購入を取止める商品のデータが取消されるようになっている。
今、商品テーブル3及びクーポンテーブル4にそれぞれ図2,図3に示すデータが記憶されているものとする。この状態において、ある客との商取引に対するキャッシャの操作手順の一例を図7の流れ図に示す。すなわち、商品Cを2点と、商品A,商品B,商品D及び商品Eを各1点の計6点を購入しようとした客が、クーポンA,クーポンB及びクーポンCの3枚のクーポン券を提示した後、商品Aの購入を取止めた場合である。
以下、図7の操作例に基づき、図8〜図13に示す流れ図等を参照しながら、本実施の形態の動作について説明する。因みに、図8は前記指定取消キーが操作入力されたときのCPU11の処理手順を示す流れ図である。図9は前記バーコードスキャナ24によってバーコードがスキャニングされたときのCPU11の処理手順を示す流れ図である。図10は図9に示す処理手順の中の商品登録処理を具体的に示す流れ図である。図11は図9に示す処理手順の中のクーポン登録処理を具体的に示す流れ図である。図12は図9に示す処理手順の中の商品取消処理を具体的に示す流れ図である。図13は前記締めキーが操作入力されたときのCPU11の処理手順を示す流れ図である。
図7のステップS1として商品Aのバーコードがスキャニングされると、POS端末1のCPU11は、図9のスキャナ入力処理を開始する。先ず、ステップP1としてRAM13のフラグ領域に取消フラグがセットされているか否かを判断する。この時点ではセットされていないので、CPU11は、ステップP2としてスキャニングされたバーコードが単品コードを含む商品バーコードか否かを判断する。この場合は商品バーコードであるので、CPU11は、ステップP3として図10に具体的に示す商品登録処理を実行する。
先ず、CPU11は、ステップP11として1商取引の商品登録中か否かを判断する。この時点では登録中フラグがセットされておらず商品登録中でないので、CPU11は、ステップP12として取引メモリ30の各メモリ領域31,32,33,…をクリアする。また、ステップP13としてRAM13のフラグ領域に登録中フラグをセットする。
次に、CPU11は、ステップP14としてスキャニングされたバーコードに含まれる単品コード[00000001]で登録商品バッファ31を検索する。そして、ステップP15として当該単品コード[00000001]を含む登録商品レコードが登録商品バッファ31に記憶されているか否かを判断する。この場合は記憶されていないので、CPU11は、ステップP16としてホスト装置2にアクセスして、当該単品コード[00000001]に対応して商品テーブル3に設定されている商品群コード[100],商品名称[商品A],単価[500]等の商品データを取得する。そして、この商品データに、点数[1]、金額[500(点数×単価)]、値引額[0]の各データがセットされたレコード番号[1]の登録商品レコードを作成する。しかる後、ステップP17としてこのレコード番号[1]の登録商品レコードを登録商品バッファ31に書き込む。
次に、CPU11は、ステップP19としてこのレコード番号[1]の登録商品レコードに含まれる単品コード[00000001]及び商品群コード[100]の少なくとも一方を値割引対象とするクーポン券データが登録クーポンバッファ32に記憶されているか否かを判断する。この時点では記憶されていないので、CPU11は、ステップP21として小計エリア33に登録商品バッファ31に記憶されている各登録商品レコードの金額データを加算すると共に、同登録商品レコードの値引額データを減算して、当該1商取引の現時点での小計金額500円を算出する。
その後、CPU11は、ステップP22としてレコード番号[1]の登録商品レコードに含まれる商品名称,単価,点数,金額,値引額等の登録商品情報と、小計エリア33内の小計金額500円とをオペレータ用ディスプレイ18及び客用ディスプレイ20に表示させて、今回の商品登録処理を終了する。
次に、図7のステップS2として商品Bのバーコードがスキャニングされると、POS端末1のCPU11は、再度、スキャナ入力処理を実行する。今回も、取消フラグはリセットされており(ステップP1のNO)、かつスキャニングされたバーコードは商品バーコードであるので(ステップP2のYES)、前記商品登録処理を実行する。
ただし今回は、フラグ領域に登録中フラグがセットされているので(ステップP11のYES)、CPU11は、ステップP12及びステップP13の各処理を実行しない。また、スキャニングされたバーコードに含まれる単品コード[00000002]を有する登録商品レコードが登録商品バッファ31に記憶されていないので(ステップP15のNO)、CPU11は、この単品コード[00000002]と、当該単品コードに対応して商品テーブル3に設定されている商品群コード[200]、商品名称[商品B]及び単価[400]と、点数[1]、金額[400]及び値引額[0]とからなるレコード番号[2]の登録商品レコードを作成し、登録商品バッファ31に書き込む。また、前記と同様に、小計エリア33に登録商品バッファ31に記憶されている各登録商品レコードの金額データを加算すると共に、同登録商品レコードの値引額データを減算して、当該1商取引の現時点での小計金額900円を算出する。そして、レコード番号[2]の登録商品レコードに含まれる商品名称,単価,点数,金額,値引額等の登録商品情報をオペレータ用ディスプレイ18及び客用ディスプレイ20に追加表示すると共に小計金額の表示を900円に更新する。
以後、図7のステップS3,ステップS4及びステップS5として商品C,商品D,商品Eの各バーコードが順次スキャニングされた場合も、POS端末1は、上記と同様に動作する。これにより、登録商品バッファ31には、レコード番号[3]のレコードとして、単品コード[00000003]、商品群コード[100]、商品名称[商品C]及び単価[300]と、点数[1]、金額[300]及び値引額[0]の登録商品レコードが記憶される。また、レコード番号[4]のレコードとして、単品コード[00000004]、商品群コード[300]、商品名称[商品D]及び単価[400]と、点数[1]、金額[400]及び値引額[0]の登録商品レコードが記憶される。また、レコード番号[5]のレコードとして、単品コード[00000005]、商品群コード[400]、商品名称[商品E]及び単価[500]と、点数[1]、金額[500]及び値引額[0]の登録商品レコードが記憶される。さらに、小計エリア33には小計金額データ[2100]が記憶される。そして、オペレータ用ディスプレイ18及び客用ディスプレイ20には、商品A,商品B,商品C,商品D及び商品Eをそれぞれ1点ずつ購入した時点の登録商品情報が小計金額2100円とともに表示される。
次に、図7のステップS6としてクーポンCのバーコードがスキャニングされると、POS端末1のCPU11は、再度、スキャナ入力処理を開始する。ただし今回は、取消フラグがセットされていないものの(ステップP1のNO)、スキャニングされたバーコードが商品バーコードでないので(ステップP2のNO)、ステップP4としてクーポンコードを含むクーポンバーコードか否かを判断する。そしてこの場合はクーポンバーコードであるので、CPU11は、ステップP5として図11に具体的に示すクーポン登録処理を実行する。
先ず、CPU11は、ステップP31として1商取引の商品登録中か否かを判断する。この時点では登録中フラグがセットされており商品登録中であるので、CPU11は、ステップP32としてスキャニング入力されたバーコードに含まれるクーポンコード[C0003]で登録クーポンバッファ32を検索する。そして、ステップP33として当該クーポンコード[C0003]を含む登録クーポンレコードが登録クーポンバッファ32に記憶されているか否かを判断する。この場合は記憶されていないので、CPU11は、ステップP34としてホスト装置2にアクセスして、当該クーポンコード[C0003]に対応してクーポンテーブル4に設定されているクーポン名称[クーポンC],値割引区分[1(割引)]、値割引のサービス量[10(%)]、券種区分[0(単品クーポン)]、値割引対象の商品特定コード[00000001]等のクーポンデータを取得する。そしてこのクーポンデータに、枚数[1]及び確定フラグ[0(未確定)]の各データがセットされたレコード番号[1]の登録クーポンレコードを作成する。そして、ステップP35としてこのレコード番号[1]の登録クーポンレコードを登録クーポンバッファ32に書き込む。
なお、仮に、スキャニング入力されたバーコードに含まれるクーポンコード[C0003]を有する登録クーポンレコードが登録クーポンバッファ32に記憶されていた場合には、本実施の形態では、1商取引において同一クーポンの複数枚使用を禁止するために、当該クーポン登録処理をエラーとしている。また、商品の売上登録がない時点でのクーポン登録も禁止するために、登録中フラグがセットされていない時点でのクーポンバーコードのスキャニング入力もエラーとしている。
さて、レコード番号[1]の登録クーポンレコードを登録クーポンバッファ32に書き込んだ後、CPU11は、ステップP36としてこのレコード番号[1]の登録クーポンレコードに含まれる券種区分及び商品特定コードの各データから、登録商品バッファ31を検索して、クーポン対象の商品が登録されているか否かを判断する。すなわち、券種区分が[0]であり、商品特定コードが[00000001]であるので、単品コード[00000001]の登録商品レコードが登録商品バッファ31に記憶されているか否かを判断する。
この場合は、レコード番号[3]の登録商品レコードが該当するので、CPU11は、ステップP37としてこのレコード番号[3]の登録商品レコードの点数及び単価と、レコード番号[1]の登録クーポンレコードの値割引区分及びサービス量とから値引額を算出する。すなわち、点数が[1]、単価が[300]、値割引区分が[1]、サービス量が[10]なので、単価300円に対して10%の金額30円を値引額として算出する。そして、この値引額30円をレコード番号[3]の登録クーポンレコードにセットする。
しかる後、CPU11は、ステップP38として小計エリア33に登録商品バッファ31に記憶されている各登録商品レコードの金額データを加算すると共に、同登録商品レコードの値引額データを減算して、当該1商取引の現時点での小計金額2070円を算出する。また、ステップP39としてレコード番号[1]の登録クーポンレコードに含まれるクーポン名称,値割引のサービス量,枚数等の登録クーポン情報をオペレータ用ディスプレイ18及び客用ディスプレイ20に追加表示すると共に小計金額の表示を2070円に更新する。
次に、図7のステップS7として商品Cのバーコードがスキャニングされると、POS端末1のCPU11は、再度、スキャナ入力処理を実行する。今回は、取消フラグがセットされておらず(ステップP1のNO)、かつスキャニングされたバーコードが商品バーコードであるので(ステップP2のYES)、前記商品登録処理を実行する。そして、この場合も、フラグ領域に登録中フラグがセットされているので(ステップP11のYES)、CPU11は、ステップP12及びステップP13の各処理を実行しない。
ただし今回は、スキャニング入力されたバーコードに含まれる単品コード[00000003]を有する登録商品レコードが既に登録商品バッファ31に記憶されているので(ステップP15のNO)、CPU11は、ステップP18としてこの単品コード[00000003]を有するレコード番号[3]の登録商品レコードの点数データ[1]に点数“1”を加算する。また、加算後の点数データ[2]に単価データ[300]を乗算して、金額[600]を算出する。これにより、レコード番号[3]の登録商品レコードは、点数データが[2]となる。また、金額データが[600]となる。
また今回は、このレコード番号[3]の登録商品レコードに含まれる単品コード[00000003]を値割引対象とするクーポン券のデータ(レコード番号[1]の登録クーポンレコード)が登録クーポンバッファ32に記憶されているので(ステップP19のYES)、CPU11は、ステップP20として値引額を算出する。すなわち、点数[2]、単価[300]、値割引区分[1]、サービス量[10]なので、単価300円に対して10%の金額30円に、点数2点を乗算した金額60円を値引額として算出する。そして、この値引額60円を、レコード番号[3]の登録クーポンレコードにセットする。
しかる後、CPU11は、ステップP21として小計エリア33に登録商品バッファ31に記憶されている各登録商品レコードの金額データを加算すると共に、同登録商品レコードの値引額データを減算して、当該1商取引の現時点での小計金額2340円を算出する。また、ステップP22としてレコード番号[3]の登録商品レコードに含まれる値引額と小計金額2340円とが表示されるように、オペレータ用ディスプレイ18及び客用ディスプレイ20の表示データを更新する。
次に、図7のステップS8としてクーポンAのバーコードがスキャニングされると、POS端末1のCPU11は、再度、スキャナ入力処理を開始する。今回は、取消フラグがセットされておらず(ステップP1のNO)、かつスキャニングされたバーコードがクーポンバーコードであるので(ステップP2のNO,ステップP4のYES)、前記クーポン登録処理を実行する。
すなわち今回は、クーポンコード[C0001]、クーポン名称[クーポンA]、値割引区分[0(値引)]、値割引のサービス量[30(円)]、券種区分[1(商品群クーポン)]、値割引対象の商品特定コード[100]、枚数[1]及び確定フラグ[0(未確定)]の各データがセットされたレコード番号[2]の登録クーポンレコードを作成し、登録クーポンバッファ32に書き込む。
また、登録商品バッファ31に記憶されている各登録商品レコードのうち、レコード番号[1]のレコードとレコード番号[3]のレコードが商品群コード[100]を有しており、クーポン券Aの値割引対象であるので、商品毎に値引額を算出する。すなわち、レコード番号[1]の登録商品レコードの点数[1]と、レコード番号[2]の登録クーポンレコードの値割引区分[0]及びサービス量[30]とから、サービス量[30]に点数[1]を乗算した金額30円を値引額として算出する。そして、この値引額30円をレコード番号[1]の登録クーポンレコードにセットする。また、レコード番号[3]の登録商品レコードの点数[2]と、レコード番号[2]の登録クーポンレコードの値割引区分[0]及びサービス量[30]とから、値引額60円を算出する。そして、この値引額60円をレコード番号[3]の登録クーポンレコードの値引額データ[60]に加算して、値引額データを[120]に更新する。
しかる後、CPU11は、ステップP38として前記と同様にして当該1商取引の現時点での小計金額2250円を算出する。また、ステップP39としてレコード番号[1]及びレコード番号[3]の各登録商品レコードに含まれる値引額と、レコード番号[1]の登録クーポンレコードに含まれるクーポン名称,値割引のサービス量,枚数等の登録クーポン情報と、小計金額2250円とが表示されるように、オペレータ用ディスプレイ18及び客用ディスプレイ20の表示内容を更新する。
次に、図7のステップS9としてクーポンBのバーコードがスキャニングされた場合も、POS端末1は同様に動作する。これにより、登録クーポンバッファ32には、レコード番号[3]のレコードとして、クーポンコード[C0002]、クーポン名称[クーポンB]、値割引区分[1(割引)]、値割引のサービス量[5(%)]、券種区分[1(商品群クーポン)]、値割引対象の商品特定コード[200]、枚数[1]及び確定フラグ[0(未確定)]の登録クーポンレコードが記憶される。また、商品群コード[200]に属する商品Bの価格が5%割引されて、値引額20円が算出され、レコード番号[2]の登録商品レコードに値引額データ[20]がセットされる。そして、小計金額が2230円となり、これに応じてオペレータ用ディスプレイ18及び客用ディスプレイ20の表示内容が更新される。
次に、図7のステップS10として指定取消キーが操作入力されると、CPU11は、図8の指定取消キー処理を開始する。先ず、ステップP41として1商取引の商品登録中か否かを判断する。この時点ではフラグ領域に登録中フラグがセットされており、商品登録中であるので、CPU11は、ステップP42として取消フラグがセットされているか否かを判断する。この時点ではセットされていないので、CPU11は、ステップP43として取消フラグをセットして、この指定取消キー処理を終了する。
なお、仮に、フラグ領域に登録中フラグがセットされていなかった場合、あるいは取消しフラグが既にセットされていた場合には、指定取消キーの入力をエラーとする。
次に、図7のステップS11として商品Aのバーコードがスキャニングされると、POS端末1のCPU11は、再度、スキャナ入力処理を実行する。今回は、取消フラグがセットされているので(ステップP1のYES)、CPU11は、ステップP6としてスキャニングされたバーコードが単品コードを含む商品バーコードか否かを判断する。この場合は商品バーコードであるので、CPU11は、ステップP7として図12に具体的に示す商品取消処理を実行する。
先ず、CPU11は、ステップP51として1商取引の商品登録中か否かを判断する。この時点では登録中フラグがセットされており商品登録中であるので、CPU11は、ステップP52としてスキャニング入力されたバーコードに含まれる単品コード[00000001]で登録商品バッファ31を検索する。そして、ステップP53として単品コード[00000001]を含む登録商品レコードが登録商品バッファ31に記憶されているか否かを判断する。この場合はレコード番号[1]の登録商品レコードが該当するので、CPU11は、ステップP54としてこの登録商品レコードの点数データ[1]から点数“1”を減算する。また、減算後の点数データ[0]に単価データ[500]を乗算して、金額[0]を算出する。
次に、CPU11は、ステップP55としてこの登録商品レコードの値引額データが“0”より大きいか否かを判断する。この場合は、値引額データが[30]であり“0”より大きいので、CPU11は、この登録商品レコードの商品を値割引の対象とする登録クーポンレコードを登録クーポンバッファ32から検索する。この場合は、券種区分が[1]で値割引対象の商品特定コードが[100]のレコード番号[2]の登録クーポンレコード(クーポンAのレコード)が該当するので、レコード番号[1]の登録商品レコードの点数[0]と、レコード番号[2]の登録クーポンレコードの値割引区分[0]及びサービス量[30]とから、値引額0円を算出する。そして、この値引額0円をレコード番号[1]の登録クーポンレコードにセットする。
次に、CPU11は、ステップP57としてこのレコード番号[1]の登録商品レコードの点数データが“0”であるか否かを判断する。この場合は“0”であるので、CPU11は、ステップP58としてこのレコード番号[1]の登録商品レコードを登録商品バッファ31から削除する。
次に、CPU11は、ステップP59としてフラグ領域から取消フラグをリセットする。また、ステップP60として前記と同様にして小計エリア33に登録商品バッファ31に記憶されている各登録商品レコードの金額データを加算すると共に、同登録商品レコードの値引額データを減算して、当該1商取引の現時点での小計金額1760円を算出する。そして、ステップP61としてレコード番号[3]の登録商品レコードが削除されると共に小計金額1760円とが表示されるように、オペレータ用ディスプレイ18及び客用ディスプレイ20の表示内容を更新する。
次に、図7のステップS12として締めキーが操作入力されると、CPU11は、図13の締めキー処理を開始する。先ず、ステップP71として1商取引の商品登録中か否かを判断する。この時点ではフラグ領域に登録中フラグがセットされており、商品登録中であるので、CPU11は、1商取引の確定が宣言されたと判断する(確定宣言手段)。そして、ステップP72としてクーポン登録が行われているか否かを判断する。この場合は、登録クーポンバッファ32にクーポン登録レコードが記憶されているので、クーポン登録が行われていると判断する。そしてCPU11は、ステップP73〜ステップP78の処理を実行する。
ステップP73では、番号カウンタmを“0”にリセットする。次のステップP74では、上記番号カウンタmを“1”だけカウントアップする。次のステップP75では、登録クーポンバッファ32からレコード番号が上記番号カウンタmのカウント値に一致する登録クーポンレコードを取得する。すなわち、レコード番号[1]の登録クーポンレコードを取得する。
次のステップP76では、この取得した登録クーポンレコードのクーポン券データによって値引または割引サービスの対象となる商品の販売データを含む登録商品レコードが前記登録商品バッファ31に記憶されているか否かを検索する(クーポン対象商品検索手段)。この場合は、クーポン券Cが値引または割引サービスの対象となる商品、すなわち単品コード[00000001]の商品Aの販売データを含む登録商品レコードは、直前の指定取消操作によって取消されて登録商品バッファ31に記憶されていないので、ステップP77の処理を実行しない。
次のステップP78では、上記番号カウンタmが登録クーポンバッファ32に記憶されている登録クーポンレコードのレコード数Nに達したか否かを判断する。この場合は、レコード数Nが“3”であり未達であるので、前記ステップP74の処理に戻る。
したがって、CPU11は、次に、登録クーポンバッファ32からレコード番号[2]の登録クーポンレコードを取得する。この取得した登録クーポンレコードのクーポン券データ(クーポン券Aのデータ)によって値引または割引サービスの対象となる商品、すなわち商品群100に属する商品の販売データを含む登録商品レコードは、レコード番号[3]のレコードであるので、CPU11は、ステップP77として上記レコード番号[2]の登録クーポンレコードの確定フラグを[1(確定)]にセットする。
次に、CPU11は、登録クーポンバッファ32からレコード番号[3]の登録クーポンレコードを取得する。この取得した登録クーポンレコードのクーポン券データ(クーポン券Bのデータ)によって値引または割引サービスの対象となる商品、すなわち商品群200に属する商品の販売データを含む登録商品レコードは、レコード番号[2]のレコードであるので、CPU11は、ステップP77として上記レコード番号[3]の登録クーポンレコードの確定フラグを[1(確定)]にセットする。
この時点において、番号カウンタmが登録クーポンバッファ32に記憶されている登録クーポンレコードのレコード数N(=3)に達するので、CPU11は、ステップP79として登録クーポンバッファ32に、確定フラグが“0”にリセットされたままの未確定の登録クーポンレコード、すなわち値引または割引サービスの対象となる商品の販売データを含む登録商品レコードが登録商品バッファ31に記憶されていないと判定されたクーポン券データのレコードが存在するか否かを判断する(クーポン券判別手段)。
この場合は、レコード番号[1]の登録クーポンレコードが該当するので、CPU11は、ステップP80としてこのレコード番号[1]の登録クーポンレコードからクーポン名称[クーポンC]を読み出す。そして、例えば図14に示すように当該クーポン名称[クーポンC]が配置されたレイアウトのクーポン返却レシート5を編集する。そして、ステップP81としてこのクーポン返却レシート5の印字データをプリンタ22に出力して、クーポン返却レシート5を印字発行させる(クーポン返却レシート発行手段)。
しかる後、CPU11は、ST82として取引メモリ30に記憶されている各データに基づいて、通常の買上レシートの印字データを編集する。そして、この買上レシートの印字データをプリンタ22に出力して、通常の買上レシートを印字発行させる。このとき発行される買上レシート7の一例を図16に示す。
また、CPU11は、図15に示すように、クーポン返却レシート5が発行されていること、つまりは返却すべきクーポン券があることをキャッシャに報知するメッセージ画面6をオペレータ用ディスプレイ18に表示させる(返却クーポン報知手段)。これにより、キャッシャは、クーポン返却レシート5が発行されていることに気付くので、確認用のキー「はい」を押下する。
CPU11は、ステップP84として確認操作がなされたことを検知すると、ステップP85としてクーポン返却レシート5のメッセージ画面6を消去する。また、ステップP86として登録中フラグをリセットしたならば、この締めキー処理を終了する。
なお、ステップP72にて登録クーポンバッファ32にクーポン登録レコードが記憶されていないと判定された場合、及びステップP79にて未確定の登録クーポンレコードが存在しないと判定された場合には、CPU11は、ステップP87の処理に進む。そして、通常の買上レシートの印字発行を制御し、登録中フラグをリセットしたならば、この締めキー処理を終了するものとなっている。
このように、クーポン券を提示した客が、その後、一部の商品の購入を取止めた場合、値割引対象の商品が存在しなくなったために客に返却すべきクーポン券が発生する場合がある。このような場合、本実施の形態によれば、当該客との商取引の確定を宣言する締めキー操作に応じて、返却クーポンがあることをオペレータに報知するメッセージ画面6がオペレータ用ディスプレイ18に表示されるので、キャッシャは返却すべきクーポン券があることに容易に気付くようになる。しかも、返却すべきクーポン券の名称が印字されたクーポン返却レシート5がプリンタ22を介して印字発行されるので、どのクーポン券を返却すればよいのかも容易に把握できる。その結果、キャッシャは、購入商品の取消があった場合に、クーポン券を返却すべきか否かを意識する必要がなくなるので、キャッシャの負担を軽減することができる。また、返却すべきクーポン券を返却し忘れたために客の信頼を損ねるような不具合が発生するのを未然に防止できる効果も奏する。
また、このような作用効果は、商品の購入取り止めが発生した場合に限るものではない。例えば値割引対象の商品があると客が勘違いをしてクーポン券を提示し、キャッシャもそれに気付かずにクーポン登録をしてしまったような場合にも、値割引対象がないクーポン券は返却クーポンとして報知されるので、客に未使用のクーポン券を返却することができる。
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
例えば前記実施の形態では、商品登録中にクーポン券が提示され、そのクーポン券による値割引処理が実行された後に、商品の購入取止めがあった場合について説明したが、商取引が確定し、日数が経過した後に、クーポン値割引対象の商品が返品された場合にも、適用することができる。
すなわち、POS端末1は、図13の締めキー処理において、ステップP86の登録中フラグリセット処理の後に、登録商品バッファ31に記憶されている登録商品レコードと登録クーポンバッファ32に記憶されている登録クーポンレコードとを、当該商取引の識別データである例えば取引番号と関連付けてホスト装置2に送信し、ホスト装置2のデータベースにて保管するようにする。また、返品操作により返品対象の商取引の取引番号が入力されると、ホスト装置2から当該取引番号で関連付けられた登録商品レコードと登録クーポンレコードとを読出し、それぞれ登録商品バッファ31と登録クーポンバッファ32とに展開して記憶させる。以後は、前記実施の形態と同様に動作させる。
こうすることによって、返品により返却すべきクーポン券が生じた場合には、その旨の報知と、返却すべきクーポン券の識別が可能なクーポン返却レシート5とを発行することができる。なお、この場合は、返却すべきクーポン券が既に手元にない場合が想定されるので、プリンタ22を利用して返却すべきクーポン券そのものを印字発行するようにすると好都合である。
また、前記実施の形態では、締めキー処理において、先にクーポン返却レシート5を印字し、後から通常の買上レシート7を印字したが、印字順序は逆であってもよい。また、レシート印字の前にクーポン返却メッセージ画面6を表示させ、キャッシャの操作により印字が指令された場合のみクーポン返却レシート5を印字するようにして、レシート用紙の節約を図るようにしてもよい。
また、前記実施の形態では、クーポン券のデータを入力可能な入力手段をバーコードスキャナ24として説明したが、入力手段はこれに限定されるものではない。例えば、RFIDタグ付のクーポン券を用いる場合には、入力手段としてRFIDタグリーダを使用すればよい。
また、前記実施の形態では、オペレータ用ディスプレイ18に返却クーポン券があることを示すメッセージ画面6を表示させることによって、返却クーポンがあることをオペレータに報知するようにしたが、報知手段はこれに限定されるものではなく、ブザー音などによりキャッシャに報知するものであってもよい。
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
1…POS端末、2…ホスト装置、3…商品テーブル、4…クーポンテーブル、5…クーポン返却レシート、11…CPU、12…ROM、13…RAM、15…通信コントローラ、16…キーボード、18…オペレータ用ディスプレイ、20…客用ディスプレイ、22…プリンタ、24…スキャナ。