以下、図面に基づいて、本願の開示する購入手続き処理プログラム、購入手続き処理方法および購入手続き処理装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
[システム構成]
図1は、実施例の購入手続き処理システムの構成の一例を示すブロック図である。図1に示す購入手続き処理システム1は、販売機会の損失を抑制できる通信販売サイトを端末装置10に提供する購入手続きサービスを実現するものである。
図1には、上記の購入手続きサービスの一例として、自治体が主催する朝市で提供される特産品をユーザが購入しようとする場合に、特産品を確保中のユーザの端末装置10に対して購入を促す購入手続き処理システム1を示す。また、購入手続き処理システム1は、特産品のキャンセル待ちをするユーザの端末装置10に対しては待ち時間を提示する。
かかる朝市で提供される特産品には、その時、その場所でしか買えず、希少で、かつ新鮮でおいしいといった価値や長所がある。このため、朝市には、人々に、その地域の産物を購入して味わってみたいと思わせる魅力がある。さらに、朝市には、特有の活気やコミュニケーションにも魅力がある。このように、朝市は、(1)特産品を食べられる期待感、(2)実際に産物を食べる楽しみ、(3)朝市自体を体験する楽しみなどを提供できる。
一方で、特産品の消費者となる旅行者には、「時間に伴って場所を移動する」というスケジュール上の制約がある。このため、「開催時間帯が限られる朝市に行けない」、「朝市には行けるが買った特産品を旅行中に調理して食べられない」、「飲食施設等でその街の特産品は食べられるが朝市には行けない」といったケースも散見される。
これらのことから、上記の購入手続きサービスの土台として、宿泊や飲食の予約サービスを提供するポータルサイトの事業者と、朝市の主催者である自治体とが連携することによって、ネットワークN上に仮想的に再現された朝市から購入される特産品を、現実の朝市が開催される街にある飲食施設、とりわけ旅行者が予約手続を行った飲食施設へ配送した上で調理後の特産品を提供する「どこでも朝市」という新規なサービスを提供する。
かかる「どこでも朝市」によって、街の産物をできるだけ多くの旅行者に買ってもらい、消費してもらうという自治体の需要に応え、旅行という制約がある中で、上記の(1)〜(3)の朝市固有の価値を提供し、自治体の町興しに寄与することを目指す。
朝市は、一般的にイベント的要素があり、主催者側としては、旅行者にゆっくり楽しんで欲しいという狙いがある。つまり、主催者側は、旅行者が産物をカートに確保しつつ、ゆったり場内を見て回って欲しいという要望がある。このため、旅行者は、「どこでも朝市」で販売されている産物が希少特産物である場合に、取り敢えずカートに入れて確保しておき、精算時に購入する産物を調整することがある。この場合には、他の旅行者は、確保された希少特産物が在庫の最後の1つであると、確保した旅行者が購入を確定して精算を行なうか、当該希少特産物をカートから取り出してキャンセルするまで、購入の可否を決定することができなくなる。
また、朝市は、開催時間が例えば朝6時から10時まで等のように限られるので、旅行者が産物を買わずに終了時間が来た場合には、希少特産物が売れ残るため、希少特産物が無駄になったり、他の旅行者の購入機会の損失が生じることになる。
そこで、本実施例に係る購入手続き処理システム1では、上記の購入手続きサービスの一環として、商品がカートに確保される時間に制限を設け、確保中のユーザ(旅行者)に対して制限時間を提示し、キャンセル待ちを行うユーザに対して最大待ち時間を提示する。これによって、購入手続き処理システム1は、販売機会の損失を抑制できる。すなわち、購入手続き処理システム1は、希少特産物の売れ残りを抑制し、多くのユーザに対して希少特産物の購入機会を提供する。
図1に示すように、購入手続き処理システム1は、端末装置10と、主催者端末50と、サーバ装置100とを有する。なお、図1には、システムが2つの端末装置10と、1つの主催者端末50とを有する場合を示したが、端末装置10および主催者端末50の数は限定されず、購入手続き処理システム1は、任意の数の端末装置10および主催者端末50を有する。
これら端末装置10、主催者端末50およびサーバ装置100の間は、ネットワークNを介して相互に通信可能に接続される。かかるネットワークNには、有線または無線を問わず、インターネット(Internet)を始め、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
サーバ装置100は、端末装置10に上記の購入手続きサービスを提供するコンピュータである。上記のサーバ装置10の一態様としては、パッケージソフトウェアやオンラインソフトウェアとして上記の購入手続きサービスを実現する購入手続き処理プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置100は、上記の購入手続きサービスを提供するWebサーバとして実装することとしてもよいし、アウトソーシングによって上記の購入手続きサービスを提供するクラウドとして実装することとしてもかまわない。
かかるサーバ装置100は、一例として、宿泊や飲食の予約サービスを提供するポータルサイトの事業者によって運営される。サーバ装置100は、端末装置10からの宿泊施設または飲食施設の予約要求にしたがって予約手続きを実行する。なお、以下では、サーバ装置100が宿泊の予約サービスを提供するポータルサイトの事業者によって運営される場合を例示するが、飲食の予約サービスを提供する事業者によって運営させることとしてもかまわない。
例えば、サーバ装置100は、宿泊施設の予約を受け付ける場合に、端末装置10からチェックイン及びチェックアウトの日付を始め、宿泊を行う地域などの指定を受け付ける。そして、サーバ装置100は、これらの条件指定に該当する宿泊施設を図示しない宿泊施設のデータベースから検索する。この検索結果を端末装置10に表示させる場合に、サーバ装置100は、宿泊施設とともに、宿泊プランを表示させる。かかる宿泊プランには、寝るだけの素泊まりのプランの他、食事が宿泊とパッケージされたプランも含まれる。その後、サーバ装置100は、宿泊プランの指定とともに宿泊施設の予約要求を受け付けた場合に、当該宿泊施設の予約手続きを実行する。例えば、サーバ装置100は、宿泊施設への連絡や決済の代行などを実行する。この他、サーバ装置100は、予約を行ったポータルサイトの会員を識別する会員ID(IDentifier)に、宿泊施設、チェックイン又はチェックアウトの日付、さらに、食事を含む宿泊プランが指定されている場合には、食事に対応するメニューを対応付けた情報を予約情報として登録する。このように、宿泊の予約サービスでは、宿泊施設の予約を通じて、宿泊施設と関連する飲食施設、例えば宿泊施設が経営するレストランや宿泊施設の事業者が持つビル内のテナントの予約も併せて実行できる。かかる予約サービスを通じて集められた予約情報が上記の購入手続きサービスに利用される。
また、サーバ装置100は、朝市を主催する自治体等によって使用される主催者端末50から朝市に関する各種情報の登録を受け付ける。例えば、サーバ装置100は、主催者端末50から朝市の開催に関する情報、例えば朝市を識別する朝市ID、開催される朝市の名称や朝市が開催される日付などの情報を受け付ける。その上で、サーバ装置100は、これら朝市ID、朝市名および開催日が対応付けられた情報を朝市情報として朝市データベース(以下、データベースをDBと表記する)に登録する。このように登録された朝市情報は、一例として、後述のように、朝市の選択に利用される。さらに、サーバ装置100は、主催者端末50から朝市で販売される特産品に関する情報、例えば特産品を識別する産物ID、特産品の名称や入荷数、価格などの情報を受け付ける。その上で、サーバ装置100は、これら産物ID、産物名、入荷数および価格等が対応付けられた情報を特産品情報として産物DBに登録する。このように登録された特産品情報は、一例として、後述のように、ユーザによる「どこでも朝市」での産物の購入に利用される。
端末装置10は、サーバ装置100から上記の予約サービスや上記の購入手続きサービスの提供を受けるコンピュータである。かかる端末装置10の一例としては、パーソナルコンピュータを採用できる。端末装置10には、上記のパーソナルコンピュータなどの据置き型の端末のみならず、各種の携帯端末装置を端末装置10として採用することもできる。例えば、携帯端末装置の一例として、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などが挙げられる。
これら予約サービスや購入手続きサービスは、上記のポータルサイトに所定の登録手続きを行うことによってその提供を受けることができる。例えば、端末装置10を利用するエンドユーザは、個人の属性情報、例えば氏名、住所、電話番号やメールアドレスなどのアドレスをポータルサイトに登録することによって会員IDおよびパスワード等のアカウントの発行を受ける会員となることができる。その上で、端末装置10は、ネットワークN上にあるポータルサイトを運営するサーバ装置100へアクセスし、アカウントでログイン認証を実行することによって上記の予約サービスの提供を受けることができる。
また、朝市を主催する自治体等は、主催者端末50を用いて、上記の朝市情報や上記の特産品情報をサーバ装置100へ登録することによってポータルサイト上に上記の「どこでも朝市」を仮想的に開催できる。一例としては、ポータルサイトのトップページにあるメニューの1つとして、「どこでも朝市」のメニューが用意される。このとき、「どこでも朝市」のメニューは、各地の朝市を指定できるGUI(Graphical User Interface)であってもよいし、朝市が開催される地域を指定できるGUIであってもよいし、ユーザが宿泊施設の予約を行った地区の朝市が抜粋して表示されるGUIであってもかまわない。
[サーバ装置100の構成]
図1に示すように、サーバ装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、サーバ装置100は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。なお、以下の説明では、商品をカートに入れて予約した予約者(ユーザ)を確保者と表し、確保者のカート内の商品のうち未決済状態の商品を自らのカートに入れてキャンセル待ち状態であるユーザを待機者と表す。
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、ネットワークNを介して端末装置10および主催者端末50と有線または無線で接続され、端末装置10および主催者端末50との間で情報の通信を司る通信インタフェースである。通信部110は、端末装置10から飲食施設の利用を含む宿泊予約、さらには上記の「どこでも朝市」を介して特産品の注文等の操作情報を受信する。また、通信部110は、宿泊予約に関する情報、特産品の購入情報、特産品が飲食施設に届く日時、特産品を調理によって提供する日時などの情報、特産品を調理する飲食施設に関するコメント情報を端末装置10に送信する。さらに、通信部110は、主催者端末50に、上記の「どこでも朝市」を介して受け付けた特産品の受注を送信する。また、通信部110は、「どこでも朝市」を介して特産品の受注があった場合に、特産品、特産品が飲食施設に届く日時、特産品を調理によって提供する日時などの情報を、宿泊施設または宿泊施設に関連する飲食施設によって使用される端末に送信する。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、会員DB121と、朝市DB122と、産物DB123と、キャンセル待ちDB124とを有する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。
会員DB121は、ポータルサイトの会員のうち、「どこでも朝市」にログイン中の会員(以下、ユーザともいう)について、会員IDと、会員の氏名と、メールアドレスとを対応付けて記憶する。図2は、会員DBの一例を示す説明図である。図2に示すように、会員DB121は、会員ID121a、氏名121b、E−mail121c、カート商品121d、枝番121e、カートIN時間121f、制限時間121g、備考121hといった項目を有する。会員DB121は、あるユーザが複数の商品(産物)をカートに確保した場合には、商品ごとに1レコードが生成される。すなわち、会員DB121は、同一のユーザについて、確保した商品ごとにレコードが生成される。
会員ID121aは、ポータルサイトに登録され、「どこでも朝市」にログイン中の会員を識別する。氏名121bは、「どこでも朝市」にログイン中の会員の氏名を示す。E−mail121cは、「どこでも朝市」にログイン中の会員の連絡先であるメールアドレスを示す。カート商品121dは、ログイン中の会員がカートに入れた、つまり確保した商品(産物)の産物IDを示す。枝番121eは、同じ種類の商品(産物)の入荷数と各商品の枝番を示す。枝番は、入荷された各商品を識別する。例えば、「5/6」は、商品の入荷数が6個あり、そのうちの枝番が5番目の商品を示す。カートIN時間121fは、ユーザが当該商品をカートに入れた時間を示す。また、カートIN時間121fは、当該商品について在庫が無くキャンセル待ちの場合には、キャンセル待ち順位も示す。制限時間121gは、ユーザによってカートに確保された商品を、当該ユーザが購入可能な残り時間を示す。備考121hは、例えば、カートに確保された商品の産物名を示す。なお、制限時間121gおよび備考121hは、必ずしも会員DB121に含まれなくてもよい。
会員DB121は、例えば、図2に示すように、会員ID121a「R004」と、氏名121b「山田太郎」と、E−mail121c「yamataro@xxx.com」と、カート商品121c「P001」と、枝番121e「3/3」とを対応付けて記憶する。また、会員DB121は、さらに、カートIN時間121f「05:00[0]」と、制限時間121g「8M14S」と、備考121h「幻の鮎」とを対応付けて記憶する。この場合には、産物ID「P001」の幻の鮎について、入荷数が3個あるうちの枝番が3番目の幻の鮎を、山田太郎さんが5時0分にカートに確保し、制限時間が8分14秒であることを示す。
朝市DB122は、各地で開催される朝市を記憶する。図3は、朝市DBの一例を示す説明図である。図3に示すように、朝市DB122は、朝市ID122a、朝市名122b、開催日122cといった項目を有する。
朝市ID122aは、各地で開催される朝市を識別する。朝市名122bは、朝市の名称を示す。朝市名122bは、例えば、「函館朝市」、「佐世保朝市」といった名称が挙げられる。開催日122cは、朝市が開催される日付を示す。朝市DB122は、例えば、図3に示すように、朝市ID122a「A001」と、朝市名122b「函館朝市」と、開催日122c「2013/11/1」とを対応付けて記憶する。この場合には、2013年11月1日に「函館朝市」が開催されることを示す。
産物DB123は、朝市で販売される商品、つまり産物である特産品を記憶する。図4は、産物DBの一例を示す説明図である。図4に示すように、産物DB123は、産物ID123a、希少フラグ123b、枝番/入荷数123c、産物名123d、購入者(確保者)ID123e、価格123f、制限時間123g、完売フラグ123h、キャンセル待ち人数123iといった項目を有する。
産物ID123aは、商品を識別する。希少フラグ123bは、商品が希少特産物であるか否かを識別する。希少フラグ123bは、例えば「Y」であれば希少特産物を示し、「N」であれば一般的な特産物であることを示す。枝番/入荷数123cは、同じ種類の商品の入荷数と各商品の枝番を示す。枝番は、入荷された各商品を識別する。産物名123dは、商品の名称を示し、例えば、「幻の鮎」、「大松茸」といった名称が挙げられる。購入者(確保者)ID123eは、産物ID123aおよび枝番/入荷数123cで特定される商品を、購入または確保したユーザの会員IDを示す。価格123fは、商品の価格を示す。制限時間123gは、ユーザによってカートに確保された商品を、当該ユーザが購入可能な残り時間を示す。完売フラグ123hは、産物ID123aおよび枝番/入荷数123cで特定される商品について完売したか否かを示す。完売フラグ123hは、例えば「完」であれば完売を示し、「未」であれば当該商品はまだ在庫があることを示す。キャンセル待ち人数123iは、商品がユーザによって確保された場合のキャンセル待ちの人数を示す。キャンセル待ち人数123iは、例えば、商品がユーザによって確保され、キャンセル待ちの人数が0人である場合には「0」とし、キャンセル待ちの人数が1人の場合には「1」、2人の場合には「2」といったように、キャンセル待ちの人数を示す。産物DB123は、産物ID123aおよび枝番/入荷数123cで特定される商品ごとに、各項目が1つのレコードとして対応付けて記憶される。
キャンセル待ちDB124は、キャンセル待ちが発生した産物ID123aおよび枝番/入荷数123cで特定される商品、ならびに、キャンセル待ち会員IDごとに、各項目を関連付けて記憶する。図5は、キャンセル待ちDBの一例を示す説明図である。図5に示すように、キャンセル待ちDB124は、産物ID124a、希少フラグ124b、枝番/入荷数124c、産物名124d、購入者(確保者)ID124e、価格124fといった項目を有する。また、キャンセル待ちDB124は、確保者制限時間124g、キャンセル待ち会員ID124h、カートIN時間124i、あなたの最大待ち時間124jといった項目を有する。
キャンセル待ちDB124は、キャンセル待ちが発生した時点でレコードが生成される。産物ID124a、希少フラグ124b、枝番/入荷数124c、産物名124d、購入者(確保者)ID124e、価格124fおよび確保者制限時間124gは、産物DB123の対応する項目がコピーされる。産物ID124a、希少フラグ124b、枝番/入荷数124cおよび産物名124dは、産物DB123の産物ID123a、希少フラグ123b、枝番/入荷数123cおよび産物名123dが、それぞれコピーされる。また、購入者(確保者)ID124e、価格124fおよび確保者制限時間124gは、産物DB123の購入者(確保者)ID123e、価格123fおよび制限時間123gが、それぞれコピーされる。これらの項目の詳細は、産物DB123の対応する項目と同じであるので、詳細な説明は省略する。
キャンセル待ち会員ID124hは、産物ID123aおよび枝番/入荷数123cで特定される商品についてキャンセル待ちをしているユーザを識別する。なお、キャンセル待ちをしているユーザが複数いる場合には、図5の枠11および枠12に示すように、キャンセル待ちのユーザごとにレコードが生成される。カートIN時間124iは、キャンセル待ちのユーザが当該商品をカートに入れた時間を示す。また、カートIN時間124iは、キャンセル待ちの場合には、キャンセル待ち会員ID124hで識別されるユーザのキャンセル待ち順位も示す。あなたの最大待ち時間124jは、キャンセル待ち会員ID124hで識別されるユーザの最大待ち時間を示す。
なお、上述の各データベースでは、各データベースの項目として符号を振ったが、項目名が同じものは各データベースで同じ内容を示す。例えば、産物DB123の産物ID123aと、キャンセル待ちDB124の産物ID124aとが指し示す内容は、同じルールに基づいて付与されたIDを用いる。例えば、産物ID「P002」は、どちらのデータベースでも同一の産物「幻の柚子」を示す。従って、以下の説明では、特に区別する場合を除いて各項目名を用いて説明する。
図1の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部130は、ポータル部131と、受付部132と、商品管理部133と、時間制御部134と、決済部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
ポータル部131は、ポータルサイトとして宿泊や飲食の予約サービスを提供する。ポータル部131は、図示しないポータルサイトの会員DBを参照してポータルサイトの会員に対してログイン認証を行う。ポータル部131は、端末装置10に対して、朝市画面へのリンクを有するポータルサイトの画面を送信する。ポータル部131は、通信部110を介して端末装置10から朝市画面へのリンクが押下された情報を受信すると、受付部132に対して「どこでも朝市」のログイン画面を表示する指示を出力する。
受付部132は、ポータル部131からログイン画面の表示を指示されると、通信部110を介して端末装置10に対してログイン画面を送信する。図6は、ログイン画面の一例を示す説明図である。図6に示すように、例えば、ログイン画面20には、ユーザの会員IDとパスワードを入力する欄が設けられ、ユーザによる入力を受け付ける。また、ログイン画面20には、例えば、朝市を選択するためのプルダウンメニューが設けられ、ユーザによって朝市が選択される。受付部132は、ユーザによって会員IDおよびパスワードが入力され、朝市が選択されると、図示しないポータルサイトの会員DBを参照してポータルサイトの会員に対して再度ログイン認証を行う。また、受付部132は、ログイン認証後、選択された朝市の朝市画面を、通信部110を介して端末装置10に送信する。
図7は、朝市画面の一例を示す説明図である。受付部132は、図7に示すような朝市画面21によって、ユーザに対して希少特産物情報を提示する。図7に示すように、例えば、朝市画面21には、産物DB123を参照して本日の希少特産物情報として、入荷している商品名(産物名)と、価格と、入荷数と、未決済数と、制限時間とが表示される。また、朝市画面21には、商品検索ボタン23、売場見学ボタン24、カート情報25といったボタンが設けられる。また、制限時間は、未決済の商品がある場合には、ボタン22a、22b、22c、22d、22eが表示される。ボタン22a〜22eは、未決済の各商品に対応する。
受付部132は、ボタン22a〜22eのいずれかのボタンがユーザによって押下されることで、当該商品を当該ユーザのカートに確保する。つまり、受付部132は、当該ユーザのカートに商品を登録するために、会員DB121に確保した商品ごとにレコードを生成し記憶する。ここで、例えば、ボタン22aの「8分」といった表示は、当該商品が既に他のユーザのカートに確保された状態を示し、当該商品を確保した他のユーザは、8分以内に購入を決定しなければキャンセルされることを示す。また、例えば、ボタン22dの「MAX」表示は、誰もカートに確保していない状態を示す。受付部132は、例えば、ユーザによってカートに商品が確保され、朝市画面21のカート情報ボタン25が押下されると、商品管理部133にカート画面の表示を指示する。
図1の説明に戻って、商品管理部133は、各ユーザがカートに確保した商品、または、キャンセル待ちをしている商品を管理する。つまり、商品管理部133は、会員DB121に記憶される各ユーザのカートの内容、産物DB123に記憶される各商品の状態、および、キャンセル待ちDB124に記憶される各商品のキャンセル待ちの状態を管理する。なお、商品管理部133は、主催者端末50から受信した商品のデータを産物DB123に格納する等の商品全般の管理を行ってもよい。
商品管理部133は、受付部132からカート画面の表示が指示されると、会員DB121を参照してカート画面を生成し、生成したカート画面を、通信部110を介して端末装置10に送信する。図8は、確保者のカート画面の一例を示す説明図である。図8に示すように、例えば、会員ID「R004」の「山田太郎」さんのカート画面26には、カートに確保した「幻の鮎」、「幻の柚子」および「アンコウ」が表示される。カート画面26には、例えば、確保中である旨を示すマークと、産物IDと、産物名称と、制限時間と、キャンセル待ち人数と、あなたの最大待ち時間とが表示される。
また、商品管理部133は、会員DB121を参照して、購入希望商品(産物)が、ログイン中のユーザのカートに入っているか否かを判定する。つまり、商品管理部133は、会員DB121を参照して、ログイン中のユーザのレコードのカート商品121dに、産物IDが格納されているか否かを判定する。商品管理部133は、購入希望商品がカートに入っていない場合には、カートに商品が入れられるまで待機する。商品管理部133は、購入希望商品がカートに入っている場合には、当該商品がログイン中のユーザが初めてカートに入れた商品であるか否かを判定する。つまり、商品管理部133は、当該商品の産物IDがログイン中のユーザと対応付けられて会員DB121に記憶されたか否かを判定する。
商品管理部133は、当該商品がログイン中のユーザが初めてカートに入れた商品でない場合には、時間制御部134に対して時間管理情報を出力する。商品管理部133は、当該商品がログイン中のユーザが初めてカートに入れた商品である場合には、商品管理処理を実行する。商品管理部133は、カートの商品が希少特産物であるか否かを判定する。商品管理部133は、カートの商品が希少特産物でない場合には、商品管理処理を終了する。すなわち、時間制御部134は、カートの商品が希少特産物でない場合には、後述する制限時間処理を行わない。商品管理部133は、カートの商品が希少特産物である場合には、当該商品が他のユーザのカートに確保されているか否かを判定する。
商品管理部133は、当該商品が他のユーザのカートに確保されていない場合には、産物DB123の購入者(確保者)ID123eを確保者の会員IDで更新する。また、商品管理部133は、更新された産物DB123に基づいて、会員DB121を更新する。つまり、商品管理部133は、当該商品の産物ID、枝番およびカートIN時間を確保者の会員IDと対応付けて会員DB121に記憶する。商品管理部133は、会員DB121の更新が完了すると商品管理処理を終了し、時間管理情報を時間制御部134に出力する。
商品管理部133は、当該商品が他のユーザのカートに確保されている場合には、産物DB123に基づいて、会員DB121を更新する。商品管理部133は、産物DB123を参照し、当該商品の産物ID、枝番およびカートIN時間を、当該商品をカートに入れたユーザの会員IDと対応付けて会員DB121に記憶する。商品管理部133は、産物DB123の当該商品のレコードについて、キャンセル待ち人数123iを1人増加させる。
商品管理部133は、産物DB123の当該商品のレコードからキャンセル待ちDB124に当該商品のデータをセット、つまりコピーする。産物DB123からキャンセル待ちDB124にセットするデータの項目は、産物ID123a、希少フラグ123b、枝番/入荷数123c、産物名123d、購入者(確保者)ID123e、価格123fおよび制限時間123gである。なお、商品管理部133は、キャンセル待ちDB124に当該商品のデータを初めてセットする場合には、当該商品およびキャンセル待ちユーザのレコードを生成する。
商品管理部133は、キャンセル待ちDB124に当該商品のデータがセットされると、セットされたレコードに対して、キャンセル待ち会員ID124h、カートIN時間124i、および、あなたの最大待ち時間124jをセットする。ここで、カートIN時間124iは、合わせてキャンセル待ち順位もセットする。また、あなたの最大待ち時間124jは、例えば、キャンセル待ち順位が1位である場合には、確保者制限時間124gと同じ時間とし、キャンセル待ち順位が2位の場合には、確保者制限時間124gに10分を加算した時間とすることができる。すなわち、あなたの最大待ち時間124jは、例えば、1人当たりの最大待ち時間を10分として、キャンセル待ち人数が増加するにつれ、10分ずつ加算することができる。商品管理部133は、キャンセル待ちDB124に対して上述の各データのセットが完了すると、時間制御部134に対して時間管理情報を出力する。
図1の説明に戻って、時間制御部134は、各ユーザがカートに入れて確保した各商品(産物)について、購入可能な時間として設けられる制限時間を制御する。時間制御部134は、ユーザによって商品がカートに入れられると制限時間のカウントダウンを開始し、制限時間がゼロになると当該商品はキャンセルされたものとしてカートから出して在庫に戻す。言い換えると、時間制御部134は、購入予約された商品またはサービスについて、入庫待ちまたはキャンセル待ちのリクエストの受信状況に応じて、商品またはサービスについての購入予約に基づく購入手続きを許容するステータスを、購入予約に基づく購入手続きを許容しないステータスに変更するまでの時間を制御する。
時間制御部134は、商品管理部133から時間管理情報が入力されると、制限時間処理を実行する。時間制御部134は、キャンセル待ちDB124を参照し、キャンセル待ちの商品があるか否かを判定する。時間制御部134は、キャンセル待ちの商品がない場合には、制限時間処理を終了する。時間制御部134は、キャンセル待ちの商品がある場合には、キャンセル待ちDB124の同一商品のキャンセル待ちレコード数を取得する。時間制御部134は、同一商品のキャンセル待ちレコード数に応じて、商品の確保者の制限時間とキャンセル待ちをする待機者の最大待ち時間を設定する。
時間制御部134は、同一商品のキャンセル待ちレコード数が「1」の場合には、確保者の制限時間は「そのまま」とする。つまり、時間制御部134は、確保者の制限時間として、確保者がカートに商品を入れた時間からのカウントダウン中の時間とする。このとき、時間制御部134は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」は、確保者の制限時間と同じであるので「そのまま」とする。
時間制御部134は、同一商品のキャンセル待ちレコード数が「2」の場合には、確保者の制限時間を「1/2」とする。つまり、時間制御部134は、確保者の制限時間として、確保者がカートに商品を入れた時間からのカウントダウン中の時間の2分の1の時間とする。このとき、時間制御部134は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」として、キャンセル待ち順位が1位の待機者は、確保者の制限時間と同じ「1/2」とする。また、時間制御部134は、「あなたの最大待ち時間」として、キャンセル待ち順位が2位の待機者は、確保者の制限時間に1人分の所定の制限時間、例えば10分を加算した時間とする。例えば、キャンセル待ち順位が2位の待機者の制限時間は、確保者の制限時間×1/2+10分とする。
時間制御部134は、同一商品のキャンセル待ちレコード数が「3」の場合には、確保者の制限時間を「1/3」とする。つまり、時間制御部134は、確保者の制限時間として、確保者がカートに商品を入れた時間からのカウントダウン中の時間の3分の1の時間とする。このとき、時間制御部134は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」として、キャンセル待ち順位が1位の待機者は、確保者の制限時間と同じ「1/3」とする。また、時間制御部134は、「あなたの最大待ち時間」として、キャンセル待ち順位が2位の待機者は、確保者の制限時間に1人分の所定の制限時間、例えば10分を加算した時間とする。例えば、キャンセル待ち順位が2位の待機者の制限時間は、確保者の制限時間×1/3+10分とする。同様に、時間制御部134は、「あなたの最大待ち時間」として、キャンセル待ち順位が3位の待機者は、確保者の制限時間に2人分の所定の制限時間、例えば20分を加算した時間とする。例えば、キャンセル待ち順位が3位の待機者の制限時間は、確保者の制限時間×1/3+20分とする。
つまり、時間制御部134は、キャンセル待ち人数に応じて、確保者の制限時間を短縮し、キャンセル待ち順位に応じて、待機者の制限時間を増加させる。ここで、制限時間と最大待ち時間は、キャンセル待ちレコード数をNとすると次のようになる。時間制御部134は、同一商品のキャンセル待ちレコード数が「N」の場合には、確保者の制限時間を「1/N」とする。つまり、時間制御部134は、確保者の制限時間として、確保者がカートに商品を入れた時間からのカウントダウン中の時間のN分の1の時間とする。このとき、時間制御部134は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」として、キャンセル待ち順位が1位の待機者は、確保者の制限時間と同じ「1/N」とする。また、時間制御部134は、「あなたの最大待ち時間」として、キャンセル待ち順位がN位の待機者は、確保者の制限時間に(N−1)人分の所定の制限時間を加算した時間とする。例えば、キャンセル待ち順位がN位の待機者の制限時間は、待機者1人当たりの最大待ち時間を10分とすると、確保者の制限時間×1/N+(N−1)×10分となる。
時間制御部134は、確保者または待機者である各ユーザに対して、制限時間と最大待ち時間とを通知する。時間制御部134は、例えば、制限時間と最大待ち時間とをカート画面に表示し、当該カート画面を通信部110を介して各ユーザの端末装置10に送信することで通知する。図9は、キャンセル待ち人数が増加した場合の確保者のカート画面の一例を示す説明図である。図9に示すように、カート画面27には、確保した商品として「幻の鮎」と「幻の柚子」と「アンコウ」とが表示され、それぞれ、制限時間と、キャンセル待ち人数と、あなたの最大待ち時間とが表示される。このとき、「幻の鮎」の制限時間は、キャンセル待ち人数が1人であるので、例えば、キャンセル待ちが発生する前と同じ「8分14秒」である。「幻の柚子」の制限時間は、キャンセル待ち人数が2人であるので、例えば、キャンセル待ちが発生する前の制限時間「3分1秒」の略2分の1の「1分30秒」である。「アンコウ」の制限時間は、キャンセル待ち人数が3人であるので、例えば、キャンセル待ちが発生する前の制限時間「9分22秒」の略3分の1の「3分07秒」である。さらに、時間制御部134は、カート画面27に制限時間が短縮される旨のメッセージを表示して、確保者のユーザに注意を促す。
ここで、一例として、図10から図12に、キャンセル待ち人数が3人の「アンコウ」について、キャンセル待ち順位が1位から3位の待機者のカート画面を示す。図10は、キャンセル待ち順位が1位の待機者のカート画面の一例を示す説明図である。図10に示すように、カート画面28には、キャンセル待ち中の商品として「アンコウ」が表示され、確保者制限時間と、順位およびキャンセル待ち人数と、あなたの最大待ち時間とが表示される。カート画面28は、キャンセル待ち順位が1位の待機者のカート画面であるので、あなたの最大待ち時間として、確保者制限時間と同じ「3分07秒」が表示される。
図11は、キャンセル待ち順位が2位の待機者のカート画面の一例を示す説明図である。図11に示すように、カート画面29には、キャンセル待ち中の商品として「アンコウ」が表示され、確保者制限時間と、順位およびキャンセル待ち人数と、あなたの最大待ち時間とが表示される。カート画面29は、キャンセル待ち順位が2位の待機者のカート画面であるので、あなたの最大待ち時間として、確保者制限時間に10分を加算した「13分07秒」が表示される。
図12は、キャンセル待ち順位が3位の待機者のカート画面の一例を示す説明図である。図12に示すように、カート画面30には、キャンセル待ち中の商品として「アンコウ」が表示され、確保者制限時間と、順位およびキャンセル待ち人数と、あなたの最大待ち時間とが表示される。カート画面30は、キャンセル待ち順位が3位の待機者のカート画面であるので、あなたの最大待ち時間として、確保者制限時間に20分を加算した「23分07秒」が表示される。
時間制御部134は、当該商品が確保者によって購入されたか、あるいは、キャンセルまたは制限時間切れか否かを判定する。時間制御部134は、当該商品が確保者によって購入された場合には、産物DB123の当該商品のレコードについて、制限時間123gを「00M00S」、キャンセル待ち人数123iを空白、および、完売フラグ123hを「完」と更新する。
また、時間制御部134は、会員DB121の該当項目のデータを削除する。つまり、時間制御部134は、会員DB121のカート商品121d、枝番121e、および、カートIN時間121fのデータを削除する。時間制御部134は、制限時間121gおよび備考121hにもデータが格納されている場合には、合わせて削除する。なお、時間制御部134は、会員DB121に確保者のレコードが複数存在する場合には、当該商品に対応するレコードを削除する。また、時間制御部134は、キャンセル待ちDB124を更新して制限時間処理を終了する。すなわち、時間制御部134は、キャンセル待ちDB124の当該商品のレコードを削除して制限時間処理を終了する。
時間制御部134は、当該商品がキャンセルまたは制限時間切れである場合には、キャンセル待ちDB124のキャンセル待ちレコード数に応じて、会員DB121、産物DB123およびキャンセル待ちDB124を更新する。時間制御部134は、キャンセル待ちレコード数が「2」から「N」までの場合には、産物DB123の購入者(確保者)ID123eに、キャンセル待ち順位が1位の待機者の会員IDを記憶する。また、時間制御部134は、当該商品がキャンセルされた場合には、制限時間123gについて確保者の制限時間を引き継ぐ。さらに、時間制御部134は、産物DB123の当該商品のキャンセル待ち人数123iを「1」減算する。
また、時間制御部134は、会員DB121の確保者の該当項目のデータを削除する。つまり、時間制御部134は、会員DB121の確保者のカート商品121d、枝番121e、および、カートIN時間121fのデータを削除する。時間制御部134は、制限時間121gおよび備考121hにもデータが格納されている場合には、合わせて削除する。なお、時間制御部134は、会員DB121に確保者のレコードが複数存在する場合には、当該商品に対応するレコードを削除する。
また、時間制御部134は、会員DB121のキャンセル待ちの待機者の当該商品に関するレコードを更新する。つまり、時間制御部134は、会員DB121のキャンセル待ちの待機者のカートIN時間121fのキャンセル待ち順位を「1」減算する。
また、時間制御部134は、キャンセル待ちDB124のキャンセル待ちの待機者について繰り上げ処理を行う。時間制御部134は、キャンセル待ちDB124のキャンセル待ち順位が1位の待機者の当該商品に係るレコードを削除する。時間制御部134は、キャンセル待ちDB124のキャンセル待ち順位が2位以降の待機者について、購入者(確保者)ID124eをキャンセル待ち順位が1位の待機者の会員IDに更新する。また、時間制御部134は、キャンセル待ち順位が2位以降の待機者について、あなたの最大待ち時間124jを、1人分の最大待ち時間分減算する。時間制御部134は、キャンセル待ちの待機者について繰り上げ処理が終了すると、制限時間処理を終了する。
時間制御部134は、キャンセル待ちレコード数が「1」の場合には、産物DB123の購入者(確保者)ID123eに、キャンセル待ち順位が1位の待機者の会員IDを記憶する。また、時間制御部134は、当該商品がキャンセルされた場合には、制限時間123gについて確保者の制限時間を引き継ぐ。さらに、時間制御部134は、産物DB123の当該商品のキャンセル待ち人数123iを空白とする。
また、時間制御部134は、会員DB121の確保者の該当項目のデータを削除する。つまり、時間制御部134は、会員DB121の確保者のカート商品121d、枝番121e、および、カートIN時間121fのデータを削除する。時間制御部134は、制限時間121gおよび備考121hにもデータが格納されている場合には、合わせて削除する。なお、時間制御部134は、会員DB121に確保者のレコードが複数存在する場合には、当該商品に対応するレコードを削除する。
また、時間制御部134は、会員DB121のキャンセル待ち順位が1位の待機者の当該商品に関するレコードを更新する。つまり、時間制御部134は、会員DB121のキャンセル待ち順位が1位の待機者のカートIN時間121fのキャンセル待ち順位を「1」減算する。すなわち、当該待機者のキャンセル待ち順位は「0」となる。
また、時間制御部134は、キャンセル待ちDB124を更新して制限時間処理を終了する。すなわち、時間制御部134は、キャンセル待ちDB124の当該商品のレコードを削除して制限時間処理を終了する。
図1の説明に戻って、決済部135は、通信部110を介して端末装置10に決済画面を送信して決済処理を実行する。決済部135は、例えば、カート画面26の「確保中」表示がユーザによってクリックされることで、図示しない決済画面を送信する。決済部135は、決済画面にてユーザにより決済情報が入力されると、図示しない決済サーバに決済情報を送信する。決済部135は、決済サーバから決済の許可情報を受信すると、通信部110を介して端末装置10に決済完了画面を送信する。
次に、実施例1の購入手続き処理システム1の動作について説明する。
図13は、購入手続き処理の一例を示すフローチャートである。なお、ここでは、サーバ装置100の動作を主体に説明する。サーバ装置100のポータル部131は、図示しないポータルサイトの会員DBを参照してポータルサイトの会員に対してログイン認証を行う。ポータル部131は、端末装置10に対して、朝市画面へのリンクを有するポータルサイトの画面を送信する。ポータル部131は、通信部110を介して端末装置10から朝市画面へのリンクが押下された情報を受信すると、受付部132に対して「どこでも朝市」のログイン画面を表示する指示を出力する。受付部132は、ポータル部131からログイン画面の表示を指示されると、通信部110を介して端末装置10に対してログイン画面を送信する。受付部132は、ユーザによって会員IDおよびパスワードが入力され、朝市が選択されると、図示しないポータルサイトの会員DBを参照してポータルサイトの会員に対して再度ログイン認証を行う(ステップS1)。
受付部132は、ログイン認証後、選択された朝市の朝市画面を、通信部110を介して端末装置10に送信する。受付部132は、例えば、図7に示すような朝市画面21によって、ユーザに対して希少特産物情報を提示する(ステップS2)。
受付部132は、例えば、図7中のボタン22a〜22eのいずれかのボタンがユーザによって押下されることで、当該ユーザのカートに当該商品を登録する(ステップS3)。受付部132は、当該ユーザのカートに商品を登録するために、会員DB121に確保した商品ごとにレコードを生成し記憶する。受付部132は、例えば、朝市画面21のカート情報ボタン25が押下されると、商品管理部133にカート画面の表示を指示する。
商品管理部133は、受付部132からカート画面の表示が指示されると、会員DB121を参照してカート画面を生成し、生成したカート画面を、通信部110を介して端末装置10に送信する。商品管理部133は、ログイン中のユーザについて、会員DB121のカート商品121dが全て「なし」になるまで、後述するステップS5からS8の処理を繰り返す(ステップS4a〜S4b)。
商品管理部133は、会員DB121を参照して、購入希望商品がログイン中のユーザのカートに入っているか否かを判定する(ステップS5)。商品管理部133は、購入希望商品がログイン中のユーザのカートに入っていない場合には、カートに商品が入れられるまで待機する(ステップS5:否定)。商品管理部133は、購入希望商品がログイン中のユーザのカートに入っている場合には(ステップS5:肯定)、当該商品がログイン中のユーザが初めてカートに入れた商品であるか否かを判定する(ステップS6)。商品管理部133は、当該商品がログイン中のユーザが初めてカートに入れた商品でない場合には(ステップS6:否定)、時間制御部134に対して時間管理情報を出力する。商品管理部133は、当該商品がログイン中のユーザが初めてカートに入れた商品である場合には(ステップS6:肯定)、商品管理処理を実行する(ステップS7a〜S7n)。なお、ステップS7a〜S7nは、例えばN個の商品ごとの商品管理処理を表し、以下の説明では、これらを区別せずに商品管理処理(ステップS7)として説明する。
ここで、図14を用いて商品管理処理について説明する。図14は、商品管理処理の一例を示すフローチャートである。商品管理部133は、カートの商品が希少特産物であるか否かを判定する(ステップS71)。商品管理部133は、カートの商品が希少特産物でない場合には(ステップS71:否定)、商品管理処理を終了し、元の処理に戻る。商品管理部133は、カートの商品が希少特産物である場合には(ステップS71:肯定)、当該商品が他のユーザのカートに確保されているか否かを判定する(ステップS72)。
商品管理部133は、当該商品が他のユーザのカートに確保されていない場合には(ステップS72:否定)、産物DB123の購入者(確保者)ID123eを確保者の会員IDで更新する(ステップS73)。また、商品管理部133は、更新された産物DB123に基づいて、会員DB121を更新する(ステップS74)。商品管理部133は、会員DB121の更新が完了すると商品管理処理を終了し、時間管理情報を時間制御部134に出力し、元の処理に戻る。
商品管理部133は、当該商品が他のユーザのカートに確保されている場合には(ステップS72:肯定)、産物DB123に基づいて、会員DB121を更新する(ステップS75)。商品管理部133は、産物DB123を更新する(ステップS76)。つまり、商品管理部133は、産物DB123の当該商品のレコードについて、キャンセル待ち人数123iを1人増加させる。商品管理部133は、産物DB123の当該商品のレコードからキャンセル待ちDB124に当該商品のデータをセットする(ステップS77)。
商品管理部133は、キャンセル待ちDB124に当該商品のデータがセットされると、セットされたレコードに対して、キャンセル待ち会員ID124h、カートIN時間124i、および、あなたの最大待ち時間124jをセットする(ステップS78)。また、商品管理部133は、カートIN時間124iに、合わせてキャンセル待ち順位もセットする。商品管理部133は、キャンセル待ちDB124に対して上述の各データのセットが完了すると商品管理処理を終了し、時間管理情報を時間制御部134に出力し、元の処理に戻る。
このように、商品管理処理では、各ユーザがカートに確保した商品、または、キャンセル待ちをしている商品を管理することで、商品ごとの状態を示すステータスを管理することができる。
時間制御部134は、商品管理部133から時間管理情報が入力されると、制限時間処理を実行する(ステップS8a〜S8n)。なお、ステップS8a〜S8nは、例えばN個の商品ごとの購入手続き処理を表し、以下の説明では、これらを区別せずに制限時間処理(ステップS8)として説明する。
ここで、図15を用いて制限時間処理について説明する。図15は、制限時間処理の一例を示すフローチャートである。時間制御部134は、キャンセル待ちDB124を参照し、キャンセル待ちの商品があるか否かを判定する(ステップS81)。時間制御部134は、キャンセル待ちの商品がない場合には(ステップS81:否定)、制限時間処理を終了し、元の処理に戻る。時間制御部134は、キャンセル待ちの商品がある場合には(ステップS81:肯定)、キャンセル待ちDB124の同一商品のキャンセル待ちレコード数を取得する。
時間制御部134は、同一商品のキャンセル待ちレコード数に応じて、商品の確保者の制限時間とキャンセル待ちをする待機者の最大待ち時間を設定する(ステップS82)。時間制御部134は、同一商品のキャンセル待ちレコード数が「1」の場合には(ステップS82:「1」)、確保者の制限時間は「そのまま」とする(ステップS83a)。また、時間制御部134は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」は、確保者の制限時間と同じであるので「そのまま」とする(ステップS84a)。
時間制御部134は、同一商品のキャンセル待ちレコード数が「2」の場合には(ステップS82:「2」)、確保者の制限時間を「1/2」とする(ステップS83b)。また、時間制御部134は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」として、キャンセル待ち順位が1位の待機者は、確保者の制限時間と同じ「1/2」とする。さらに、時間制御部134は、キャンセル待ち順位が2位の待機者の「あなたの最大待ち時間」を、確保者の制限時間に1人分の所定の制限時間、例えば10分を加算した時間とする(ステップS84b)。
時間制御部134は、同一商品のキャンセル待ちレコード数が「3」の場合には(ステップS82:「3」)、確保者の制限時間を「1/3」とする(ステップS83c)。また、時間制御部134は、キャンセル待ち順位が1位の待機者の「あなたの最大待ち時間」を、確保者の制限時間と同じ「1/3」とする。さらに、時間制御部134は、キャンセル待ち順位が2位の待機者の「あなたの最大待ち時間」を、確保者の制限時間に1人分の所定の制限時間、例えば10分を加算した時間とする。また、時間制御部134は、キャンセル待ち順位が3位の待機者の「あなたの最大待ち時間」を、確保者の制限時間に2人分の所定の制限時間、例えば20分を加算した時間とする(ステップS84c)。
時間制御部134は、以下同様に、キャンセル待ちレコード数「N」に応じて(ステップS82:「N」)、確保者の制限時間を「1/N」とする(ステップS83d)。また、時間制御部134は、キャンセル待ち順位が1位の待機者の「あなたの最大待ち時間」を、確保者の制限時間と同じ「1/N」とする。さらに、時間制御部134は、キャンセル待ち順位がN位の待機者の「あなたの最大待ち時間」を、確保者の制限時間に(N−1)人分の所定の制限時間を加算した時間とする(ステップS84d)。
時間制御部134は、確保者または待機者である各ユーザに対して、制限時間と最大待ち時間とを通知する(ステップS85)。時間制御部134は、当該商品が確保者によって購入されたか、あるいは、キャンセルまたは制限時間切れか否かを判定する(ステップS86)。時間制御部134は、当該商品が確保者によって購入された場合には(ステップS86:「購入」)、産物DB123の当該商品のレコードについて更新する。つまり、時間制御部134は、制限時間123gを「00M00S」、キャンセル待ち人数123iを空白、および、完売フラグ123hを「完」と更新する(ステップS87)。
時間制御部134は、会員DB121の該当項目のデータを削除する(ステップS88)。なお、時間制御部134は、会員DB121に確保者のレコードが複数存在する場合には、当該商品に対応するレコードを削除する。また、時間制御部134は、キャンセル待ちDB124を更新して制限時間処理を終了する(ステップS89)。
時間制御部134は、当該商品がキャンセルまたは制限時間切れである場合には(ステップS86:「キャンセルまたは制限時間切れ」)、各DBを更新する。つまり、時間制御部134は、キャンセル待ちDB124のキャンセル待ちレコード数に応じて、会員DB121、産物DB123およびキャンセル待ちDB124を更新する(ステップS90)。時間制御部134は、キャンセル待ちレコード数が「1」の場合には(ステップS90:「1」)、産物DB123の購入者(確保者)ID123eに、キャンセル待ち順位が1位の待機者の会員IDを記憶する。また、時間制御部134は、当該商品がキャンセルされた場合には、制限時間123gについて確保者の制限時間を引き継ぐ。さらに、時間制御部134は、産物DB123の当該商品のキャンセル待ち人数123iを空白とする(ステップS91)。
時間制御部134は、会員DB121の確保者の該当項目のデータを削除し、会員DB121を更新する。また、時間制御部134は、会員DB121のキャンセル待ち順位が1位の待機者の当該商品に関するレコードを更新する(ステップS92)。時間制御部134は、キャンセル待ちDB124を更新して制限時間処理を終了する(ステップS93)。
時間制御部134は、キャンセル待ちレコード数が「2」から「N」までの場合には(ステップS90:「2」〜「N」)、産物DB123の購入者(確保者)ID123eに、キャンセル待ち順位が1位の待機者の会員IDを記憶する。また、時間制御部134は、当該商品がキャンセルされた場合には、制限時間123gについて確保者の制限時間を引き継ぐ。さらに、時間制御部134は、産物DB123の当該商品のキャンセル待ち人数123iを「1」減算する(ステップS94)。時間制御部134は、会員DB121の確保者の該当項目のデータを削除し、会員DB121を更新する。また、時間制御部134は、会員DB121のキャンセル待ちの待機者の当該商品に関するレコードを更新する(ステップS95)。また、時間制御部134は、キャンセル待ちDB124のキャンセル待ちの待機者について繰り上げ処理を行い、キャンセル待ちDB124を更新する。時間制御部134は、キャンセル待ちの待機者について繰り上げ処理が終了すると、制限時間処理を終了する(ステップS96)。
このように、制限時間処理では、キャンセル待ち人数に応じて、商品の確保者の制限時間を短縮することができる。また、制限時間処理では、キャンセル待ち人数に応じて、キャンセル待ちの待機者の最大待ち時間を決定することができる。
図13の説明に戻って、決済部135は、ステップS4aからS4bの間の処理の中で、決済画面にてユーザにより決済情報が入力されると、図示しない決済サーバに決済情報を送信する。決済部135は、決済サーバから決済の許可情報を受信すると、通信部110を介して端末装置10に決済完了画面を送信する。このように、購入手続き処理では、ユーザがカートに入れた商品に対して購入可能な制限時間を設けることで、販売機会の損失を抑制できる。すなわち、購入手続き処理では、商品の確保者に対して、決済を早く行うように促すことができる。
このように、サーバ装置100は、購入予約された商品またはサービスについて、入庫待ちまたはキャンセル待ちのリクエストの受信状況に応じて、商品またはサービスについての購入予約に基づく購入手続きを許容するステータスを、購入予約に基づく購入手続きを許容しないステータスに変更するまでの時間を制御する。その結果、販売機会の損失を抑制できる。
また、サーバ装置100は、購入予約された商品またはサービスの予約者が、購入予約された商品またはサービスを時間内にキャンセルした場合に、購入予約された商品またはサービスのキャンセル待ちの先頭の待機者を次の予約者として、時間を引き継ぐ。その結果、キャンセル待ちの先頭の待機者に購入を促すことができる。また、キャンセル待ち人数が複数人いる場合であっても、キャンセルが発生する度に最大待ち時間が増加することを抑制できる。
また、サーバ装置100は、購入予約された商品またはサービスのキャンセル待ち人数に応じて、購入予約された商品またはサービスの予約者の時間を短縮する。その結果、キャンセル待ち人数に応じて確保者の購入を促すことができる。
また、サーバ装置100は、購入予約された商品またはサービスのキャンセル待ち人数に応じて、各キャンセル待ちの待機者の時間の最大値を決定する。その結果、キャンセル待ち待機者の最大待ち時間を商品がカートに入れられた時点で確定できる。
また、上記実施例1では、キャンセル待ち人数に応じて、商品の確保者の制限時間を減じたが、これに限定されない。例えば、確保者のカートに確保されている商品の数に応じて、カート内の商品の制限時間を減ずるようにしてもよい。
確保者のカートに確保されている商品の数に応じて、カート内の商品の制限時間を減ずる実施の形態につき、実施例2として以下に説明する。なお、上記実施例1のサーバ装置100と同一の構成には、同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例2のサーバ装置150が実施例1のサーバ装置100と異なるところは、確保者のカートに確保されている商品の数に応じて、カート内の商品の制限時間を減ずる点にある。
図16は、実施例2の購入手続き処理システムの構成の一例を示すブロック図である。実施例2の購入手続き処理システム2は、実施例1の購入手続き処理システム1のサーバ装置100に代えてサーバ装置150を有する。また、実施例2のサーバ装置150は、実施例1のサーバ装置100と比べ、時間制御部134に代えて時間制御部184を有する点が異なる。
時間制御部184は、実施例1の時間制御部134と同様に、各ユーザがカートに入れて確保した各商品(産物)について、購入可能な時間として設けられる制限時間を制御する。時間制御部184は、商品管理部133から時間管理情報が入力されると、制限時間処理を実行する。時間制御部184は、会員DB121を参照し、あるユーザについて確保中の商品の情報を取得する。また、時間制御部184は、キャンセル待ちDB124を参照し、当該ユーザが確保中の商品についてキャンセル待ちの商品数を取得する。時間制御部184は、当該ユーザ、つまり確保者が確保中の商品のうちキャンセル待ちの商品数に応じて、商品の確保者の制限時間とキャンセル待ちをする待機者の最大待ち時間を設定する。
時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「1」の場合には、確保者の制限時間は「そのまま」とする。つまり、時間制御部184は、確保者の制限時間として、確保者がカートに商品を入れた時間からのカウントダウン中の時間とする。このとき、時間制御部184は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」を、確保者の制限時間と同じであるので「そのまま」とする。
時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「2」の場合には、確保者がカートに入れている全ての商品の制限時間を「1/2」とする。このとき、時間制御部184は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」を、確保者の制限時間と同じ「1/2」とする。
時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「3」の場合には、確保者がカートに入れている全ての商品の制限時間を「1/3」とする。このとき、時間制御部184は、キャンセル待ちの待機者の最大待ち時間である「あなたの最大待ち時間」を、確保者の制限時間と同じ「1/3」とする。
つまり、時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数に応じて、確保者の制限時間を短縮する。ここで、制限時間は、確保者が確保中の商品のうちキャンセル待ちの商品数をNとすると次のようになる。時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「N」の場合には、確保者がカートに入れている全ての商品の制限時間を「1/N」とする。つまり、時間制御部184は、確保者の制限時間として、確保者がカートにそれぞれの商品を入れた時間からのカウントダウン中の時間のN分の1の時間とする。
時間制御部184は、確保者または待機者である各ユーザに対して、制限時間と最大待ち時間とを通知する。時間制御部134は、例えば、制限時間と最大待ち時間とをカート画面に表示し、当該カート画面を通信部110を介して各ユーザの端末装置10に送信することで通知する。図17は、実施例2のキャンセル待ち人数が増加した場合の確保者のカート画面の一例を示す説明図である。図17に示すように、カート画面31には、確保した商品として「幻の鮎」と「幻の柚子」と「アンコウ」とが表示され、それぞれ、制限時間と、キャンセル待ち人数と、あなたの最大待ち時間とが表示される。つまり、時間制御部184は、確保者に対して確保中の商品の制限時間を通知し、待機者に対してキャンセル待ち商品の最大待ち時間を通知する。
ここで、「幻の鮎」と「幻の柚子」と「アンコウ」とについて、それぞれキャンセル待ち人数が1人ずつ、計3人になった場合を説明する。なお、キャンセル待ち人数が各0人であるときの制限時間は、それぞれ、「8分14秒」、「3分01秒」、「9分22秒」であったとする。「幻の鮎」の制限時間は、確保中の全ての商品のキャンセル待ち人数が3人であるので、例えば、キャンセル待ち人数が各0人であるときの制限時間「8分14秒」の略3分の1の「2分42秒」となる。「幻の柚子」の制限時間は、確保中の全ての商品のキャンセル待ち人数が3人であるので、例えば、キャンセル待ち人数が各0人であるときの制限時間「3分01秒」の略3分の1の「1分00秒」となる。「アンコウ」の制限時間は、確保中の全ての商品のキャンセル待ち人数が3人であるので、例えば、キャンセル待ち人数が各0人であるときの制限時間「9分22秒」の略3分の1の「3分07秒」となる。さらに、時間制御部184は、カート画面31に制限時間が短縮される旨のメッセージを表示して、確保者のユーザに注意を促す。
時間制御部184は、当該商品が確保者によって購入されたか、あるいは、キャンセルまたは制限時間切れか否かを判定する。時間制御部184は、当該商品が確保者によって購入された場合には、実施例1の時間制御部134と同様に、会員DB121、産物DB123およびキャンセル待ちDB124を更新して制限時間処理を終了する。
時間制御部184は、当該商品がキャンセルまたは制限時間切れである場合には、実施例1の時間制御部134と同様に、キャンセル待ちDB124のキャンセル待ちレコード数に応じて、会員DB121、産物DB123およびキャンセル待ちDB124を更新して制限時間処理を終了する。
次に、実施例2に係るサーバ装置150が実行する処理の流れについて説明する。なお、実施例2のサーバ装置150が実行する処理の流れは、実施例1のサーバ装置100の動作と時間制御部184が実行する制限時間処理を除き同一であるので、制限時間処理について説明し、その他の処理については説明を省略する。
図18は、実施例2の制限時間処理の一例を示すフローチャートである。時間制御部184は、キャンセル待ちDB124を参照し、キャンセル待ちの商品があるか否かを判定する(ステップS101)。時間制御部184は、キャンセル待ちの商品がない場合には(ステップS101:否定)、制限時間処理を終了し、元の処理に戻る。時間制御部184は、キャンセル待ちの商品がある場合には(ステップS101:肯定)、当該ユーザが確保中の商品についてキャンセル待ちの商品数を取得する。
時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数に応じて、商品の確保者の制限時間とキャンセル待ちをする待機者の最大待ち時間を設定する(ステップS102)。時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「1」の場合には(ステップS102:「1」)、確保者の制限時間は「そのまま」とする(ステップS103a)。時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「2」の場合には(ステップS102:「2」)、確保者がカートに入れている全ての商品の制限時間を「1/2」とする(ステップS103b)。
時間制御部184は、確保者が確保中の商品のうちキャンセル待ちの商品数が「3」の場合には(ステップS102:「3」)、確保者がカートに入れている全ての商品の制限時間を「1/3」とする(ステップS103c)。時間制御部184は、以下同様に、確保者が確保中の商品のうちキャンセル待ちの商品数Nに応じて(ステップS102:「N」)、確保者の制限時間を「1/N」とする(ステップS103d)。
時間制御部184は、確保者または待機者である各ユーザに対して、制限時間と最大待ち時間とを通知する(ステップS104)。時間制御部184は、当該商品が確保者によって購入されたか、あるいは、キャンセルまたは制限時間切れか否かを判定する(ステップS105)。時間制御部184は、当該商品が確保者によって購入された場合には(ステップS105:「購入」)、実施例1の時間制御部134と同様に、会員DB121、産物DB123およびキャンセル待ちDB124を更新して制限時間処理を終了する(ステップS106〜S108)。
時間制御部184は、当該商品がキャンセルまたは制限時間切れである場合には(ステップS105:「キャンセルまたは制限時間切れ」)、実施例1の時間制御部134と同様に、各DBを更新する。つまり、時間制御部184は、キャンセル待ちDB124のキャンセル待ちレコード数に応じて、会員DB121、産物DB123およびキャンセル待ちDB124を更新する(ステップS109)。時間制御部184は、キャンセル待ちレコード数が「1」の場合には(ステップS109:「1」)、実施例1のステップS91〜S93と同様に各DBを更新して制限時間処理を終了する(ステップS110〜S112)。
時間制御部184は、キャンセル待ちレコード数が「2」から「N」までの場合には(ステップS90:「2」〜「N」)、実施例1のステップS94〜S96と同様に各DBを更新して制限時間処理を終了する(ステップS113〜S115)。このように、実施例2の制限時間処理では、確保者が確保中の商品のうちキャンセル待ちの商品数に応じて、商品の確保者の制限時間を短縮することができる。
このように、サーバ装置150は、購入予約された商品またはサービスの予約者によって購入予約された商品またはサービスのうち、キャンセル待ちが発生している購入予約された商品またはサービスの数に応じて、当該予約者の時間を短縮する。つまり、サーバ装置150は、キャンセル待ちが発生している購入予約された商品またはサービスの数に応じて、購入予約された商品またはサービスの予約者の時間を短縮する。その結果、キャンセル待ちの商品数に応じて、確保者にカート内の商品の購入を促すことができる。
なお、上記の各実施例では、確保者の制限時間をキャンセル待ち人数または商品数で除したが、これに限定されない。例えば、確保者の制限時間をキャンセル待ち人数または商品数で除した結果、確保者の制限時間が所定値以下となる場合には、制限時間を所定値とし、確保者の制限時間が極端に短くなることを抑制する。ここで、所定値は、例えば30秒とすることができる。これにより、確保者が、制限時間が短縮されたことに気が付いて決済処理の操作を行っているうちに制限時間が来てしまい、当該商品がキャンセルされることを抑制できる。
なお、上記の各実施例では、ポータルサイトにログイン後、「どこでも朝市」に遷移するときに再度ログイン画面を表示したが、これに限定されない。例えば、ポータルサイトからログイン情報を受信してログインを行い、ユーザに対してはポータルサイトから朝市画面にシームレスに移動できるようにしてもよい。これにより、ユーザの利便性が向上できる。
なお、上記の各実施例では、ポータルサイトの機能と、「どこでも朝市」サービスに係る機能とを同一のサーバ装置100、150で動作させたが、これに限定されない。例えば、サーバ装置100、150は、「どこでも朝市」サービスに係る機能を提供し、ポータルサイトの機能は、別途サーバ装置を設けて提供するようにしてもよい。これにより、既存の旅行予約システムが動作するポータルサイトに、本発明に係る「どこでも朝市」サービスに係る機能を容易に付加することができる。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、上記実施例のポータル部131と決済部135とを統合してもよい。
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図19は、購入手続き処理プログラムを実行するコンピュータの一例を示す説明図である。
図19が示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の装置と有線または無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201〜208は、バス209に接続される。
ハードディスク装置208には、図1に示したポータル部131、受付部132、商品管理部133、時間制御部134または時間制御部184、および、決済部135の各処理部と同様の機能を有する購入手続き処理プログラムが記憶される。また、ハードディスク装置208には、会員DB121、朝市DB122、産物DB123およびキャンセル待ちDB124が記憶される。また、ハードディスク装置208には、購入手続き処理プログラムを実現するための各種データが記憶される。入力装置202は、例えばコンピュータ200の管理者から初期データの入力を受け付ける。モニタ203は、例えばコンピュータ200の管理者がメンテナンス等を行う場合に各種情報を表示する。インタフェース装置205は、例えば印刷装置等が接続される。通信装置206は、ネットワークNに接続され、ユーザが操作する端末装置や「どこでも朝市」の主催者が操作する主催者端末と各種情報をやりとりする。
CPU201は、ハードディスク装置208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を図1に示したポータル部131、受付部132、商品管理部133、時間制御部134または時間制御部184、および、決済部135として機能させることができる。
なお、上記の購入手続き処理プログラムは、必ずしもハードディスク装置208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN(Local Area Network)等に接続された装置にこの購入手続き処理プログラムを記憶させておき、コンピュータ200がこれらから購入手続き処理プログラムを読み出して実行するようにしてもよい。