(58)【調査した分野】(Int.Cl.,DB名)
前記格納手段は、前記他の消費者端末でのショッピングカートへ入れる操作により前記他の消費者端末から送信される第1リクエストにより変更される各消費者の各ショッピングカート内の個数の合計値を前記集計値の1つとして各商品についてそれぞれ格納し、
前記送信手段は、前記各消費者の各ショッピングカート内の個数の合計値が変更された場合に、その変更後の合計値を含むレスポンスを送信する、
ことを特徴とする請求項1に記載の電子商取引サーバ。
前記送信手段は、前記商品についての前記各ショッピングカート内の個数の合計値及び前記在庫数の少なくとも一方が変更された場合には、その各ショッピングカート内の個数の合計値とその在庫数との関係に応じた表示メッセージを生成し、前記各ショッピングカート内の個数の合計値及び前記在庫数と共にその表示メッセージを含むレスポンスを送信する、
ことを特徴とする請求項3に記載の電子商取引サーバ。
【発明を実施するための形態】
【0021】
以下、本発明を実施するための形態としての電子商取引システム(以降、単に本システムとも表記する)について具体例を挙げ説明する。以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【0022】
〔システム構成〕
図1は、実施形態における電子商取引システムの全体構成を示す図である。本実施形態における電子商取引システムは、データサーバ1、店舗サーバ2、管理者端末3、ユーザ端末9等から構成される。データサーバ1、店舗サーバ2及び管理者端末3はそれぞれシステム内ネットワーク6により相互に通信可能に接続される。また、システム内ネットワーク6はネットワーク5と接続されている。これにより、複数のユーザ端末9の各々は、ネットワーク5を介して店舗サーバ2へアクセスすることができ、電子商取引サービスの提供を受けることができる。例えば、ユーザ端末9と店舗サーバ2との間のインタフェースとしてWEBシステムが利用される。
【0023】
ネットワーク5及びシステム内ネットワーク6は、インターネット等の公衆ネットワークであってもよいし、LAN(Local Area Network)やWAN(Wide Area Network)等
の社内ネットワークであってもよい。本発明は、このようなネットワーク5及び6を限定するものではなく、ネットワーク5及び6上を流れるプロトコル等を限定するものでもない。
図1では、ネットワーク5とシステム内ネットワーク6とを区別したが、同一のネットワークであってもよい。
【0024】
〔装置構成〕
以下、本システムを構成する各ノードの構成についてそれぞれ説明する。
【0025】
《データサーバ》
図2は、本実施形態におけるデータサーバ1の構成を示す概念図である。
【0026】
データサーバ1は、ハードウェア構成として、
図2に示されるように、バス13で接続される、制御部11、記憶部12、通信部14等を有する。記憶部12は、例えばハードディスクであり、制御部11で実行される処理で利用される各種情報を記憶する。制御部11は、CPU(Central Processing Unit)等の1又は複数のプロセッサ、このプロセ
ッサの処理に利用される周辺回路(ROM(Read Only Memory)、RAM(Radom Access
Memory)、インタフェース回路等)を有する。通信部14は、社内ネットワーク6に接
続され、店舗サーバ2及び管理者端末3等とIP(Internet Protocol)パケット等の送
受信を行う。
【0027】
データサーバ1は、PC(Personal Computer)等のような汎用コンピュータで構築さ
れてもよいし、ネットワーク接続ストレージ(NAS)のような専用コンピュータで構築されるようにしてもよい。本発明は、データサーバ1のハードウェア構成を限定するものではない。
【0028】
データサーバ1は、記憶部12に格納されるOS(Operating System)等のプログラムが制御部11にて実行されることにより、電子商取引で用いられる情報を管理するデータサーバとして動作する。
図2では、データサーバ1をデータサーバとして動作させるための処理部としてデータ管理部16が示されている。
【0029】
データ管理部16は、記憶部12に格納される、商品情報テーブル17、セール情報テーブル18を管理する。データ管理部16は、店舗サーバ2のような他の装置からの要求を通信部14を介して受けると、この要求に応じて所望のテーブルの値の抽出及び更新を行い、その結果をその要求元の他の装置へ返信する。
【0030】
図3は、商品情報テーブル17の例を示す図である。商品情報テーブル17には、本システムにおいて商取引の対象とされる各商品について、電子商取引するうえで必要となる情報がそれぞれ格納される。商品情報テーブル17は、商品IDフィールド、商品名フィールド、価格フィールド、在庫数フィールド、セールIDフィールド、セール価格フィールド、セール在庫数フィールド、カートカウンタフィールド、最終更新時刻フィールド等を持つ。
【0031】
商品IDフィールドには、各商品を本システムで識別するための識別子が格納される。商品名フィールドには各商品の商品名が格納され、価格フィールドには各商品の価格が格納される。在庫数フィールドには、本システム又は所定の店舗で確保されている各商品の在庫の数が格納される。この在庫数は、例えば、店舗サーバ2で提供される画面においてユーザ端末9上で購入申し込み操作がなされることで減らされる。
【0032】
セールIDフィールドには、商取引対象とされる商品のうち、歳末セール、バーゲンセール、在庫一掃セール等のような売り出しが行われている商品(セール中商品)について、その売り出し(セール)についての情報を識別するためのセールIDが格納される。このセールIDで識別されるセール情報は、セール情報テーブル18に格納される。セール価格フィールドには、セール中商品についてそのセール価格が格納される。セール在庫数フィールドには、セール中商品についてそのセール対象とされている総個数のうちの残り個数(セール在庫)が格納される。
【0033】
カートカウンタフィールドには、ショッピングカートに入れられている各商品について、全てのユーザのショッピングカート内の個数の合計が格納される。ショッピングカートとは、各ユーザにそれぞれ割り当てられ店舗サーバ2で管理される電子的な(擬似)ショッピングカートであって、各ユーザが購入希望の商品を一時的に保持しておき、その中の全商品を一括で購入申し込み操作可能とするためのオンライン機能である。このショッピングカートは電子商取引において周知の技術となっており、単にカートとも表記される。
【0034】
最終更新時刻フィールドには、上述のような商品情報の最終更新時刻が格納される。
【0035】
図4は、セール情報テーブル18の例を示す図である。セール情報テーブル18には、各セールについてそのセール情報がそれぞれ格納される。セール情報テーブル18は、セールIDフィールド、割引率フィールド、価格優先フィールド、セール開始時刻フィールド、セール終了時刻フィールドを持つ。
【0036】
セールIDフィールドには、セールを識別するためのセールIDが格納される。そのセールの対象となっている商品については、上記商品情報テーブル17のセールIDフィールドに、セール情報テーブル18のセールIDフィールドに格納されるセールIDと同じ値が格納される。割引率フィールドには、そのセールの対象とされている商品の割引率(20パーセントなど)が格納される。
【0037】
価格優先フィールドには、上記商品情報テーブル17のセール価格フィールドの値が優先的に用いるべきか、セール情報テーブル18の割引率フィールドの値が優先的に用いるべきかのいずれかを示す値が格納される。例えば、
図4の例のように、価格優先フィールドに価格優先を示す値(TRUE)が格納されているセール(セールID=10)の対象とされている商品のセール価格については、商品情報テーブル17における、セールID=10が格納されているレコードのセール価格フィールドの値(例えば15,000円)が利用される。一方で、価格優先フィールドに割引率優先を示す値(FALSE)が格納されているセー
ル(セールID=11)の対象とされている商品のセール価格については、商品情報テーブル17における、セールID=11が格納されているレコードのセール価格フィールドの値が用いられず、価格フィールドの値をセール情報テーブル18の割引率フィールドで割り引いた値が利用される。
【0038】
セール開始時刻フィールド及びセール終了時刻フィールドには、そのセールの開始時刻及び終了時刻がそれぞれ格納される。
【0039】
なお、データサーバ1は、商品情報テーブル17及びセール情報テーブル18を管理者端末3で更新することができるように、管理者端末3とのインタフェース処理部(図示せず)を備えるようにしてもよい。これにより、管理者端末3により、任意なタイミングでのタイムセールの設定を行うことができる。また、本実施形態では、データサーバ1と店舗サーバ2とを別々のハードウェアで構成する例を示したが、1台のサーバとして実現するようにしてもよい。
【0040】
《店舗サーバ》
図5は、本実施形態における店舗サーバ2の構成を示す概念図である。
【0041】
店舗サーバ2は、ハードウェア構成として、
図5に示されるように、バス23で接続される、制御部21、記憶部22、通信部24等を有する。記憶部22は、例えば、ハードディスクであり、制御部21で実行される処理で利用される各種情報を記憶する。制御部21は、CPU等の1又は複数のプロセッサ、このプロセッサの処理に利用される周辺回路(ROM、RAM、インタフェース回路等)を有する。通信部24は、ネットワーク5及び社内ネットワーク6に接続され、データサーバ1及び管理者端末3等とIPパケット等の送受信を行う。店舗サーバ2は、PC等のような汎用コンピュータで構築されてもよいし、専用コンピュータで構築されるようにしてもよい。本発明は、店舗サーバ2のハードウェア構成を限定するものではない。
【0042】
店舗サーバ2は、記憶部22に格納されるOS、アプリケーション等のプログラムが制御部21にて実行されることにより、
図5に示す各機能及び各処理部を実現する。店舗サーバ2は、WEBサーバ機能30及びアプリケーションサーバ機能31を有する。
【0043】
WEBサーバ機能30は、ユーザ端末9と本システムとの間のインタフェースとして機能する。本実施形態では、このインタフェースとしてWEBシステムが利用される例を挙げているため、以降、WEBサーバに特化して説明する。WEBサーバ機能30としては、画面処理部34、リクエスト制御部35などが含まれる。なお、以下で説明する内容以外のWEBサーバ機能30については一般的な周知のWEBサーバ機能を有していればよい。
【0044】
リクエスト制御部35は、ユーザ端末9上で実行されるWEBブラウザからのHTTP(HyperText Transfer Protocol)によるリクエスト(HTTPメッセージ)を通信部2
4を介して受信し、このリクエストに応じた処理を画面処理部34又はアプリケーションサーバ機能31に依頼する。例えば、リクエスト制御部35は、そのリクエストに含まれるパラメータに応じてそのリクエストに応じた処理の依頼先を決める。リクエスト制御部35は、そのリクエストがWEBページを要求するものである場合には、そのリクエストを画面処理部34に送る。
【0045】
また、リクエスト制御部35は、そのリクエストが特定処理を求めるものである場合には、そのリクエストをアプリケーションサーバ機能31へ送る。当該特定処理としては、リアルタイム処理、画面操作に対応する処理等がある。これらリアルタイム処理及び画面操作に対応する処理については、後述する。
【0046】
画面処理部34は、リクエスト制御部35から送られるリクエストに応じて、WEBページを記憶部22から読み出し、読み出されたWEBページを通信部24を介してそのリクエストの送信元のユーザ端末9へ送る。本実施形態では、以降に述べるアプリケーションサーバ機能31のリアルタイム処理(リアルタイム処理部37)を実現するためにユーザ端末9側で実行されるモジュールも当該リクエストに応じてWEBページ等と共にユーザ端末9へ送られる。このモジュールは、例えば、JAVASCRIPT(登録商標)等で実現され、WEBブラウザで実行される。以降、このモジュールをリアルタイムモジュールと表記する。記憶部22には、本システムで提供する電子商取引サービスを実現するための複数のWEBページ(HTML(HyperText Markup Language)文書、画像、動画
、音声、上記リアルタイムモジュール等)が格納される。
【0047】
アプリケーションサーバ機能31は、データサーバ1で管理される各テーブル(データベース)へのアクセス制御、トランザクション処理等を実行することに加えて、
図5に示
される操作処理部36、リアルタイム処理部37等の各処理を実行する。なお、WEBアプリケーションサーバ機能31により実行される処理のうち一般的なWEBアプリケーションサーバ処理については説明を省略する。
【0048】
操作処理部36は、リクエスト制御部35から送られる特定処理を求めるリクエストのうち所定の画面操作に関するリクエストを受け付け、その処理を実行する。ここで、画面操作とは、画面処理部34により提供されたWEBページに応じてユーザ端末9上で表示された画面に対するユーザ端末9での操作を意味し、例えば、購入申し込み操作、カートへの商品の出し入れ操作等が該当する。
【0049】
操作処理部36は、購入申し込み操作に関するリクエストを受けた場合には、その操作で入力されたデータを取得し、その購入申し込み対象となる商品に対して所定の購入申し込み処理を実行する。操作で入力されたデータとしては、申し込み者としてのユーザ情報(ユーザID、名前、住所、電話番号など)、対象商品を示す商品ID、購入個数、配送先情報、決済方法等が含まれる。所定の申し込み処理では、これらデータの登録処理、配送手配処理、決済処理等が実行される。なお、下記する内容以外の申し込み処理については、一般的な電子商取引サーバで実行される購入申し込み処理が実行されればよく、本発明はそのような処理の内容を限定するものではないため、ここでは説明を省略する。
【0050】
操作処理部36は、これら購入申し込み処理のうちのデータ登録処理において、データサーバ1の商品情報テーブル17の在庫数及びセール在庫数を今回の購入申し込みの個数分減らすように、データサーバ1へ依頼する。これにより、商品情報テーブル17の購入申し込み対象商品を示すレコードにおいて、セールID及びセール在庫数が格納されている場合には、在庫数フィールド及びセール在庫数フィールドが更新され、セールID及びセール在庫数が格納されていない場合には、在庫数フィールドのみが更新される。この更新により、商品情報テーブル17の同レコードの最終更新時刻フィールドがその更新時の時刻に更新される。
【0051】
また、操作処理部36は、カートへの商品の出し入れ操作に関するリクエストを受けた場合には、その操作で入力されたデータを取得し、その操作の対象となる商品に対して所定のカート出入処理を実行する。操作で入力されたデータとしては、操作者としてのユーザ情報(ユーザID等)、対象商品を示す商品ID、入れる個数等が含まれる。ここで、図示していないが、店舗サーバ2では、各ユーザについて、ショッピングカートに入れている商品の商品IDとその個数とがそれぞれ管理されている。よって、所定のカート出入処理では、上記カート出入操作についてのデータの登録処理が行われる。
【0052】
操作処理部36は、このデータ登録処理において、データサーバ1の商品情報テーブル17のカートカウンタを今回のカート出し入れ操作の個数分加算又は減算するようにデータサーバ1に依頼する。これにより、商品情報テーブル17のカート出し入れ操作の対象商品を示すレコードのカートカウンタが更新され、同レコードの最終更新時刻フィールドがその更新時の時刻に更新される。
【0053】
リアルタイム処理部37は、リクエスト制御部35から送られる特定処理を求めるリクエストのうち、リアルタイム処理を求めるリクエストを受け、そのリクエストの送信元のユーザ端末9上で表示されている画面内の情報をリアルタイムに変更(更新)する処理を実行する。具体的には、リアルタイム処理部37は、そのリクエストに対するレスポンスを当該画面内の情報が更新されるまで保留し、当該画面内の情報が更新された場合にその更新された情報を含めたレスポンスをそのリクエストの送信元のユーザ端末9へ送る。リアルタイム処理部37は、当該画面内の情報が更新されたか否かを判定するために、データサーバ1の商品情報テーブル17及びセール情報テーブル18を監視する。なお、この
ようなリアルタイム処理部37で実行される処理については動作例の項において詳細に説明する。
【0054】
《ユーザ端末》
ユーザ端末9は、例えば、PC、携帯電話等である。ユーザ端末9は、店舗サーバ2にアクセスしデータを受け得る一般的な通信機能、提供されたデータに基づく画面を表示及び操作することができる一般的なユーザインタフェース機能等を有するものであればよい。本発明はこのユーザ端末9のハードウェア構成及び機能構成を限定するものではない。なお、ユーザ端末9の機能としては、上述のリアルタイムモジュールの実行環境を提供する機能(通常はWEBブラウザが有する機能)が備えられている必要がある。
【0055】
本実施形態では、ユーザ端末9と店舗サーバ2との間のインタフェースとしてWEBシステムが利用される例を挙げているため、ユーザ端末9を利用するユーザ(消費者)は、電子商取引サービスを受けるにあたり、WEBブラウザを用いて店舗サーバ2にアクセスする。当該ユーザは、店舗サーバ2から提供される店舗情報(販売商品等)をWEBブラウザにより閲覧する。ユーザは、当該WEBブラウザ上に表示される画面をユーザ端末9に接続されるユーザインタフェースを用いて操作することにより、所望の商品を選び、その選んだ商品をカードに入れ、最終的に、カード内の商品を一括で購入申し込みする。当然、購入を取り止める商品を当該カートから出す操作を行うことも可能である。ユーザ端末9上での電子商取引に関する各操作に応じた内容がユーザ端末9から店舗サーバ2へそれぞれ送られる。
【0056】
また、店舗サーバ2からダウンロードされたWEBページに当該リアルタイムモジュールが含まれている場合には、そのリアルタイムモジュールが実行され、このリアルタイムモジュールにより上述のリアルタイム処理を求めるリクエスト(HTTPメッセージ)が送信される。なお、リアルタイムモジュールは、そのリアルタイム処理を求めるリクエストを送信した後、そのレスポンスを待つ。
【0057】
《管理者端末》
管理者端末3は、例えば、PC、携帯電話等である。管理者端末3は、店舗サーバ2又はデータサーバ1にアクセスしデータを受け得る一般的な通信機能、提供されたデータに基づく画面を表示及び操作することができる一般的なユーザインタフェース機能等を有するものであればよい。本発明はこの管理者端末3のハードウェア構成を限定するものではない。
【0058】
管理者端末3は、店舗サーバ2又はデータサーバ1から提供されるユーザインタフェースに応じて、データサーバ1で管理される商品情報テーブル17及びセール情報テーブル18を更新することができる。これにより、本システムの管理者又は店舗開設者(小売業者)はこの管理者端末3を用いることにより、或る商品についてのタイムセールを任意のタイミングで行うことができる。この場合、セール情報テーブル18に今回開催するセールのための新たなレコードが追加し、そのセールID、セール価格、セール在庫数が商品情報テーブル17に格納される。
【0059】
〔動作例〕
以下、本実施形態における電子商取引システムの動作例について
図6のシーケンスに沿って説明する。
図6は、本実施形態における電子商取引システムの動作例を示すシーケンスチャートである。
【0060】
ユーザ(消費者)は、本システムから電子商取引サービスを受ける際には、ユーザ端末9を用いて店舗サーバ2にアクセスする。このとき、ユーザ端末9においてWEBブラウ
ザが操作されることにより、指定された店舗サーバ2のURL(Uniform Resource Locator)等を含むリクエスト(HTTPメッセージ)がユーザ端末9から店舗サーバ2へ送信される(S100)。店舗サーバ2では、WEBサーバ機能30として動作する画面処理部34がそのリクエストを受け、指定されたWEBページを含むレスポンスをそのユーザ端末9へ送る(S101)。
【0061】
結果、ユーザ端末9の表示装置には、
図7に示されるような画面が表示される。
図7は、店舗画面の例を示す図である。
図7の例では、店舗画面71には、本システムで扱われる商品のリストや、セール中の商品がある場合にはそのようなセール情報(73)等が表示される。ユーザは、ユーザ端末9を操作することにより、購入したい商品を選択する(72)。
【0062】
この商品選択操作が行われると、その操作に対応するリクエスト(HTTPメッセージ)がユーザ端末9から店舗サーバ2へ送信される(S100)。店舗サーバ2の画面処理部34は、このリクエストの対象となる、商品購入画面を表示させるためのWEBページを取得する。
図8は、通常時の商品購入画面の例を示す図である。
図9は、セール時の商品購入画面の例を示す図である。商品購入画面81及び91には、店舗画面71において選択された商品を購入する上で必要な詳細情報が表示される。
【0063】
通常時の商品購入画面81に表示される詳細情報のうち、販売価格の欄の価格表示部82に表示される値は、データサーバ1の商品情報テーブル17の価格フィールドに格納される値である。在庫の欄の在庫数表示部83に表示される値(
図8の例では100個)は、商品情報テーブル17の在庫数フィールドに格納される値である。在庫の欄のカート個数表示部84に表示される値は、商品情報テーブル17のカートカウンタフィールドに格納される値である。在庫の欄の在庫メッセージ表示部85に表示される文字列は、在庫数とカート内個数との関係から店舗サーバ2により決定される文字列(メッセージ)である。
【0064】
セール時の商品購入画面91では、通常時の商品購入画面81の販売価格の欄、在庫の欄にセール中の情報がそれぞれ表示される。販売価格の欄の価格表示部92に表示される値は、データサーバ1の商品情報テーブル17のセール価格フィールドに格納される値、又は、商品情報テーブル17の価格フィールドに格納されている値をセール情報テーブル18の割引率フィールドに格納される値で割り引いた値である。これらは、セール情報テーブルの価格優先フィールドの値に基づいて、いずれの値が用いられるかが決定される。セール在庫の欄の在庫数表示部93に表示される値(
図9の例では50個)は、商品情報テーブル17のセール在庫数フィールドの値である。セール在庫の欄のカート個数表示部94に表示される値(
図9の例では46個)は、通常時の商品購入画面81のカート情報部83と同様に、商品情報テーブル17のカートカウンタフィールドの値である。セール在庫の欄の在庫メッセージ表示部95に表示される文字列は、セール在庫数とカート内個数との関係から店舗サーバ2により決定される文字列(メッセージ)である。セール期間の欄のセール期間表示部96に表示される値は、セール情報テーブル18のセール開始時刻フィールド及びセール終了時刻フィールドに格納される値である。
【0065】
店舗サーバ2の画面処理部34は、商品選択操作に対応するリクエストを受けた場合には、商品情報テーブル17のセールIDフィールドに格納される値に応じてそのリクエストの対象となる商品がセール中か否かを判定する。画面処理部34は、対象商品がセール中でなければ(通常時であれば)、そのレスポンスに
図8に示す通常時の商品購入画面81に対応するWEBページを含める。一方で、画面処理部34は、対象商品がセール中である場合には、そのレスポンスに
図9に示すセール時の商品購入画面91に対応するWEBページを含める。
【0066】
画面処理部34は、商品購入画面81に対応するWEBページを取得するにあたり、アプリケーションサーバ機能31に、商品購入画面81における、価格表示部82、在庫数表示部83、カート個数表示部84、在庫メッセージ表示部85をデータサーバ1の商品情報テーブル17内のデータを用いて生成させる。画面処理部34は、対象商品がセール中の場合には、アプリケーションサーバ機能31に、商品購入画面91における、価格表示部92、在庫数表示部93、カート個数表示部94、在庫メッセージ表示部95、セール期間表示部96をデータサーバ1の商品情報テーブル17及びセール情報テーブル18内のデータを用いて生成させる。
【0067】
画面処理部34は、このように生成されたWEBページ(商品購入画面81用データ又は商品購入画面91用データ)を、リアルタイムモジュール61と共にユーザ端末9へ送る(S101)。これにより、ユーザ端末9上では、商品購入画面81又は91が表示される。
【0068】
ユーザ端末9上では、WEBブラウザにより商品購入画面81又は91が表示されると共に、リアルタイムモジュール61が実行される。このリアルタイムモジュール61は、商品購入画面81又は91の操作を制限することなく、商品購入画面81又は91が表示されている間動作する。以降、このリアルタイムモジュール61と店舗サーバ2のリアルタイム処理部37との処理(S120、S121、S122)により、商品購入画面81又は91内の情報がデータサーバ1の商品情報テーブル17及びセール情報テーブル18に基づいてリアルタイムに更新されるようになる。このリアルタイムモジュール61と店舗サーバ2のリアルタイム処理部37との処理については後述する。
【0069】
ユーザ端末9において商品購入画面81又は91が表示される状態で、「カートへ入れる」ボタン86又は97が選択される(カート入れ操作が行われる)と(S130)、カート入れ操作に関するリクエストがユーザ端末9から店舗サーバ2へ送られる(S131)。店舗サーバ2では、操作処理部36がそのリクエストを受け付けると、そのリクエストの送信元であるユーザのショッピングカート情報(図示せず)にそのリクエストの対象となる商品を加えると共に、そのリクエストの対象となる商品に関する商品情報テーブル17のカートカウンタフィールドを1加算するようデータサーバ1へ依頼する(S132)。店舗サーバ2の操作処理部36は、このリクエストに対する所定のレスポンスを返信する(S133)。
【0070】
一方で、ユーザ端末9で表示される図示しない所定画面においてショッピングカートに入れられた商品を取り止める操作(カート出し操作)が行われた場合には、その操作に関するリクエスト(S131)に応じて、商品情報テーブル17のカートカウンタフィールドが1減算される(S132)。
【0071】
また、ユーザ端末9で表示される図示しない所定画面においてショッピングカートに入れられた全商品の購入申し込み操作が行われた場合には(S140)、その操作に関するリクエストがユーザ端末9から店舗サーバ2へ送られる(S141)。店舗サーバ2では、操作処理部36がそのリクエストを受け付けると、配送手配処理、決済処理等が実行されると共に、そのリクエストの対象となる商品に関する商品情報テーブル17の在庫数フィールドを1減算するようデータサーバ1へ依頼する(S142)。店舗サーバ2の操作処理部36は、このリクエストに対する所定のレスポンスを返信する(S143)。
【0072】
次に、ユーザ端末9で実行されるリアルタイムモジュール61と店舗サーバ2のリアルタイム処理部37との動作例について
図10及び
図11を用いて説明する。
図10は、ユーザ端末9で実行されるリアルタイムモジュール61の動作例を示すフローチャートであ
る。
図11は、店舗サーバ2のリアルタイム処理部37の動作例を示すフローチャートである。
【0073】
まず、リアルタイムモジュール61の動作例について
図10を用いて説明する。
【0074】
リアルタイムモジュール61は、ユーザ端末9上で実行されると、商品購入画面が表示されているか否かを判定する(S200)。リアルタイムモジュール61は、商品購入画面81又は91が表示されている場合には(S200;YES)、その商品購入画面の対象となっている商品を示す商品IDを含めた、リアルタイム処理を求めるリクエスト(HTTPメッセージ)を店舗サーバ2へ送信する(S201)。一方で、リアルタイムモジュール61は、商品購入画面81又は91が表示されていない場合には(S200;NO)、商品IDを含めない当該リクエストを店舗サーバ2へ送信する(S202)。商品購入画面81又は91が表示されていないときには、例えば、
図7の例のような店舗画面が表示されている。
【0075】
リアルタイムモジュール61は、そのリアルタイム処理を求めるリクエストを送信した後、それに対するレスポンスが店舗サーバ2から送信されるまで待ち状態となる(S203)。リアルタイムモジュール61は、リアルタイム処理を求めるリクエストに対するレスポンスを受信すると(S203;YES)、そのレスポンスにセール状態変更フラグ(例えば、セール状態変更を示す文字列“SaleFlagChange”)が含まれているか否かを判定する(S204)。
【0076】
レスポンスにセール状態変更フラグが含まれている場合とは、商品情報テーブル17に格納される全商品のうち、現在表示されている画面が店舗サーバ2から提供されてから後にセール状態が通常状態からセール中となった、又は、セール中から通常状態となった商品が存在する場合である。言い換えれば、表示されている画面自体を切替える必要がある場合である。そこで、リアルタイムモジュール61は、そのレスポンスにセール状態変更フラグが含まれていると判断すると(S204;YES)、ブラウザに画面更新を要求する(S205)。結果、ブラウザにより画面更新のリクエストが店舗サーバ2へ送られ、そのレスポンスに応じてユーザ端末9上の画面が更新される。例えば、商品購入画面81から商品購入画面91への画面更新、又は、商品購入画面91から商品購入画面81への画面更新、或いは、
図7の店舗画面71からセール情報表示部73が新たに表示されたり消去されたりする。
【0077】
一方で、リアルタイムモジュール61は、そのレスポンスにセール状態変更フラグが含まれていないと判断すると(S204;NO)、同レスポンスに商品情報変更フラグ(例えば、商品情報が変更されたことを示す文字列“ItemChange”)が含まれているか否かを判定する(S206)。
【0078】
リアルタイムモジュール61は、商品情報変更フラグが含まれていると判断すると(S206;YES)、同レスポンスからリアルタイム変更対象のデータを抽出する。ここで、リアルタイム変更対象のデータには、通常時の商品購入画面81で表示される、在庫数、カート内個数、表示メッセージ(在庫メッセージ)データ、セール中の商品購入画面91で表示される、セール在庫数、カート内個数、表示メッセージ(在庫メッセージ)データが含まれる。
【0079】
リアルタイムモジュール61は、抽出されたデータを、表示されている商品購入画面の対象表示部に反映させる(S207)。これにより、通常時の商品購入画面81が表示されている場合には、在庫数表示部83、カート個数表示部84、在庫メッセージ表示部85がリアルタイムに変更される。また、セール中の商品購入画面91が表示されている場
合には、在庫数表示部93、カート個数表示部94、在庫メッセージ表示部95がリアルタイムに変更される。
【0080】
リアルタイムモジュール61は、このようなリアルタイム変更対象のデータの画面への反映が完了すると、再度、判定処理(S200)の後(S200;YES)、対象商品のIDを含めたリクエストを店舗サーバ2へ送信し(S201)、レスポンス待ち状態となる(S203)。なお、商品情報変更フラグが含まれていないと判断した場合にも(S206;NO)、同様の処理の後、レスポンス待ち状態となる(S200、S201、S203)。
【0081】
次に、このようなリアルタイムモジュール61とやりとりする店舗サーバ2のリアルタイム処理部37の動作例について
図11を用いて説明する。
【0082】
店舗サーバ2のリアルタイム処理部37は、ユーザ端末9(リアルタイムモジュール61)からリアルタイム処理を求めるリクエストを受信する(S301)。このとき、リアルタイム処理部37は、そのリクエストを受信した時刻(リクエスト受付時刻)を保持する(S302)。
【0083】
続いて、リアルタイム処理部37は、セール情報テーブル18に格納されるセール開始時刻及びセール終了時刻に基づいて、リクエスト受付時刻と現在時刻との間のセール状態を比較する(S304)。具体的には、リクエスト受付時刻がセール開始時刻とセール終了時刻との間に存在する商品群と、現在時刻がセール開始時刻とセール終了時刻との間に存在する商品群と、を比較する。この比較で両者に差異がある場合には(S305;YES)、リアルタイム処理部37は、セール状態変更フラグ(例えば、セール状態変更を示す文字列“SaleFlagChange”)を含むレスポンスをユーザ端末9へ返信する(S306)。
【0084】
一方で、リアルタイム処理部37は、セール状態に差異がないと判断すると(S305;NO)、その受信リクエストに商品IDが含まれているか否かを判定する(S307)。なお、リアルタイム処理部37は、当該リクエストを受信した直後(S301及びS302の処理後)である場合には、上述のようなセール状態の差異を判定することなく、処理(S307)を実行するようにしてもよい。当該リクエストが受信された直後は、画面が更新された直後でもあるため、セール状態に差異がないことが多いからである。
【0085】
リアルタイム処理部37は、受信リクエストに商品IDが含まれている場合には(S307;YES)、商品情報テーブル17におけるその商品IDで特定されるレコードの最終更新時刻を抽出し、この最終更新時刻と上記リクエスト受付時刻とを比較する(S308)。即ち、リアルタイム処理部37は、当該リクエストが受信された後に対象商品の商品情報テーブル17内のデータが更新されたか否かを判定する。
【0086】
リアルタイム処理部37は、対象商品のデータが更新された(商品情報に差異がある)と判定すると(S309;YES)、受信リクエストに含まれていた商品IDで特定される商品情報テーブル17の該当レコードから在庫数、カート内個数を抽出する。リアルタイム処理部37は、該当レコードのセールIDフィールドに有効値が設定されている場合には、セール在庫数、カート内個数を抽出する。
【0087】
リアルタイム処理部37は、抽出された在庫数(又はセール在庫数)及びカート内個数の関係から、表示メッセージデータを生成する(S310)。具体的には、例えば、在庫数とカート内個数との差が所定閾値(例えば5個)以内である場合には、「もうすぐ在庫(セール在庫)がなくなりそうです」のような表示メッセージデータを生成し、それ以外
の場合には、「まだ在庫(セール在庫)には余裕があります」のような表示メッセージデータを生成する。
【0088】
続いて、リアルタイム処理部37は、商品情報変更フラグ(例えば、商品情報が変更されたことを示す文字列“ItemChange”)、在庫数、カート内個数、及び、表示メッセージデータを含むレスポンスをユーザ端末9へ送信する(S311)。
【0089】
リアルタイム処理部37は、受信リクエストに商品IDが含まれていない場合(S307;NO)には、セール状態に差異が生じるまで、即ち、その受信リクエストが受信された後にセール状態が更新されるまで、レスポンスを返信することなく待ち状態となる(S304、S305;NO、S307;NO)。また、リアルタイム処理部37は、商品情報に差異がないと判定した場合(S309;NO)には、セール状態に差異が生じるか又は商品情報に差異が生じるまで、レスポンスを返信することなく待ち状態となる。
【0090】
〈実施形態の作用及び効果〉
上述したように、本実施形態における電子商取引システムでは、ユーザ端末9でのユーザの画面操作(例えば、購入申し込み操作、カートへの出し入れ操作)に応じてユーザ端末9から送信されるリクエストを店舗サーバ2が受信すると、その操作内容に応じてデータサーバ1に格納されている各商品についての電子商取引情報(カート内個数、在庫数など)が更新される。
【0091】
一方で、WEBページ等の画面データと共に店舗サーバ2からユーザ端末9へ送られたリアルタイムモジュール61がユーザ端末9で実行されると、リアルタイム処理を求めるリクエストがユーザ端末9から店舗サーバ2へ送られる。このリクエストに対するレスポンスは、店舗サーバ2のリアルタイム処理部37(アプリケーションサーバ機能31)においてそのリクエストの対象となる商品についての電子商取引情報やセール情報が変更されるまで保留され、リアルタイムモジュール61も表示される画面の操作を制限することなくそのレスポンスを待つ。
【0092】
上述のようなユーザの画面操作に応じてデータサーバ1内の対象商品の電子商取引情報が変更されると、その変更された情報を含むレスポンスが店舗サーバ2からユーザ端末9へ送られ、このレスポンス内の情報がリアルタイムモジュール61により画面に反映される。また、データサーバ1内の各商品の情報やセール情報は管理者端末3からも変更することができ、この変更についてもユーザの画面操作の場合と同様に、ユーザ端末9の画面にリアルタイムに反映される。
【0093】
このように、本実施形態によれば、他のユーザ(消費者)の電子商取引操作に応じて変更される各商品の在庫数やカート内個数がリアルタイムにユーザ端末9の画面に反映されるため、消費者ユーザは、同時間帯に来店している他の消費者の動向を把握しながら、購入商品を決める上での参考にすることができる。一方で、本実施形態のシステムで扱われる商品の販売者は、他の消費者動向をリアルタイムに把握させることで、消費者の購買意欲を向上させることができる。また、販売者は、セール情報もリアルタイムにユーザ端末9へ表示させることができるため、管理者端末3でデータサーバ1内のセール情報を変更することによりタイムセール等のようなセールを任意なタイミングで実行することができる。