以下に図面を参照して、本実施形態について説明する。図1は、本実施形態の概要を説明する図である。
本実施形態のサーバ100は、電子決済サービスのユーザが店舗を訪れて、電子決済サービスを用いて商品を購入した場合に、店舗で管理されている商品管理情報と、商品購入時の決済情報とを取得し、ユーザを特定する情報と、商品購入情報に含まれる商品情報と、決済情報に含まれるユーザを特定する情報とを対応付ける。
電子決済サービスとは、1以上のユーザが、現金を用いずに金銭または金銭相当物の授受ができるサービスであり、限定でなく例として、一次元コード(バーコードなど)、二次元コード(QRコード(登録商標)など)(以下で、一次元コードおよび二次元コードをまとめて「二次元コード等」と総称する。)、近距離無線通信(NFC (Near Field Communication)、BLE(Bluetooth(登録商標) Low Energy)、Wi-Fi(登録商標)、超音波通信、赤外線通信など)を利用して決済を行うサービスや、クレジットカードを利用して決済を行うサービスを含む。電子決済サービスの提供者が管理する決済サーバ等において、決済情報が記録される。
電子決済サービスのユーザを特定する情報とは、電子決済サービスにおいてユーザが利用するアカウントを意味している。アカウントは、個人と対応付けられていてもよいし、法人等に対応付けられていてもよい。以下の説明では、ユーザを特定する情報を、ユーザIDとして説明する。
商品管理情報とは、商品IDと対応付けられた情報であり、個々の商品名、商品金額、商品IDが取得された日時を示す商品ID取得日時、商品金額を合計した合計金額、店舗を特定するための情報である店舗ID等を含む。商品管理情報は、後述する商品登録システム20によって管理される情報であり、サーバ100が、後述する通信端末230を介して商品登録システム20から取得する情報である。
商品IDとは、商品を特定するために各商品に付与された情報であり、バーコードから読み取られてもよいし、QRコードやRF(radio frequency)タグ等の非接触タグから読み取られてもよい。
商品情報とは、商品IDと、個々の商品名と、商品金額とが対応付けられた情報である。商品情報は、商品管理情報に含まれる。
決済情報とは、後述する決済用読み取り装置220から取得される情報に基づき、得られる情報である。決済情報は、電子決済サービスを利用したユーザを特定するためのユーザID、電子決済サービスにおいて決済された決済金額、決済が完了した日時等を含み、電子決済サービスの提供者によって取得される情報である。
本実施形態の商品登録システム20は、商品登録装置200、商品読み取り装置210、商品管理データベース400を含む。商品登録システム20は、例えば、POS(Point of sale)システム等である。
商品登録装置200は、例えば、レジスタ等である。商品読み取り装置210は、商品IDを読み取って商品登録装置200へ送信する。商品読み取り装置210は、例えば、バーコードリーダ等の2次元コード読み取り装置や、近距離無線通信を用いた読み取り装置であってもよい。商品管理データベース400は、商品情報が格納されたデータベースである。
また、本実施形態の商品登録装置200は、決済用読み取り装置220及び通信端末230と接続されている。
決済用読み取り装置220は、例えば、ICカードや端末1のディスプレイ等から、電子マネーと対応付けられたバーコードやQRコード等を読み取って、サーバ100へ送信する。決済用読み取り装置220は、複数種類の電子決済サービスに対応したものであってもよいし、電子決済サービスの種類毎に設けられていてもよい。また、本実施形態の決済用読み取り装置220は、バーコードリーダ等の2次元コード読み取り装置や、近距離無線通信を用いた読み取り装置であってもよい。
通信端末230は、商品登録装置200が取得した情報をサーバ100へ送信する。通信端末230は、商品登録装置200が取得した情報をサーバ100へ送信することができる機器であれば、どのような機器であってもよい。
尚、商品登録装置200が、商品登録装置200が取得した情報をサーバ100へ送信することができる場合には、通信端末230は設けられていなくても良い。商品登録装置200が、商品登録装置200が取得した情報をサーバ100へ送信できる場合とは、例外的な場合である。
サーバ100は、通信端末230から受信した情報に含まれる商品IDに基づき、商品管理データベース400から商品IDと対応する商品情報を取得し、取得した商品情報を、商品ID取得日時と店舗ID、合計金額と対応付けて商品管理情報とする。そして、サーバ100は、商品管理情報と決済情報とを突合させて、商品情報とユーザIDとを対応付ける。
以下に、その手順を説明する。
以下の説明では、端末1のユーザが、商品登録システム20が設置された店舗で、電子決済サービスを用いて、商品群2を購入する場合について説明する。
商品登録システム20において、商品登録装置200は、商品読み取り装置210により商品IDが読み取られると、商品管理データベース400を参照して対応する商品金額を取得し、商品IDと、商品ID取得日時と、商品金額の合計金額と、を通信端末230へ出力する(手順S1)。
尚、例えば、野菜や惣菜等のように、商品にバーコード等が取り付けられていない場合には、店員が、商品登録装置200に対して、商品名と商品金額を直接入力してもよい。このとき、商品登録装置200には、商品の個数も店員によって入力される。
通信端末230は、商品IDと、商品ID取得日時と、商品金額の合計金額に、通信端末230を特定する情報を対応付けて、サーバ100へ送信する(手順S2)。
また、商品登録システム20において、商品登録装置200は、商品金額の合計金額を端末1のユーザに提示すると共に、決済用読み取り装置220に出力する(手順S3)。
決済用読み取り装置220は、端末1がかざされて、端末1に表示されたQRコード等を読み取ることで、電子決済サービスのユーザIDを取得し、合計金額と、ユーザIDと、決済用読み取り装置220を特定する情報とを、サーバ100へ送信する(手順S4)。
尚、ここでは、端末1に表示されたQRコードが決済用読み取り装置220に読み取られるものとしたが、これに限定されない。決済用読み取り装置220は、例えば、電子マネーがチャージされたICカードやクレジットカード等からユーザIDを取得してもよい。
サーバ100は、通信端末230から情報を受信すると、通信端末230を特定する情報を店舗IDに変換する。また、サーバ100は、商品管理データベース400から、商品IDと対応する商品情報を取得する。つまり、サーバ100は、商品管理データベース400から、商品IDと対応する商品名と商品金額を取得する。
そして、サーバ100は、商品ID取得日時、商品名、商品金額、店舗IDを対応付けて、商品管理情報101とする。サーバ100は、商品管理情報101を取得すると、この商品管理情報101に、商品ID取得日時に基づく付加情報を付与した第1突合対象情報として保管する。付加情報の詳細は後述する。
また、サーバ100は、決済用読み取り装置220から情報を受信した後に、電子決済サービスを提供する決済サーバから決済完了の通知を受け付けると、決済用読み取り装置220を特定する情報を店舗IDへ変換する。そして、サーバ100は、合計金額を決済された決済金額とし、決済が完了した日時を示す決済完了日時と、ユーザIDとを対応付けた決済情報102を、第2突合対象情報として保管する。
本実施形態のサーバ100は、商品管理情報101を含む第1突合対象情報と、決済情報102を含む第2突合対象情報とを突合させ(手順S5)、両者に含まれる、商品の購入に関する共通の情報に基づき、ユーザIDと、購入された個々の商品の商品情報とを対応付ける。突合した結果の情報は、突合済み情報103としてサーバ100に格納される。
尚、図1に示す第1突合対象情報101、第2突合対象情報102、突合済み情報103は、一例であり、これに限定されない。これらの情報には、図1に示す情報の項目以外の項目が含まれてよいが、ここでは概要説明のため、簡略化している。第1突合対象情報、第2突合対象情報、突合済み情報の詳細は、後述する。
このように、本実施形態のサーバ100は、商品管理情報と、決済情報とを取得し、それぞれに共通の情報に基づき、ユーザIDと、購入された個々の商品の商品情報とを対応付けている。
言い換えれば、サーバ100は、商品登録システム20が設置された店舗において、購入予定の商品の商品IDに紐付いた商品管理情報と、購入予定の商品の決済が完了したときに取得される決済情報と、のそれぞれに含まれる、商品の購入に関する共通の情報に基づき、決済情報に含まれるユーザIDと、商品管理情報に含まれる商品情報とを対応付ける。
商品管理情報と、決済情報とにおける、商品の購入に関する共通の情報とは、店舗を特定する情報である店舗ID、商品が購入された日時に関する情報である商品ID取得日時と決済完了日時、商品の購入金額に関する情報である個々の商品の金額又は商品の合計金額と決済された決済金額である。尚、商品の合計金額は、例外的に、サーバ100が商品登録装置200から情報を取得できた場合に得られる情報であり、商品の合計金額が取得できない場合には、商品の合計金額自体が、突合処理によって得られる情報となる。
言い換えれば、商品管理情報と、決済情報とにおいて、商品の購入に関する共通する情報とは、商品の購入日時を示す情報、前記商品の購入金額を示す情報、前記商品が購入された位置を特定する情報である。
本実施形態では、このように、商品登録システム20が設置された実店舗において、商品を購入した購入者と、購入者が購入した個々の商品情報とを対応付けることができる。
このため、本実施形態によれば、例えば、ユーザ毎の購入履歴が通信によって取得できない場合であっても、この店舗で商品を購入した購入者の端末1に、店舗で取り扱っている商品の広告情報を、ネットワークを介して通知することができる。
具体的には、例えば、ある店舗において、電子決済サービスを用いてビールを購入した購入者がいたとする。この場合、この店舗では、この購入者を特定するユーザIDと、この購入者が購入したビールに関する商品情報とが対応付けられている。したがって、この店舗は、この購入者に対し、店舗で取り扱っているビールに関する広告情報を、例えば、購入者の端末に通知し、表示させることができる。
したがって、本実施形態によれば、オンライン上に商品管理データベースが設けられていない店舗であっても、あたかもオンライン上に商品管理データベースが設けられているかのように、商品の購入者に広告情報を通知することができる。
さらに、本実施形態では、従来から店舗で管理されていた商品管理情報と、店舗に導入されている電子決済サービスを購入者が利用する際に取得される決済情報と、を用いて購入者と商品情報の対応付けを行っている。
言い換えれば、本実施形態では、店舗が保有している既存の資源を用いて、購入者と商品情報の対応付けを行う。したがって、本実施形態では、店舗側に新たな作業を発生させることがない。このため、本実施形態は、商品登録システムと商品管理データベースを有している店舗であれば、どのような店舗にも適用することができる。
さらに、本実施形態では、突合済み情報を端末1に提供することも考えられる。この場合、端末1のユーザは、電子決済サービスを用いて購入した商品の内訳を知ることができる。したがって、端末1のユーザは、例えば、家計簿等を作成する際に、端末1によって、購入した商品の内訳が記載されているレシートの写真を撮像し、レシートの画像から商品名を読み取らせる、と言った煩雑な操作を行う必要がなくなる。
以下に、本実施形態について、更に説明する。図2は、情報処理システムのシステム構成の一例を示す図である。
本実施形態の情報処理システム300は、サーバ100と、商品登録システム20と、商品管理データベース400、決済サーバ500とを含む。尚、図2の例では、情報処理システム300は、商品管理データベース400や決済サーバ500を含むものとしたが、これに限定されず、商品管理データベース400と決済サーバ500は、情報処理システム300に含まれなくてもよい。
本実施形態のサーバ100は、対応付けデータベース110、第1突合対象情報データベース120、第2突合対象情報データベース130、突合済み情報データベース140、情報処理部150を有する。
本実施形態の対応付けデータベース110は、商品登録システム20と店舗とを対応づけるための情報等が格納されている。対応付けデータベース110は、予めサーバ100に設けられていてもよい。第1突合対象情報データベース120は、情報処理部150の処理によって取得される第1突合対象情報が格納される。第2突合対象情報データベース130は、情報処理部150の処理によって取得される第2突合対象情報が格納される。突合済み情報データベース140は、情報処理部150の処理によって生成される突合済み情報が格納される。各データベースの詳細は後述する。
情報処理部150は、対応付けデータベース110、第1突合対象情報データベース120、第2突合対象情報データベース130、商品管理データベース400を参照し、第1突合対象情報と第2突合対象情報とに基づき、突合済み情報を生成し、突合済み情報データベース140に格納する。
尚、以下に説明する実施形態では、突合済み情報を、突合済み情報データベース140に格納するものとしたが、これに限定されない。第1突合対象情報と第2突合対象情報とを突合した結果は、例えば、第1突合対象情報データベース120内で、突合の結果として特定されたユーザIDを第1突合対象情報と対応付ける形式で格納されてもよい。
この場合、第1突合対象情報データベース120において、商品情報とユーザIDとが対応付けられて蓄積されるため、突合済み情報データベース140を有していなくてもよい。
また、商品管理データベース400に格納された商品情報は、予めサーバ100内に取り込まれていてもよい。商品管理データベース400の詳細は後述する。
決済サーバ500は、サーバ100からの決済可否の判定を要求されると、決済の可否を判定し、その結果をサーバ100へ送信する。
次に、図3を参照して、本実施形態のサーバ100のハードウェア構成について説明する。図3は、サーバのハードウェア構成の一例を示す図である。
本実施形態のサーバ100は、それぞれバスBで相互に接続されている入力装置11、出力装置12、ドライブ装置13、補助記憶装置14、メモリ装置15、演算処理装置16及びインターフェース装置17を含む情報処理装置である。
入力装置11は、各種の情報の入力を行うための装置であり、例えばキーボードやポインティングデバイス等により実現される。出力装置12は、各種の情報の出力を行うためものであり、例えばディスプレイ等により実現される。インターフェース装置17は、LANカード等を含み、ネットワークに接続する為に用いられる。
後述する情報処理プログラムは、サーバ100を制御する各種プログラムの少なくとも一部である。情報処理プログラムは、例えば記憶媒体18の配布やネットワークからのダウンロード等によって提供される。情報処理プログラムを記録した記憶媒体18は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記憶媒体、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等、様々なタイプの記憶媒体を用いることができる。
また、情報処理プログラムは、情報処理プログラムを記録した記憶媒体18がドライブ装置13にセットされると、記憶媒体18からドライブ装置13を介して補助記憶装置14にインストールされる。ネットワークからダウンロードされた情報処理プログラムは、インターフェース装置17を介して補助記憶装置14にインストールされる。
補助記憶装置14は、インストールされた情報処理プログラムを格納すると共に、各データベースや、必要なファイル、データ等を格納する。メモリ装置15は、サーバ100の起動時に補助記憶装置14から情報処理プログラムを読み出して格納する。そして、演算処理装置16はメモリ装置15に格納された情報処理プログラムに従って、後述するような各種処理を実現している。
次に、図4を参照して、本実施形態の対応付けデータベース110について説明する。図4は、対応付けデータベースの一例を示す図である。
本実施形態の対応付けデータベース110は、商品登録システム20に含まれる各装置と店舗を対応付ける対応付け情報110−1、110−2と、決済用読み取り装置220と店舗とを対応付ける対応付け情報110−3と、を含む。また、対応付けデータベース110は、決済手段IDと決済手段名とを対応付ける対応付け情報110−4を含む。
対応付け情報110−1は、情報の項目として、通信端末IDと、店舗IDとを有する。通信端末IDは、通信端末230を特定するための識別情報であり、店舗IDは、店舗を特定するための識別情報である。
対応付け情報110−2は、情報の項目として、商品登録装置IDと、店舗IDとを有する。商品登録装置IDは、商品登録装置200を特定するための識別情報である。
対応付け情報110−3は、情報の項目として、決済用読み取り装置IDと、店舗IDとを有する。決済用読み取り装置IDは、決済用読み取り装置220を特定するための識別情報である。
対応付け情報110−4は、情報の項目として、決済手段IDと、決済手段名とを有する。決済手段IDは、商品の購入者が利用する電子決済サービスの種類を特定する識別情報である。電子決済サービスの種類とは、例えば、クレジットカード決済や、電子マネーによる決済、スマートフォン等の携帯端末を用いたモバイル決済等である。決済手段名は、電子決済サービスの名称を示す情報である。
次に、図5を参照して、本実施形態の商品管理データベース400について説明する。図5は、商品管理データベースの一例を示す図である。
本実施形態の商品管理データベース400は、例えば、店舗ID毎に設けられていてもよい。商品管理データベース400は、情報の項目として、商品ID、商品名、商品金額を有し、項目「商品ID」と、その他の項目とが対応付けられている。
項目「商品ID」の値は、商品を特定するための識別情報であり、項目「商品名」の値は、商品の名称を示し、項目「商品金額」の値は、商品の単価を示す。
次に、図6を参照して、本実施形態のサーバ100の有する情報処理部150の機能について説明する。本実施形態の情報処理部150は、サーバ100の演算処理装置16が、メモリ装置15等に格納されたプログラムを読みだして実行することで実現される。
図6は、サーバの機能を説明する図である。本実施形態のサーバ100の情報処理部150は、商品管理情報取得部510、決済情報取得部520、情報付加部530、突合処理部540、対応付け部550を有する。
本実施形態の商品管理情報取得部510は、商品登録システム20から、通信端末230を介して商品管理情報を取得する。具体的には、商品管理情報取得部510は、商品登録システム20から、商品管理情報に含まれる商品ID、商品ID取得日時、通信端末ID等を取得し、商品管理データベース400から商品IDと対応した商品情報を取得する。
決済情報取得部520は、決済情報を取得する。具体的には、決済情報取得部520は、決済用読み取り装置220から、電子決済サービスのユーザID、決済金額、決済用読み取り装置220を特定する決済用読み取り装置IDを取得する。また、決済情報取得部520は、決済サーバ500から決済完了日時を取得する。
情報付加部530は、商品管理情報に対して、突合処理部540による処理で参照するための情報を付加し、第1突合対象情報とする。
情報付加部530によって付加される情報は、ある商品IDと対応する商品と、その商品の前後の購入された商品とが、同一の購入者であるか否かを判定する際に参照される情報である。以下の説明では、情報付加部530によって付加される情報を、別客IDと呼ぶ。情報付加部530の処理の詳細は後述する。
突合処理部540は、第1突合対象情報データベース120に格納された第1突合対象情報と、第2突合対象情報データベース130に格納された第2突合対象情報と、を突合させて、第1突合対象情報と第2突合対象情報が対応付けられるか否かを判定する。
突合処理部540は、情報抽出部560、情報判定部570、別客ID突合部580、購入履歴判定部590を有する。
情報抽出部560は、第1突合対象情報データベース120と第2突合対象情報データベース130から同一店舗において、一定の時間の間に取得された、第1突合対象情報と第2突合対象情報とを抽出する。
情報判定部570は、抽出した第1突合対象情報と第2突合対象情報に基づき、第1突合対象情報と第2突合対象情報から、電子決済サービスを用いて商品を購入した購入者のユーザIDと商品情報とが対応付けられるか否かを判定する。
別客ID突合部580は、情報判定部570によって、ユーザIDと商品情報とが対応付けられないと判定された場合に、第1突合対象情報に含まれる別客IDを用いて、電子決済サービスを用いて商品を購入した購入者のユーザIDと商品情報とが対応付けられるか否かを判定する。
購入履歴判定部590は、別客ID突合部580によって、ユーザIDと商品情報とが対応付けられないと判定された場合に、ユーザIDと対応する購入履歴に基づき、商品の購入者と商品情報とが対応付けられるか否かを判定する。
対応付け部550は、突合処理部540による突合の結果、第1突合対象情報と第2突合対象情報とが対応付けられると判定された場合に、第1突合対象情報に含まれる商品情報と、第2突合対象情報に含まれるユーザIDとを対応付ける。そして、対応付け部550は、対応付けた結果を、突合済み情報として、突合済み情報データベース140に格納する。
また、本実施形態では、対応付け部550は、商品情報とユーザIDとに、商品ID取得日時や決済完了日時等の、商品を購入した時間帯を示す情報を対応付ける。したがって、突合済み情報には、ユーザID、商品情報、商品を購入した時間帯を示す情報が含まれる。
次に、図7を参照して、本実施形態の情報付加部530によって、商品管理情報に付加される別客IDについて説明する。図7は、別客IDについて概念的に説明する図である。
図7の例では、商品登録システム20が設置された店舗において、購入者P1が、2つの商品を購入し、その次に、購入者P2が3つの商品を購入し、その次に、購入者P3が3つの商品を購入した場合を示している。
この場合、サーバ100は、購入者P1が購入した2つの商品について、商品ID71、72を取得し、次に、購入者P2が購入した3つの商品の商品ID73、74、75を取得し、次に、購入者P3が購入した3つの商品の商品ID76、77、78を取得する。
本実施形態の情報付加部530では、ある商品IDの商品ID取得日時から、次に商品IDの商品ID取得日時までの間隔に、2種類の閾値を設け、各閾値と対応した2種類の別客ID1、別客ID2を商品IDに付加する。
情報付加部530は、ある商品IDの商品ID取得日時から、次に商品IDを取得したときの商品ID取得日時までの間隔が、2種類の閾値のうち、第1の閾値未満である場合、これらの商品IDと対応する複数の商品は、同一の購入者によって購入されたものと判定する。第1の閾値とは、例えば、15秒程度である。
したがって、情報付加部530は、ある商品IDの商品ID取得日時から、次に商品IDを取得したときの商品ID取得日時までの間隔が第1の閾値未満である場合、これらの商品IDに同一の別客ID1を付加し、第1の閾値以上である場合には、それぞれに異なる別客ID1を付加する。
また、情報付加部530は、ある商品IDの商品ID取得日時から、次に商品IDを取得したときの商品ID取得日時までの間隔が、2種類の閾値のうち、第2の閾値以上である場合、これらの商品IDと対応する複数の商品は、別々の購入者によって購入されたものと判定する。第2の閾値とは、例えば、3分程度である。つまり、第2の閾値は、第1の閾値よりも値の大きい閾値である。
したがって、情報付加部530は、ある商品IDの商品ID取得日時から、次に商品IDを取得したときの商品ID取得日時までの間隔が第2の閾値以上である場合、これらの商品IDに異なる別客ID2を付加し、第2の閾値未満である場合には、それぞれに同一の別客ID2を付加する。
つまり、別客ID1と別客ID2とは、複数の商品が同一の購入者によって購入された商品であるか否かを判定する際に参照される第1付加情報と、第2付加情報である。
本実施形態の別客ID突合部580は、始めに、別客ID1が一致する商品IDが示す商品を、同一の購入者によって購入されたものとして、第1突合対象情報に含まれる商品情報と、第2突合対象情報に含まれるユーザIDとが対応付けられるか否かを判定する。
そして、別客ID突合部580は、別客ID1が一致する場合であっても、ユーザIDと商品情報とが対応付けられないと判定された場合に、別客ID2が一致する商品のうち、別客ID1の組み合わせ毎に、同一の購入者によって購入されたものとして、ユーザIDと対応付けられるか否かを判定する。
図7の例では、サーバ100が商品ID71を取得した時刻から、商品ID72を取得した時刻までの間隔は、15秒未満である。したがって、情報付加部530は、商品ID71と商品ID72のそれぞれに、同一の別客ID1「100」を付加する。
また、商品ID71を取得した時刻から、商品ID72を取得した時刻までの間隔は、3分未満でもある。したがって、情報付加部530は、商品ID71と商品ID72のそれぞれに、同一の別客ID2「500」を付加する。
また、サーバ100が商品ID72を取得した時刻から、商品ID73を取得した時刻までの間隔は、15秒以上であり、3分未満である。したがって、情報付加部530は、商品ID73に対し、商品ID72と異なる別客ID1「101」を付加し、別客ID2は、商品ID72と同様の「500」を付与する。
また、図7の例では、サーバ100が商品ID75の商品ID取得日時から、商品ID76を商品ID取得日時までの間隔は、3分以上である。したがって、情報付加部530は、商品ID76に対し、商品ID75の別客ID1「102」と異なる別客ID1「103」と、商品ID75の別客ID2「500」と異なる別客ID2「501」と、を付加する。
以上のように、本実施形態では、第1付加情報(別客ID1)と第2付加情報(別客ID2)とを商品IDに付加することで、同一の購入者に購入された可能性が高い商品と、別々の購入者に購入された可能性が高い商品とを区別している。
次に、図8を参照して、本実施形態の情報処理システム300の動作について説明する。図8は、情報処理システムの動作を説明するシーケンス図である。
本実施形態では、ステップS801からステップS823までの処理によって、第1突合対象情報が生成される。したがって、ステップS801からステップS823までの処理は、第1突合対象情報を生成する処理と言える。第1突合対象情報の詳細は後述する。
ステップS801からステップS807までの処理は、商品読み取り装置210が商品IDを読み取ったときの商品読み取り装置210と通信端末230の動作を示す。
本実施形態の情報処理システム300において、商品読み取り装置210は、購入者Pによる購入予定の商品から商品IDを読み取り(ステップS801)、商品IDを取得する(ステップS802)。このとき、商品読み取り装置210は、商品IDを取得した日時を示す商品ID取得日時を取得する(ステップS803)。
続いて、商品読み取り装置210は、商品IDと、商品ID取得日時と、を通信端末230へ送信する(ステップS804)。また、商品読み取り装置210は、商品IDを商品登録装置200へ送信する(ステップS805)。
通信端末230は、商品読み取り装置210から商品IDと商品ID取得日時を取得すると、商品IDと商品ID取得日時をサーバ100へ送信する(ステップS806)。また、通信端末230は、自機の通信端末IDをサーバ100へ送信する(ステップS807)。
また、本実施形態では、「サーバ100が、商品登録装置200から、商品登録装置200に入力された情報を取得することが可能である」という条件が満たされる場合には、ステップS816からステップS822までの処理Bを行い、ステップS804、805、807の処理は行わない。
ステップS808からステップS813までは、サーバ100が商品IDを受信したときのサーバ100の動作を示す。
サーバ100は、商品IDと、商品ID取得日時と、通信端末IDとを受信すると、商品管理情報取得部510により、これらの情報を第1突合対象情報データベース120に格納する(ステップS808)。
また、サーバ100は、商品登録システム20において、商品ID取得日時が取得されなかった場合には、処理Aを実行する。処理Aにおいて、サーバ100は、商品管理情報取得部510により、サーバ100が商品IDを受信した日時を商品ID取得日時として、第1突合対象情報データベース120に格納する(ステップS809)。
次に、サーバ100は、商品管理情報取得部510により、対応付け情報110の対応付け情報110−1を参照し、第1突合対象情報データベース120に格納された通信端末IDを、店舗IDに変換する(ステップS810)。
続いて、サーバ100は、商品管理情報取得部510により、商品管理データベース400へ商品IDと対応する商品情報の取得要求を行い(ステップS811)、該当する商品情報を取得する(ステップS812)。
続いて、サーバ100は、商品管理情報取得部510により、取得した商品情報を、商品IDと対応付けて第1突合対象情報データベース120に格納する(ステップS813)。
尚、図8では、購入者Pの商品の購入時に、サーバ100において、商品IDと商品情報の対応付けが行われるものとしたが、これに限定されない。例えば、店舗に商品が入荷された際に、店舗のスタッフ等によって、商品読み取り装置210により商品IDが読み取られてサーバ100へ送信され、サーバ100において、商品IDと商品情報との対応付けが行われてもよい。また、本実施形態では、サーバ100が、予め商品管理データベース400をサーバ100内に取得しておいてもよい。
ステップS814からステップS816までは、商品登録装置200が商品IDを取得したときの商品登録装置200の動作を示す。
商品登録装置200は、商品IDを取得した後に、商品の購入個数の入力を受け付ける(ステップS814)。また、商品登録装置200は、商品IDと、商品IDと対応する商品の購入個数との入力を受け付ける(ステップS815)。
続いて、商品登録装置200は、合計金額を求め、決済用読み取り装置220へ合計金額を通知する(ステップS816)。
商品登録装置200は、商品IDと購入個数とを、サーバ100へ送信する(ステップS817)。また、商品登録装置200は、決済手段を特定する決済手段IDをサーバ100へ送信する(ステップS818)。続いて、商品登録装置200は、商品登録装置200の商品登録装置IDをサーバ100に送信する(ステップS819)。
サーバ100は、商品管理情報取得部510により、商品登録装置200から受信した商品ID、購入個数、決済手段IDを第1突合対象情報データベース120に格納する(ステップS820)。
続いて、サーバ100は、商品管理情報取得部510により、商品登録装置200から情報を受信した日時を商品ID取得日時として、第1突合対象情報データベース120に格納する(ステップS821)。
続いて、サーバ100は、商品管理情報取得部510により、対応付けデータベース110の対応付け情報110−2、110−3を参照して、商品登録装置IDを店舗IDへ変換し、決済手段IDを決済手段名に変換する(ステップS822)。
次に、サーバ100は、情報付加部530により、前回商品IDを取得したときの商品ID取得日時から今回の商品IDの商品ID取得日時までの間隔が第一の閾値以上である場合、第1突合対象情報データベース120において、この商品IDに、前回取得した商品IDに付与した別客ID1をインクリメントした値を付与する(ステップS823)。
また、サーバ100は、情報付加部530により、前回商品IDを取得したときの商品ID取得日時から今回の商品IDの商品ID取得日時までの間隔が第二の閾値以上である場合、第1突合対象情報データベース120において、この商品IDに、前回取得した商品IDに付与した別客ID2をインクリメントした値を付与する(ステップS824)。
本実施形態では、ステップS825からステップS839までの処理により、第2突合対象情報が生成される。したがって、ステップS825からステップS839までの処理は、第2突合対象情報を生成する処理と言える。第2突合対象情報の詳細は後述する。
ステップS825からステップS829までの処理は、決済用読み取り装置220の動作を示す。
決済用読み取り装置220は、商品登録装置200から支払い金額を取得すると、支払い金額を購入者Pに対して提示する(ステップS825)。決済用読み取り装置220は、購入者Pから、決済手段の提示を受け付ける(ステップS826)。尚、決済手段の提示とは、具体的には、購入者Pの端末に表示されたQRコードや、クレジットカード、電子マネーがチャージされたICカード等が提示されることを示す。
続いて、決済用読み取り装置220は、電子決済サービスを利用する購入者Pを特定するユーザIDを取得し、サーバ100へ送信する(ステップS827)。また、決済用読み取り装置220は、電子決済サービスで決済される決済金額(支払い金額)をサーバ100へ送信する(ステップS828)。
さらに、決済用読み取り装置220は、決済用読み取り装置IDをサーバ100に送信し(ステップS829)、提示された決済手段IDをサーバ100へ送信する(ステップS830)。
尚、本実施形態では、サーバ100が決済用読み取り装置220から直接情報を取得できない場合には、決済用読み取り装置220がステップS827からステップS830で取得した情報は、決済用読み取り装置220を管理する外部サーバへ送信されてもよい。
この場合、サーバ100は、この外部サーバに対して、情報の取得要求を行ってもよい。具体的には、例えば、決済用読み取り装置220は、購入者Pから決定手段の提示を受けて、決済用読み取り装置IDをサーバ100へ通知し、サーバ100は、この決済用読み取り装置IDと対応付く情報の取得要求を外部サーバへ行ってもよい。
ステップS831からステップS839までは、サーバ100が決済用読み取り装置220から情報を受信した後のサーバ100の動作を示す。
サーバ100は、決済用読み取り装置220から受信したユーザID、決済金額、決済用読み取り装置ID、決済手段IDを第2突合対象情報データベース130に格納する(ステップS831)。
続いて、サーバ100は、決済情報取得部520により、対応付けデータベース110の対応付け情報110−4を参照して、第1突合対象情報データベース120における、決済手段IDを決済手段名へ変換する(ステップS832)。
続いて、サーバ100は、決済情報取得部520により、決済用読み取り装置220から情報を取得した日時を決済情報取得日時として第1突合対象情報データベース120に格納する(ステップS833)。
続いて、サーバ100は、決済情報取得部520により、対応付けデータベース110対応付け情報110−3を参照して、第2突合対象情報データベース130における、決済用読み取り装置IDを店舗IDへ変換する(ステップS834)。
続いて、サーバ100は、決済情報取得部520により、決済サーバ500に対して決済の可否の判定を要求し(ステップS835)、決済サーバ500から決済完了の通知を受け付ける(ステップS836)。
続いて、サーバ100は、決済情報取得部520により、決済完了の通知を受け付けた日時を、決済完了日時として、第2突合対象情報データベース130に格納する(ステップS837)。
続いて、サーバ100は、決済情報取得部520により、決済完了の通知を決済用読み取り装置220へ送信し(ステップS838)、決済用読み取り装置220は、決済の完了の通知を購入者Pに通知する(ステップS839)。
サーバ100は、第1突合対象情報と第2突合対象情報が生成されると、突合処理部540によって第1突合対象情報と第2突合対象情報を突合させて、購入者と商品情報との対応付けを行い(ステップS839)、処理を終了する。
尚、図8では、突合処理部540によるステップS839の処理は、購入者Pによる商品の購入時の一連の処理の1つとしているが、これに限定されない。突合処理部540による処理は、購入者が商品を購入するタイミングと無関係に、任意のタイミングで実行されてもよい。例えば、突合処理部540の処理は、予め決められた時刻となったときに実行されてもよいし、定期的に実行されてもよいし、店舗側からのリクエスト等に応じて実行されてもよい。突合処理部540の処理の詳細は後述する。
次に、図9乃至図11を参照して、第1突合対象情報と第2突合対象情報の生成の手順について説明する。始めに、図9と図10を参照して、図8の処理Bが実行されない場合の第1突合対象情報と、処理Bが実行された場合の第1突合対象情報と、について説明する。
図9は、第1突合対象情報の生成の手順を説明する第一の図である。図9に示す例は、図8において、処理Bが行われない場合における第1突合対象情報の生成の手順の例を示している。
図9(A)は、図8のステップS807において、第1突合対象情報データベース120に格納されている情報120−Aを示している。ここでは、第1突合対象情報データベース120には、商品読み取り装置210から取得した商品ID、通信端末ID、商品ID取得日時を含む情報120−Aが格納される。
尚、情報120−Aにおいて、商品ID取得日時として、「20181003124508」と示される場合には、2018年10月31日12時45分08秒という日時を示している。
図9(B)は、図8のステップS812において第1突合対象情報データベース120に格納されている情報120−Bを示している。
情報120−Bには、商品管理データベース400から取得された商品情報が、情報120−Aに追加されている。また、情報120−Bでは、通信端末IDが店舗IDに変換されている。
したがって、情報120−Bは、商品ID、店舗ID、商品ID取得日時、商品名、商品金額を含む。
図9(C)は、図8のステップS823において第1突合対象情報データベース120に格納された情報120−Cを示している。つまり、情報120−Cは、本実施形態の第1突合対象情報の一例である。
情報120−Cには、情報120−Bに加えて、別客ID1と別客ID2とが付与されている。したがって、情報120−Cは、商品ID、店舗ID、商品ID取得日時、商品名、商品金額、別客ID1、別客ID2を含む。
つまり、情報120−Cは、商品ID、店舗ID、商品ID取得日時、商品名、商品金額を含む商品管理情報と、別客ID1、別客ID2とを含む情報となる。
図10は、第1突合対象情報が生成される手順を説明する第二の図である。図10に示す例は、図8において、処理Bが行われる場合における第1突合対象情報の生成の手順を示している。
図10(A)は、図8のステップS819において、第1突合対象情報データベース120に格納されている情報120−A′を示している。ここでは、第1突合対象情報データベース120には、商品ID、購入個数、商品登録装置IDを含む情報120−A′が格納される。
図10(B)は、図8のステップS821において第1突合対象情報データベース120に格納されている情報120−B′を示している。
情報120−B′では、サーバ100が商品登録装置200から、情報120−A′に対して、商品IDを取得した日時を示す商品ID取得時間が追加されている。また、情報120−A′では、商品登録装置IDを店舗IDに変換されており、決済手段IDが決済手段名に変換されている。
したがって、情報120−B′は、商品ID、購入個数、決済手段ID、店舗ID、商品ID取得時間を含む。
図10(C)は、図10のステップS823において第1突合対象情報データベース120に格納された情報120−C′を示している。つまり、情報120−C′は、本実施形態の第1突合対象情報の一例である。
情報120−C′には、情報120−B′に加えて、商品情報と、別客ID1と別客ID2とが付与されている。したがって、情報120−C′は、商品ID、購入個数、店舗ID、商品ID取得日時、商品名、商品金額、決済手段ID、別客ID1、別客ID2を含む。
つまり、情報120−C′は、商品ID、購入個数、決済手段ID、店舗ID、商品ID取得時間を含む商品管理情報と、別客ID1、別客ID2とを含む情報となる。
次に、図11を参照して、第2突合対象情報の生成の手順について説明する。図11は、第2突合対象情報の生成の手順について説明する図である。
図11(A)は、図8のステップS830において、第2突合対象情報データベース130に格納されている情報130−Aを示している。ここでは、第2突合対象情報データベース130には、ユーザID、決済金額、決済用読み取り装置ID、決済手段IDを含む情報130−Aが格納される。
図11(B)は、図8のステップS833において、第2突合対象情報データベース130に格納されている情報130−Bを示している。情報130−Bでは、情報130−Aに、情報130−Aを取得した日時を示す決済情報取得日時が追加されている。また、情報130−Aでは、決済用読み取り装置IDが店舗IDに変換されており、決定手段IDが決済手段名に変換されている。
図11(C)は、図8のステップS836において、第2突合対象情報データベース130に格納されている情報を示している。つまり、情報130−Cは、本実施形態の第2突合対象情報の一例である。
情報130−Cでは、情報130−Bに、決済が完了した日時を示す決済完了日時が追加されている。したがって、情報130−Cは、ユーザID、店舗ID、決済手段名、決済情報取得日時、決済完了日時を含む決済情報である。
次に、図12を参照して、突合処理部540による、図9乃至図11で生成の手順を説明した第1突合対象情報と第2突合対象情報との突合処理について説明する。図12は、突合処理部による処理を説明するフローチャートである。図12の処理は、図8のステップS839の処理の詳細を示している。
本実施形態のサーバ100において、突合処理部540は、情報抽出部560により、第1突合対象情報データベース120と第2突合対象情報データベース130とから、店舗IDが一致し、且つ、商品ID取得日時と決済完了日時との差が5分以内である第1突合対象情報と第2突合対象情報を抽出する(ステップS1201)。
尚、商品ID取得日時と決済完了日時との差は、5分以内に限定されない。ここでは、一人の購入者が商品の購入する際に、商品IDの読み取りから決済の完了までにかかる時間の上限を5分間とみなし、5分以内としている。
続いて、突合処理部540は、情報判定部570により、抽出した第1突合対象情報に、商品の購入個数と商品金額が含まれるか否かを判定する(ステップS1202)。言い換えれば、突合処理部540は、図8の処理Bが実行されたか否かを判定している。ステップS1202においてYesの場合とは、図8の処理Bが実行された場合である。
図8の処理Bが実行されると、第1突合対象情報に含まれる項目は、図10(C)に示す情報120−C′のようになる。したがって、情報判定部570は、抽出された第1突合対象情報が、図10(C)に示す情報120−C′が示す項目を含むか否かを判定している。
ステップS1202において、購入個数と商品金額が含まれない場合、突合処理部540は、後述するステップS1207へ進む。
ステップS1202において、購入個数と商品金額が含まれる場合、情報判定部570は、抽出した第1突合対象情報のうちの、ある第1突合対象情報について、商品の合計金額と同額の決済金額の決済を行ったユーザが一意に特定できるか判定する(ステップS1203)。言い換えれば、情報判定部570は、ある第1突合対象情報について、合計金額と、決済金額が一致する第2突合対象情報を一意に特定できるか否かを判定している。
ステップS1203において、一意に特定できる場合、後述するステップS1206へ進む。
以下に、ステップS1203について具体的に説明する。例えば、図10(C)に示すように、ある第1突合対象情報の商品名がおにぎりであり、商品金額が200円であり、購入個数が2個である場合、購入者が、200円のおにぎり2個のみを購入していれば、決済金額は400円となる。したがって、情報判定部570は、抽出した第2突合対象情報に、決済金額が400円の第2突合対象情報が1つ存在する場合には、商品名がおにぎりであり、商品金額が200円であり、購入個数が2個である第1突合対象情報について、第2突合対象情報を一意に特定できたものと判定し、後述するステップS1206へ進む。
また、情報判定部570は、決済金額が400円の第2突合対象情報が存在しない場合に、商品名がおにぎりであり、商品金額が200円であり、購入個数が2個である第1突合対象情報と対応する第2突合対象情報を一意に特定できないと判定し、ステップS1204へ進む。
この場合、購入者が、商品名がおにぎりであり、商品金額が200円であり、購入個数が2個である第1突合対象情報が示す商品以外の商品も、一緒に購入した場合が考えられる。つまり、この購入者は、1つ200円のおにぎり2つの他にも商品を購入したと考えられる。
つまり、ある第1突合対象情報と対応する第2突合対象情報が一意に特定されない場合とは、第1突合対象情報の1つのレコードから算出される合計金額と、決済金額が一致する第2突合対象情報が存在しない場合を示す。
ステップS1203において、一意に特定できない場合、情報判定部570は、抽出した第1突合対象情報と第2突合対象情報のそれぞれに決済手段名が含まれるか否かを判定する(ステップS1204)。ステップS1204において、決済手段名が含まれない場合、突合処理部540は、処理を終了する。
尚、この場合、突合処理部540は、後述する図15に示すように、ある第1突合対象情報に含まれる商品情報を抽出し、対応付けられるユーザIDが不明な突合済み情報として、突合済み情報データベース140に格納してもよい。
ステップS1204において、決済手段名が含まれる場合、突合処理部540は、情報判定部570により、ある第1突合対象情報と、決済手段名が一致する第2突合対象情報との組み合わせが一意に特定できるか否かを判定する(ステップS1205)。
以下に、ステップS1205について具体的に説明する。例えば、ある第1突合対象情報の決済手段名がSuica(登録商標)であったとする。この場合、情報判定部570は、抽出した第1突合対象情報の中から、決済手段名がSuica(登録商標)である第1突合対象情報を取得する。
ここでは、ある第1突合対象情報の商品名がおにぎりであり、商品金額が200円であり、購入個数が2個とし、決済手段名がSuica(登録商標)である他の第1突合対象情報の商品名がお茶であり、商品金額が150円であり、購入個数が1個とする。
この場合、おにぎりとお茶が同一の購入者によって購入された場合、決済金額は550円となる。したがって、情報判定部570は、決済金額が550円である第2突合対象情報が存在する場合に、商品名がおにぎりである第1突合対象情報と、商品名がお茶である第1突合対象情報と、決済金額が550円の第2突合対象情報とを一意に特定される組み合わせとする。
ステップS1205において、組み合わせが一意に特定できない場合、突合処理部540は、処理を終了する。一意に特定できない場合とは、決済手段名が一致している複数の第1突合対象情報のそれぞれから求められる合計金額の合算と、決済金額が一致する第2突合対象情報が存在しない場合である。
ステップS1205において、組み合わせが一意に特定できる場合、突合処理部540は、対応付け部550によって、ある第1突合対象情報に含まれる商品情報と、一意に特定された第2突合対象情報に含まれるユーザIDとを対応づけて、突合済み情報として突合済み情報データベース140に格納し(ステップS1206)、処理を終了する。
具体的には、対応付け部550は、特定された組み合わせにおける第1突合対象情報に含まれる商品情報として、「おにぎり、200円」と、「お茶、150円」とを抽出し、特定された組み合わせにおける第2突合対象情報に含まれるユーザIDと対応付ける。
ステップS1202において、第1突合対象情報に購入個数と商品金額が含まれない場合、つまり、第1突合対象情報が図9(C)に示す情報120−Cが示す項目を含む第1突合対象情報である場合、突合処理部540は、別客ID突合部580による処理を行う(ステップS1207)。ステップS1207の処理の詳細は後述する。
続いて、突合処理部540は、情報判定部570により、ステップS1207の処理を行った結果、計算式の解が単一であるか否かを判定する(ステップS1208)。この場合、第1突合対象情報に対応する第2突合対象情報が一意に特定されたことになるため、突合処理部540は、ステップS1206へ進む。
ステップS1208において、計算式の解が単一でない場合、突合処理部540は、購入履歴判定部590により、突合済み情報データベース140を参照し、第1突合対象情報が示す商品と一致する商品を、過去に購入したユーザが存在するか否かを判定する(ステップS1209)。
具体的には、購入履歴判定部590は、突合済み情報データベース140に蓄積された突合済み情報に、第1突合対象情報の商品IDが一致する商品IDと対応付けられたユーザIDが存在するか否かを判定している。
ステップS1209において、該当するユーザが存在しない場合、突合処理部540は、ユーザIDを不明として、第1突合対象情報の商品情報を突合済み情報データベース140へ格納し、処理を終了する。
ステップS1209において、該当するユーザが存在する場合、購入履歴判定部590は、過去の突合済み情報において、最も多く第1突合対象情報が示す商品と一致する商品を購入しているユーザが一意に特定できるか否かを判定する(ステップS1210)。尚、ここで特定されるユーザは、第1突合対象情報が示す商品と一致する商品の購入個数が最も多いユーザであってもよいし、該当する商品の購入回数が最も多いユーザであってもよい。
ステップS1210において、該当するユーザが特定される場合、突合処理部540は、特定されたユーザのユーザIDを含む第2突合対象情報を、第1突合対象情報と対応付けられる第2突合対象情報に特定し、ステップS1206へ進む。
ステップS1210において、該当するユーザが特定されない場合、突合処理部540は、購入履歴判定部590により、過去の突合済み情報において、最も多く第1突合対象情報が示す商品と一致する商品を購入しているユーザのうち、過去に、ステップS1201で抽出した第1突合対象情報に含まれる店舗IDによって特定される店舗で商品を購入した履歴があるユーザが一人特定できるか否かを判定する(ステップS1211)。
具体的には、購入履歴判定部590は、過去の突合済み情報から、最も多く第1突合対象情報が示す商品と一致する商品を購入しているユーザのユーザIDと決済完了日時とを抽出し、第2ソース情報データベース130を参照して、このユーザIDが商品を購入した店舗の店舗IDを特定し、ステップS1201で抽出した第1突合対象情報と一致するか否かを判定する。
ステップS1211において、該当するユーザが特定されない場合、突合処理部540は、ユーザIDを不明として、第1突合対象情報の商品情報を突合済み情報データベース140へ格納し、処理を終了する。
ステップS1211において、該当するユーザが特定された場合、特定されたユーザのユーザIDを含む第2突合対象情報を、第1突合対象情報と対応付けられる第2突合対象情報に特定し、ステップS1206へ進む。
本実施形態の突合処理部540は、図12に示す処理を、第1突合対象情報データベース120に格納された全ての第1突合対象情報と第2突合対象情報について行う。
次に、図13から図15を参照して、本実施形態の別客ID突合部580の処理について説明する。図13は、別客ID判定部の処理を説明するフローチャートである。図13は、図12のステップS1207の処理の詳細を示している。図14は、別客ID突合部の処理におけるデータの流れを示す第一の図であり、図15は、別客ID突合部の処理におけるデータの流れを示す第二の図である。
本実施形態の別客ID突合部580は、第1突合対象情報データベース120から、値が最も小さい別客ID1が付与された第1突合対象情報を抽出する(ステップS1301)。
図14(A)の第1突合対象情報121−Aは、図13のステップS1301で抽出された第1突合対象情報の一例を示す。第1突合対象情報121−Aにおいては、最も値の小さい別客ID1は、「100」である。
続いて、別客ID突合部580は、抽出した第1突合対象情報の商品ID取得日時のうち、最も遅い時刻から、5分以内に取得された第2突合対象情報を抽出する(ステップS1302)。
言い換えれば、別客ID突合部580は、抽出した各第1突合対象情報の商品ID取得日時のうち、最も遅い時刻から、所定の時間内に、決済完了日時が含まれる第2突合対象情報を抽出する。
ここでは、別客ID突合部580は、第1突合対象情報121−Aのうち、商品ID取得日時が最も遅い時刻であるレコードR1を特定し、レコードR1の商品ID取得日時から5分以内に取得された第2突合対象情報を抽出する。
図14(B)に示す第2突合対象情報131−Aは、ステップS1302において抽出された第2突合対象情報の一例を示す。
続いて、別客ID突合部580は、抽出した第2突合対象情報131−Aのうち、決済完了日時が早い順に、決済金額と購入個数の組み合わせとを算出する(ステップS1303)。
続いて、別客ID突合部580は、ステップS1303の結果として、整数解が得られたか否かを判定する(ステップS1304)。ステップS1304において、整数解が得られた場合には、図12のステップS1208へ進む。
具体的には、別客ID突合部580は、図14(A)、(B)に示す第1突合対象情報121−Aと第2突合対象情報131−Aを抽出すると、ステップS1303において、決済完了日時が早い第2突合対象情報131−Aから順に、購入個数の組み合わせを算出する。
例えば、第2突合対象情報131−Aにおいて、最も決済完了日時が早い決済金額は、350円である。また、第1突合対象情報121−Aでは、3種類の商品の商品金額が含まれる。そこで、別客ID突合部580は、3種類の商品それぞれの購入個数をn1、n2、n3とし、以下の式(1)を満たし、且つ、n1、n2、n3が整数となる解を求める。
n1×100+n2×200+n3×50=350 式(1)
ここで、n1、n2、n3が全て整数となる解が得られた場合には、別客ID突合部580は、図12のステップS1208へ進む。
つまり、本実施形態の別客ID突合部580は、別客ID1が一致する第1突合対象情報のレコード数と、第2突合対象情報の決済金額とに基づき、別客ID1が一致する第1突合対象情報に含まれる商品情報と、第2突合対象情報に含まれるユーザIDとを対応付けるか否かを判定している。
また、ここで、n1、n2、n3が全て整数となる解が得られない場合、別客ID突合部580は、ステップS1305へ進む。
ステップS1303の結果として、整数解が得られない場合には、別客ID突合部580は、第1突合対象情報データベース120から、値が最も小さい別客ID2が付与された第1突合対象情報を抽出する(ステップS1305)。
図14(C)の第1突合対象情報121−Bは、図13のステップS1305で抽出された第1突合対象情報の一例を示す。ここでは、値が最も小さい別客ID2が「500」である場合を示している。
続いて、別客ID突合部580は、ステップS1305で抽出した第1突合対象情報121−Bのうち、別客ID1の合計が最も小さい値となる第1突合対象情報を抽出する(ステップS1306)。
図14(D)の第1突合対象情報121−Cは、図13のステップS1306で抽出された第1突合対象情報の一例を示す。
第1突合対象情報121−Bには、別客ID1「100」、「101」、「102」が含まれる。このなかで、別客ID1の合計が最も小さい値となる組み合わせは、別客ID1「100」、「101」である。
よって、別客ID突合部580は、ステップS1306において、第1突合対象情報121−Bから、別客ID1「100」の第1突合対象情報と、別客ID1「101」の第1突合対象情報とを抽出する。
続いて、別客ID突合部580は、ステップS1306で抽出した第1突合対象情報121−Cのうち、商品ID取得日時が示す最も遅い時刻から5分以内に取得された第2突合対象情報を抽出し(ステップS1307)、ステップS1308へ進む。
図14(E)の第2突合対象情報131−Bは、図13のステップS1307で抽出された第2突合対象情報の一例を示す。
別客ID突合部580は、第1突合対象情報121−Cのうち、商品ID取得日時が最も遅い時刻を示すレコードR2を特定し、レコードR2の商品ID取得日時から5分以内に取得された第2突合対象情報131−Bを、ステップS1307で抽出する。
続いて、別客ID突合部580は、ステップS1307で抽出した第2突合対象情報131−Bのうち、決済完了日時が早い順に、決済金額と購入個数の組み合わせとを算出する(ステップS1308)。
続いて、別客ID突合部580は、ステップS1308の結果として、整数解が得られたか否かを判定する(ステップS1309)。ステップS1309において、整数解が得られた場合には、図12のステップS1208へ進む。
具体的には、別客ID突合部580は、図14(D)に示す第1突合対象情報121−Cと、図14(E)に示す第2突合対象情報131−Bを抽出すると、ステップS1308において、決済完了日時が早い第2突合対象情報131−Bから順に、購入個数の組み合わせを算出する。
例えば、第2突合対象情報131−Bにおいて、最も決済完了日時が早い決済金額は、500円である。また、第1突合対象情報121−Cでは、5種類の商品の商品金額が含まれる。そこで、別客ID突合部580は、5種類の商品それぞれの購入個数をn1、n2、n3、n4、n5とし、以下の式(2)を満たし、且つ、n1、n2、n3、n4、n5が整数となる解を求める。
n1×100+n2×200+n3×50+n4×120+n5×300
=500 式(2)
ここで、n1、n2、n3、n4、n5が全て整数となる解が得られた場合には、別客ID突合部580は、図12のステップS1208へ進む。
つまり、本実施形態の別客ID突合部580は、別客ID2が一致する第1突合対象情報から、別客ID1が特定の条件を満たすように抽出された第1突合対象情報の数と、第2突合対象情報の決済金額とに基づき、別客ID2が一致する第1突合対象情報に含まれる商品情報と、第2突合対象情報に含まれるユーザIDとを対応付けるか否かを判定している。
別客ID突合部580は、n1、n2、n3、n4、n5が全て整数となる解が得られない場合、ステップS1310へ進む。
ステップS1309において、整数解がでない場合、別客ID突合部580は、突合済み情報データベース140に格納された突合済み情報を、商品ID取得日時の順にソートする(ステップS1310)。
続いて、別客ID突合部580は、ユーザIDが不明とされた突合済み情報と、この突合済み情報の前後の、ユーザIDが判明している突合済み情報と、を抽出する(ステップS1311)。
図15(A)は、ソート後の突合済み情報データベース140の一例を示す。
本実施形態の突合済み情報データベース140は、情報の項目として、商品ID、正目品名、商品金額、商品ID取得日時、ユーザIDを含む。尚、突合済み情報データベース140が有する情報の項目は、図15(A)の例に限定されない。突合済み情報データベース140は、少なくとも商品情報とユーザIDとが含まれれば良く、図15(A)に示す項目以外の項目が含まれていてもよい。
別客ID突合部580は、ステップS1311において、突合済み情報データベース140から、項目「ユーザID」の値が不明であり、且つ、前後のユーザIDが決まっている突合済み情報を抽出する。
図15(A)の例では、レコードR3、R4のユーザIDが不明であり、レコードR3の前のユーザIDと、レコードR4の後のレコードR6のユーザIDとが決まっている。
よって、別客ID突合部580は、突合済み情報データベース140から、レコードR3、R4、R5、R6を抽出する。
続いて、別客ID突合部580は、第2突合対象情報データベース130を決済完了日時の順にソートする(ステップS1312)。
図15(B)の第2突合対象情報131−Cは、決済完了日時の順にソートされた第2突合対象情報の例を示している。
図15(B)の第2突合対象情報131−Cは、決済完了日時と、レコードR3、R4、R5、R6の商品ID取得日時との差が所定の時間内となる第2突合対象情報を示している。
尚、ここでの所定の時間とは、予めサーバ100の管理者等によって設定されていても良い。ここでは、レコードR3、R4、R5、R6と対応付ける第2突合対象情報を特定することを目的としている。したがって、ここでの所定の時間内は、商品IDの読み取りから決済の完了までにかかる時間の上限を5分間とみなし、5分以内としている。
続いて、別客ID突合部580は、抽出した突合済み情報と、ソートした第2突合対象情報とを照合し、ユーザ情報が不明とされた突合済み情報と対応する第2突合対象情報を特定し、特定した第2突合対象情報からユーザIDを抽出する(ステップS1313)。
図15(B)の第2突合対象情報131−Cにおいて、レコードR7のユーザIDは、突合済み情報データベース140のレコードR5のユーザIDと一致しており、レコードR7の決済完了日時は、レコードR5の商品ID取得日時から所定の時間(5分)以内である。したがって、レコードR7のユーザID「100010」は、突合済み情報データベース140において、レコードR5と対応付けられている。
同様に、第2突合対象情報131−Cにおいて、レコードR8のユーザIDは、突合済み情報データベース140のレコードR6のユーザIDと一致しており、レコードR8の決済完了日時は、レコードR6の商品ID取得日時から5分以内である。したがって、レコードR8は、レコードR6と対応付けられた第2突合対象情報である。
これらの関係から、突合済み情報データベース140のレコードR3、R4は、第2突合対象情報131−CにおけるレコードR7とレコードR9の間の時間帯に取得されたレコードR8に対応する可能性が高い。
図15の例では、第2突合対象情報131−CにおけるレコードR7とレコードR8の間に取得された第2突合対象情報は、レコードR9である。したがって、別客ID突合部580は、ステップS1313において、レコードR9のユーザID「51223」を抽出する。
続いて、別客ID突合部580は、ステップS1313で抽出したユーザIDが1つであるか否かを判定する(ステップS1314)。ステップS1314において、抽出されたユーザIDが1つでない場合、別客ID突合部580は処理を終了する。
ステップS1314において、抽出されたユーザIDが1つである場合、別客ID突合部580は、このユーザIDを、ユーザIDが不明とされていた突合済み情報のユーザIDとして、突合済み情報データベース140に格納し(ステップS1315)、処理を終了する。
図15の例では、ステップS1311で抽出されたユーザIDは、レコードR9のユーザID「51223」のみである。このため、レコードR9に含まれるユーザIDによって特定されるユーザが、突合済み情報データベース140のレコードR3、R4に含まれる商品情報が示す商品を購入したことになる。
よって、別客ID突合部580は、突合済み情報データベース140のレコードR3、R4において、不明とされていたユーザIDを、第2突合対象情報131−CのレコードR9のユーザID「51223」とする。
図15(C)の突合済み情報データベース140−Aは、ユーザIDが不明とされていたレコードR3、R4に、第2突合対象情報131−CのレコードR9のユーザID「51223」が対応付けられた状態を示している。
このように、本実施形態では、ユーザIDが不明な状態で突合済み情報データベース140に商品情報が格納された場合でも、蓄積された決済情報に基づき、ユーザIDを対応付けることができる。
以上のように、本実施形態では、電子決済サービスの提供者と、商品を販売する店舗と、のそれぞれで別々に管理されている、電子決済サービスのユーザIDと、商品情報とを対応付けることができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。