(57)【要約】【課題】仮想店舗における複数のグループに属するユーザーに、複数用意されている支払条件のうち、より有利な条件で商品を購入させる。【解決手段】ユーザーが属する複数のグループに共通しており、かつ、ユーザーによって選択された商品に対して適用される、グループごとに用意された支払条件のうち、優先度が最も高い支払条件を示す情報を含んだページを生成する。この支払条件は、どのグループにも属さないユーザーが同じ商品を購入する場合よりも有利な条件で商品を購入できる条件である。【選択図】図１
2013140439.tif 000002
【特許請求の範囲】
【請求項１】
仮想店舗において購入できる商品のうち、上記仮想店舗においてユーザーが属する複数のグループに共通しており、かつ、上記ユーザーによって選択されたいずれかの商品を特定する特定手段と、
上記グループごとに用意され、あらかじめ所定の優先度が設定された、上記ユーザーによって選択された上記商品を上記ユーザーがより有利な条件で購入するための支払条件を取得する取得手段と、
上記取得手段によって取得された上記支払条件のうち、上記優先度が最も高い上記支払条件を選択する選択手段と、
上記選択手段によって選択された上記支払条件を示す情報を含んだ表示情報を生成する生成手段とを備えていることを特徴とする電子商取引サーバ。
【請求項２】
上記取得手段は、上記有利な条件で購入するための支払い条件として、上記商品をより低価格で購入するための支払条件を取得することを特徴とする請求項１に記載の電子商取引サーバ。
【請求項３】
上記選択手段は、上記優先度が互いに等しい複数の上記支払条件が存在する場合、当該複数の上記支払条件を全て選択し、
上記生成手段は、上記選択手段によって選択された複数の上記支払条件を、いずれかの上記支払条件をユーザーが選択できるような状態ですべて含んだ上記表示情報を生成することを特徴とする請求項１または２に記載の電子商取引サーバ。
【請求項４】
上記生成手段は、上記グループごとに用意され、あらかじめ所定の優先度が設定された、上記表示情報を生成するためのテンプレートのうち、もっとも優先度が高いテンプレートを用いて、上記表示情報を生成することを特徴とする請求項１〜３のいずれか１項に記載の電子商取引サーバ。
【請求項５】
上記複数のグループのうちいずれかに対応し、あらかじめ所定の優先度が設定された商品グループを、上記グループごとにすべて取得する商品グループ取得手段と、
上記商品グループ取得手段によって取得された各上記商品グループを、当該商品グループに設定された上記優先度に基づく順序で含んだ商品グループ表示情報を生成する商品グループ表示情報生成手段をさらに備えていることを特徴とする請求項１〜４のいずれか１項に記載の電子商取引サーバ。
【請求項６】
請求項１〜５のいずれか１項に記載の電子商取引サーバと、当該電子商取引サーバにアクセスするための端末装置とを備えていることを特徴とする電子商取引システム。
【請求項７】
仮想店舗において購入可能な商品のうち、上記仮想店舗においてユーザーが属する複数のグループに共通しており、かつ、上記ユーザーによって選択されたいずれかの商品を特定する特定ステップと、
上記グループごとに用意され、あらかじめ所定の優先度が設定された、上記ユーザーによって選択された上記商品を上記ユーザーがより有利な条件で購入するための支払条件を取得する取得ステップと、
上記取得ステップにおいて取得された上記支払条件のうち、上記優先度が最も高い上記支払条件を選択する選択ステップと、
上記選択ステップにおいて選択された上記支払条件を示す情報を含んだ表示情報を生成する生成ステップとを備えていることを特徴とする電子商取引サーバの動作方法。
【請求項８】
請求項１から５のいずれか１項に記載の電子商取引サーバを動作させるプログラムであって、コンピュータを上記の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想店舗を提供する電子商取引サーバおよびその動作方法、電子商取引システム、およびプログラムに関する。
【背景技術】
【０００２】
インターネット上の商用サービスの一つに、仮想店舗がある。ユーザーはパーソナルコンピュータやスマートフォンなどの端末装置を用いて、仮想店舗を提供する電子商取引サーバにアクセスし、仮想店舗において提供される商品を購入する。近年では、電子コンテンツ（電子書籍等）を販売する仮想店舗も多く開設されている。
【０００３】
仮想店舗を実現するための技術に関して、特に近年では、ユーザーごとに仮想店舗のページをカスタマズしてユーザーに提供する技術が多数開発されている。たとえば特許文献１には、ユーザーが属するグループに対してカスタマイズされた取引条件に合ったＷＷＷページを動的に作成し、そのＷＷＷページをユーザーのウェブクライアントへ送信して表示させる技術が開示されている。この文献の技術によれば、ユーザーに対してＧＵＩの言語や取引条件を自動的に選別できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２８４００８号明細書（２００３年１０月３日公開）
【特許文献２】特開２００８−２７６７６４号明細書（２００８年１１月１３日公開）
【特許文献３】特開２００４−２２７６０４号明細書（２００４年８月１２日公開）
【特許文献４】特開２０１０−２５０８３０号明細書（２０１０年１１月４日公開）
【特許文献５】特開２０００−９９５７７号明細書（２０００年４月７日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術では、ユーザーがある特定の一つのグループに属することを前提としている。したがって、ユーザーが複数のグループに属している場合に、より有利な取引条件に合ったＷＷＷページを生成することはできない。
【０００６】
本発明は上記の課題を解決するためになされたものである。そして、その目的は、仮想店舗における複数のグループに属するユーザーに、複数用意されている支払条件のうち、より有利な条件で商品を購入させることができる電子商取引サーバおよびその動作方法、電子商取引システム、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る電子商取引サーバは、上記の課題を解決するために、
仮想店舗において購入可能な商品のうち、上記仮想店舗においてユーザーが属する複数のグループに共通しており、かつ、上記ユーザーによって選択されたいずれかの商品を特定する特定手段と、
上記グループごとに用意され、あらかじめ所定の優先度が設定された、上記ユーザーによって選択された上記商品を上記ユーザーがより有利な条件で購入するための支払条件を取得する取得手段と、
上記取得手段によって取得された上記支払条件のうち、上記優先度が最も高い上記支払条件を選択する選択手段と、
上記選択手段によって選択された上記支払条件を示す情報を含んだ表示情報を生成する生成手段とを備えていることを特徴としている。
【０００８】
上記の構成において、ユーザーは、仮想店舗における複数のグループに属している。仮想店舗では、これら複数にグループに共通する商品が用意されている。また、グループごとに、商品に対して適用可能な支払条件も用意されている。あるグループ用の支払条件は、どのグループにも属さないユーザーが同じ商品を購入する場合よりも、より有利な条件で商品を購入できるものである。たとえば、定価の１０％オフで購入できたり、または、一定数までは無料で購入できたりするような支払条件である。
【０００９】
ユーザーが、自身が属する複数のグループに共通するいずれかの商品を選択したとき、電子商取引サーバは、各グループに用意されている各支払条件を取得する。各支払条件には、あらかじめ、所定の優先度が設定されている。電子商取引サーバは、取得した複数の支払条件のうち、もっとも優先度が高いものを選択する。通常、より有利な条件で商品を購入できる支払条件ほど、より高い優先度が設定されている。
【００１０】
以上のように、本発明に係る電子商取引サーバは、仮想店舗における複数のグループに属するユーザーに、複数用意されている支払条件のうち、より有利な条件で商品を購入させることができる。
【００１１】
本発明に係る電子商取引方法は、上記の課題を解決するために、
仮想店舗において購入可能な商品のうち、上記仮想店舗においてユーザーが属する複数のグループに共通しており、かつ、上記ユーザーによって選択されたいずれかの商品を特定する特定ステップと、
上記グループごとに用意され、あらかじめ所定の優先度が設定された、上記ユーザーによって選択された上記商品を上記ユーザーがより有利な条件で購入するための支払条件を取得する取得ステップと、
上記取得ステップにおいて取得された上記支払条件のうち、上記優先度が最も高い上記支払条件を選択する選択手段と、
上記選択ステップにおいて選択された上記支払条件を示す情報を含んだ表示情報を生成する生成ステップとを備えていることを特徴としている。
【００１２】
上記の構成によれば、本発明に係る電子商取引サーバと同様の作用効果を奏する。
【００１３】
本発明に係る電子商取引サーバでは、さらに、
上記取得手段は、上記有利な条件で購入するための支払い条件として、上記商品をより低価格で購入するための支払条件を取得することが好ましい。
【００１４】
上記の構成によれば、仮想店舗における複数のグループに属するユーザーに、複数用意されている支払条件のうち、より低価格で商品を購入させることができる。
【００１５】
本発明に係る電子商取引サーバでは、さらに、
上記選択手段は、上記優先度が互いに等しい複数の上記支払条件が存在する場合、当該複数の上記支払条件を全て選択し、
上記生成手段は、上記選択手段によって選択された複数の上記支払条件を、いずれかの上記支払条件をユーザーが選択できるような状態ですべて含んだ上記表示情報を生成することが好ましい。
【００１６】
上記の構成によれば、ユーザーが選択した商品に、同じ優先度の支払条件が複数設定されている場合、ユーザーは、どの支払条件を適用して商品を購入するのかを、選択することができる。これにより、ユーザーの都合や事情に応じた支払条件が商品に適用される効果を奏する。
【００１７】
本発明に係る電子商取引サーバでは、さらに、
上記生成手段は、上記グループごとに用意され、あらかじめ所定の優先度が設定された、上記表示情報を生成するためのテンプレートのうち、もっとも優先度が高いテンプレートを用いて、上記表示情報を生成することが好ましい。
【００１８】
上記の構成によれば、電子商取引サーバは、複数のテンプレートのうちもっと優先度が高いものに基づく表示情報が生成される。したがって、ユーザーに適した表示情報を簡単に生成することができる。
【００１９】
本発明に係る電子商取引サーバでは、さらに、
上記複数のグループのうちいずれかに対応し、あらかじめ所定の優先度が設定された商品グループを、上記グループごとにすべて取得する商品グループ取得手段と、
上記商品グループ取得手段によって取得された各上記商品グループを、当該商品グループに設定された上記優先度に基づく順次で含んだ商品グループ表示情報を生成する商品グループ表示情報生成手段をさらに備えていることが好ましい。
【００２０】
上記の構成によれば、電子商取引サーバは、複数のグループに属するユーザーに対して、各グループに対応する商品グループをすべて含んだ商品グループ表示情報を生成する。商品グループとは、たとえば、複数の商品を一括で説明する情報のことである。電子商取引サーバは、商品グループ表示情報における各商品グループの順序を、各商品グループに設定されている優先度に基づき決定する。たとえば、より優先度が高い商品グループほど、画面上のより上部に表示するような商品グループ表示情報を生成する。その結果、電子商取引サーバは、複数のグループに属するユーザーに対して、より価値の高い商品グループ表示情報を生成することができる。
【００２１】
本発明に係る電子商取引システムは、上記の課題を解決するために、
上述したいずれかの電子商取引サーバと、端末装置とを備えていることを特徴としている。
【００２２】
上記の構成によれば、
この結果、仮想店舗における複数のグループに属するユーザーが、複数用意されている支払条件のうち、より有利な条件で商品を購入できる電子商取引システムを実現することができる。
【００２３】
なお、上記電子商取引サーバは、コンピュータによって実現してもよい。この場合、コンピュータを上記各手段として動作させることにより上記電子商取引サーバをコンピュータにおいて実現するプログラムも、本発明の範疇に入る。
【発明の効果】
【００２４】
本発明に係る電子商取引サーバは、仮想店舗における複数のグループに属するユーザーに、複数用意されている支払条件のうち、より有利な条件で商品を購入させることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係る電子商取引サーバの要部構成を示すブロック図である。
【図２】本発明の一実施形態に係る電子商取引システムの全体構成を示す構成図である。
【図３】顧客テーブルの一例を示す図である。
【図４】顧客グループテーブルの一例を示す図である。
【図５】顧客−顧客グループテーブルの一例を示す図である。
【図６】テンプレートテーブルの一例を示す図である。
【図７】テンプレート−顧客グループテーブルの一例を示す図である。
【図８】商品グループテーブルの一例を示す図である。
【図９】商品グループ−顧客グループテーブルの一例を示す図である。
【図１０】キャンペーンテーブルの一例を示す図である。
【図１１】顧客−キャンペーンテーブルの一例を示す図である。
【図１２】商品−キャンペーンテーブルの一例を示す図である。
【図１３】商品テーブルの一例を示す図である。
【図１４】カートテーブルの一例を示す図である。
【図１５】電子商取引サーバが仮想店舗のページを生成する際の基本的な処理の流れを示すフローチャートである。
【図１６】ページ生成部１４が、ページを生成するためのテンプレートを選択する際の処理の流れを示すフローチャートである。
【図１７】（ａ）は、電子商取引サーバが仮想店舗のページを生成するためのテンプレートの一例を模式的に示す図であり、（ｂ）テンプレートの記述の一例を示す図である。
【図１８】電子商取引サーバが仮想店舗のトップページを生成する際の処理の流れを示すフローチャートである。
【図１９】（ａ）は、あるグループ用のトップページのテンプレートを模式的に示す図であり、（ｂ）は、他のグループ用のトップページのテンプレートを模式的に示す図であり、（ｃ）は、商品グループの情報が埋め込まれたトップページを示す図であり、（ｄ）は、新着商品の情報が埋め込まれたトップページを示す図である。
【図２０】電子商取引サーバが仮想店舗の商品詳細ページを生成する際の処理の流れを示すフローチャートである。
【図２１】（ａ）は、あるグループ用の商品詳細ページのテンプレートを模式的に示す図であり、（ｂ）は、商品の情報が埋め込まれた商品詳細ページを示す図であり、（ｃ）は、キャンペーンの情報が埋め込まれた商品詳細ページを示す図である。
【図２２】電子商取引サーバが仮想店舗の購入ページを生成する際の処理の流れを示すフローチャートである。
【図２３】（ａ）は、あるグループ用の購入ページのテンプレートを模式的に示す図であり、（ｂ）は、キャンペーンの情報が埋め込まれた購入ページを示す図である。
【図２４】電子商取引サーバが仮想店舗のカートページを生成する際の処理の流れを示すフローチャートである。
【図２５】（ａ）は、あるグループ用のカートページのテンプレートを模式的に示す図であり、（ｂ）は、商品の情報が埋め込まれたカートページを示す図であり、（ｃ）は、キャンペーンの情報が埋め込まれたカートページを示す図である。
【図２６】電子商取引サーバが仮想店舗の商品一覧ページを生成する際の処理の流れを示すフローチャートである。
【図２７】（ａ）は、あるグループ用の商品一覧ページのテンプレートを模式的に示す図であり、（ｂ）は、商品の情報が埋め込まれた商品一覧ページを示す図である。
【発明を実施するための形態】
【００２６】
〔実施形態１〕
本発明に係る一実施形態について、図１〜図２７を参照して以下に説明する。
【００２７】
（電子商取引システム１００）
図２は、本発明の一実施形態に係る電子商取引システム１００の全体構成を示す構成図である。この図に示すように、電子商取引システム１００は、電子商取引サーバ１および複数の端末装置２を備えている。電子商取引サーバ１および各端末装置２は、通信回線４（たとえばインターネット）を通じて互いに接続されている。各端末装置２は、たとえば、パーソナルコンピュータ、携帯電話機、またはスマートフォンである。端末装置２のユーザーは、端末装置２を操作することによって、電子商取引サーバ１が提供する仮想店舗にアクセスし、商品を購入することができる。
【００２８】
（電子商取引サーバ１）
図１は、本発明の一実施形態に係る電子商取引サーバ１の要部構成を示すブロック図である。この図に示すように、電子商取引サーバ１は、ページ要求取得部１０（特定手段）、ページ判別部１２、ページ生成部１４（特定手段）、ユーザグループ判別部１６、ページ生成制御部１８（取得手段、選択手段、商品グループ取得手段）、テンプレート選択部２０、データ生成部２２（生成手段、商品グループ表示情報生成手段）、ページ出力部２４、商品検索部２６、支払条件設定蓄積部２８、ユーザグループ設定蓄積部３０、テンプレート蓄積部３２、および商品グループ蓄積部３４を備えている。
【００２９】
電子商取引サーバ１の管理者は、仮想店舗を運営する。端末装置２のユーザーは、端末装置２を用いて電子商取引サーバにアクセスすることによって、仮想店舗を利用する。仮想店舗では、各種の商品を販売している。ユーザは、仮想店舗を通じて所望の購入することができる。
【００３０】
仮想店舗には、複数のグループが用意されている。たとえば、ある特定のクレジットカードの会員を対象にしたグループ、または、ある特定の交流会の会員を対象にしたグループ、または、ある特定の実店舗の会員を対象にしたグループ、などがある。ユーザーは、仮想店舗に会員登録をする際、会員登録要件を満たすグループに属することができる。また、ユーザーは、複数のグループに同時に属することもできる。
【００３１】
仮想店舗では、複数の商品をまとめた商品グループが用意されている。この商品グループは、ユーザが属することができる少なくともいずれかのグループに関連付けられている。
【００３２】
電子商取引サーバ１は、仮想店舗を利用するユーザーに対して、ユーザーが属するグループに応じたサービスを提供する。たとえば、ある特定のグループに属するユーザーのみが購入可能な商品を用意していたり、または、ある特定のグループに属するユーザーにのみ対して提供する特別の割引キャンペーンを用意していたりする。電子商取引サーバ１は、ユーザーが属するグループに応じて最適なページを生成し、ユーザーの端末装置２に提供する。言い換えると、電子商取引サーバは、ページをユーザーに応じてカスタマイズしてから、端末装置２に提供する。これによりユーザーは、自身が属するグループに応じたページを通じて、仮想店舗での商品の閲覧、選択、および購入が可能となる。
【００３３】
ユーザーが複数のグループに属するとき、電子商取引サーバ１は、各グループの利点を組み合わせた形態で、仮想店舗のサービスを提供する。その詳細は、以下に詳述する。
【００３４】
電子商取引サーバ１は、ユーザが属するグループに基づき、ユーザが仮想店舗を利用する際に閲覧する各種のページを生成して、端末装置２に提供する。本実施形態では、トップページ、商品詳細ページ、購入ページ、カートページ、および商品一覧ページを生成する例を説明する。電子商取引サーバは、これらのページを生成する際、メモリに形成されている各種のテーブルを利用する。そこでまず、電子商取引サーバ１が利用する各テーブルについて以下に説明する。
【００３５】
（顧客テーブル）
顧客テーブルは、仮想店舗の会員を管理するためのテーブルである。図３は、顧客テーブルの一例を示す図である。この図に示すように、顧客テーブルは、ユーザーが仮想店舗を利用する際に入力すべき識別子（user_id）と、ユーザーが仮想店舗を利用する際に入力すべきパスワード（password）とを、顧客を識別するための識別子（id）ごとに互いに関連づけて格納している。顧客テーブルにおける識別子（id）は、他のテーブルではcustomer_idとして用いられている。ここでいう顧客とは、仮想店舗を利用する立場でのユーザーと同じ意味である。言い換えると、仮想店舗の会員として登録されたユーザは、仮想店舗の顧客に相当する。
【００３６】
（顧客グループテーブル）
顧客グループテーブルは、仮想店舗において用意されているグループを管理しているテーブルである。図４は、顧客グループテーブルの一例を示す図である。この図に示すように、顧客グループテーブルは、グループの種別を示す情報（type）と、グループの名称を示す情報（name）とを、グループを識別するための識別子ごとに互いに関連づけて格納している。顧客グループテーブルにおける識別子（id）は、他のテーブルでは、group_idとして用いられている。
【００３７】
（顧客−顧客グループテーブル）
顧客−顧客グループテーブルは、仮想店舗の顧客がどのグループ（顧客グループ）に属するのかを管理するためのテーブルである。図５は、顧客−顧客グループテーブルの一例を示す図である。この図に示すように、顧客−顧客グループテーブルは、グループを識別するための識別子（group_id）と、顧客を識別するための識別子（id）と、優先度（priority）とを、互いに関連づけて格納している。これにより、顧客がどのグループに属しているのかを管理している。たとえば図５では、customer_idが「１」である顧客が、３つのグループ、すなわちgroup_idが「０」のグループと、group_idが「１」のグループと、group_idが「３」のグループとに属している。ここで、group_idが「０」のグループには優先度が「０」に設定され、group_idが「１」のグループには優先度が「２」に設定され、さらにgroup_idが「２」のグループには優先度が「１」に設定されている。
【００３８】
（テンプレートテーブル）
テンプレートテーブルは、電子商取引サーバ１が仮想店舗のページを生成するために用いるテンプレートを管理するためのテーブルである。図６は、テンプレートテーブルの一例を示す図である。この図に示すように、テンプレートテーブルは、display_idと、テンプレートの格納場所を示す情報（path）とを、テンプレートを識別するための識別子（id）ごとに関連づけて格納している。テンプレートテーブルにおける識別子（id）は、他のテーブルでは、template_idとして用いられている。
【００３９】
なお、テンプレートとは、仮想店舗のページの元となる電子データである。電子商取引サーバ１は、テンプレートの一部分を他のデータで置換することによって、ページを生成する。その際、置換するデータを変えることによって、同じテンプレートから異なる内容のページを生成することができる。また、本実施形態では、ページはＨＴＭＬ形式のウェブページのことであるが、必ずしもこれに限定されない。ページは、ユーザに対する提示する各種の情報を含んだ表示情報であれば、どのような形式のものであってもよい。
【００４０】
（テンプレート−顧客グループテーブル）
テンプレート−顧客グループテーブルは、どのテンプレートがどのグループに属するのかを管理するためのテーブルである。図７は、テンプレート−顧客グループテーブルの一例を示す図である。この図に示すように、テンプレート−顧客グループテーブルは、group_idとtemplate_idとを互いに関連づけて格納している。
【００４１】
（商品グループテーブル）
商品グループテーブルは、仮想店舗において用意されている商品グループを管理するためのテーブルである。図８は、商品グループテーブルの一例を示す図である。この図に示すように、商品グループテーブルは、商品グループの名称を示す情報（name）と、商品グループの種別を識別するための識別子（type_id）と、商品グループに属する商品を識別するための識別子群（type_ids）と、商品グループの優先度とを、商品グループを識別するための識別子（id）ごとに、互い関連づけて格納している。商品グループテーブルにおける識別子（id）は、他のテーブルではproduct_group_idとして用いられている。
【００４２】
（商品グループ−顧客グループテーブル）
商品グループ−顧客グループテーブルは、どの商品グループがどのグループに属するのかを管理するためのテーブルである。図９は、商品グループ−顧客グループテーブルの一例を示す図である。この図に示すように、商品グループ−顧客グループテーブルは、group_idとproduct_group_idとを互いに数と格納している。
【００４３】
（キャンペーンテーブル）
キャンペーンテーブルは、仮想店舗において用意されているキャンペーンを管理するためのテーブルである。図１０は、キャンペーンテーブルの一例を示す図である。この図に示すように、キャンペーンテーブルは、キャンペーン（支払条件）の種別を示す情報（type）と、キャンペーンの名称を示す情報（name）と、キャンペーンが適用された場合における商品の割引率（discount_rate）と、キャンペーンを適用可能な最大の商品数（max_count）と、キャンペーンを適用可能な商品の最大価格（max_amount）と、キャンペーンの優先度（priory）と、キャンペーンが適用されるグループを識別するための識別子（group_id）と、キャンペーンを商品に自動的に適用するか否かを示す情報（auto_apply）とを、キャンペーンを識別するための識別子（id）ごとに互いに関連づけて格納している。キャンペーンテーブルにおける識別子（id）は、他のテーブルではcampaign_idとして用いられている。
【００４４】
（顧客−キャンペーンテーブル）
顧客−キャンペーンテーブルは、過去に顧客に対して適用されたキャンペーンを管理するためのテーブルである。図１１は、顧客−キャンペーンテーブルの一例を示す図である。この図に示すように、顧客−キャンペーンテーブルは、campaign_idと、customer_idと、対応するキャンペーンを適用した回数（count）と、適用した際に顧客が支払った商品の代金（amount）とを、互いに関連づけて格納している。
【００４５】
（商品−キャンペーンテーブル）
商品−キャンペーンテーブルは、どの商品にどのキャンペーンが適用可能であるかを管理するためのテーブルである。図１２は、商品−キャンペーンテーブルの一例を示す図である。この図に示すように、商品−キャンペーンテーブルは、campaign_idと、product_idとを互いに関連づけて格納している。
【００４６】
（商品テーブル）
商品テーブルは、仮想店舗において提供可能な商品を管理するためのテーブルである。図１３は、商品テーブルの一例を示す図である。この図に示すように、商品テーブル商品の名称を示す情報（name）と、商品の価格（price）と、商品の説明文（desrciption）と、商品の出版社（publisher）と、商品の発売開始日（start_date）と、商品のサムネイル画像のファイル名（thumbnail）と、商品が属するグループを識別するための識別子群（group_ids）とを、商品を識別するための識別子（id）ごとに互いに関連づけて格納している。
【００４７】
（カートテーブル）
カートテーブルは、ユーザが仮想店舗を利用して購入した商品を管理するためのテーブルである。図１４は、カートテーブルの一例を示す図である。この図に示すように、カートテーブルは、customer_idとproduct_idとを、カート内の商品を識別するための識別子（id）ごとに格納している。
【００４８】
（テーブルの形成場所）
図３〜図１４に示す各テーブルは、いずれも、電子商取引サーバ１が備えるメモリ（図示せず）に存在する。このメモリには、支払条件設定蓄積部２８、ユーザグループ設定蓄積部３０、テンプレート蓄積部３２、および商品グループ蓄積部３４が形成されている。カートテーブル以外の各テーブルのは、これらの蓄積部のいずれかに形成されている。具体的には次の通りである。
【００４９】
顧客テーブル、顧客グループテーブル、顧客−顧客グループテーブル、顧客−キャンペーンテーブル、および商品グループ−顧客グループテーブルは、ユーザグループ設定蓄積部３０に形成されている。テンプレートテーブルおよびテンプレート−顧客グループテーブルは、テンプレート蓄積部３２に形成されている。商品グループテーブル、商品グループ−顧客グループテーブル、および商品テーブルは、商品グループ蓄積部３４に形成されている。キャンペーンテーブルおよび商品−キャンペーンテーブルは、支払条件設定蓄積部２８に形成されている。なお、カートテーブルは、メモリにおける任意の場所に形成されている。
【００５０】
（基本的な処理の流れ）
図１５は、電子商取引サーバ１が仮想店舗のページを生成する際の基本的な処理の流れを示すフローチャートである。
【００５１】
ユーザーは、端末装置２を操作し、端末装置２で動作するＷＷＷブラウザ等のアプリケーションを利用して、電子商取引サーバ１が提供する仮想店舗にアクセスする。その際、
端末装置２のアプリケーションは、ユーザーによって指定された仮想店舗のＵＲＬを含むページ生成要求を生成し、電子商取引サーバ１に送信する。電子商取引サーバ１では、ページ要求取得部１０がページ生成要求を受信する（ステップＳ１００１）。ページ要求取得部１０は、受信したページ要求をページ判別部１２に出力する。
【００５２】
ページ判別部１２は、ページ要求内のＵＲＬから、端末装置２から要求された仮想店舗のページの種別を判別する（Ｓ１００２）。そして、その判別結果に対応する識別子（display_id）を取得する。例えば、仮想店舗トップページのＵＲＬが、「http://astore.com/top/」の場合は、「top」がページ種別を示す。一方、仮想店舗の商品詳細ページのＵＲＬが、「http://astore.com/detail/」の場合は、「」detail」がページ種別を示す。電子商取引サーバ１では、「top」に対応するdisplay_idは「１」であり、「detail」に対応するdisplay_idは「２」であるというように、ページ種別の判別結果と、対応するdisplay_idの値とが、あらかじめ互いに関連づけて、所定のテーブル内に格納されている。そこでページ判別部１２は、このテーブルを参照することによって、ＵＲＬから判別したページ種別に対応するdisplay_idを特定する。ページ判別部１２は、特定したdisplay_id、およびページ要求をページ生成部１４に出力する。
【００５３】
次に、ページ生成制御部１８が、ページ要求に含まれているCookie等の識別情報から、仮想店舗にアクセスした端末装置２のユーザーを判別する（Ｓ１００３）。識別情報は、次の手順によって、事前に、電子商取引サーバ１から端末装置２に提供されている。ユーザーが仮想店舗内のいずれかのページに最初にアクセスした際、電子商取引サーバ１は、ユーザーに認証処理を求める。その際、ユーザーは、仮想店舗を利用するための専用の識別子（ＩＤ）およびパスワードを入力する。電子商取引サーバ１は、ユーザーが入力したＩＤおよびパスワードが、電子商取引サーバ１内で管理しているいずれかのユーザーのＩＤおよびパスワードと互いに一致するか否かを判定する。一致した場合、このユーザーは仮想店舗を利用できる正当なユーザーであることを認証する。これにより電子商取引サーバ１は、そのユーザーを識別するための識別情報をCookieとして生成し、ユーザーの端末装置２に提供する。
【００５４】
これ以降、端末装置２は、仮想店舗にアクセスする際に、ページ要求にこのCookieを含める。これにより電子商取引サーバ１は、Cookieを解析することによって、仮想店舗にアクセスしたユーザーが、正当なユーザーであると判別する。ページ生成制御部１８は、判別したユーザーのＩＤ（user_id）に対応するcustomer_idを、顧客テーブルから取得し、テンプレート選択部２０に出力する。
【００５５】
次に、テンプレート選択部２０が、ページ判別部１２から受け取ったdisplay_idに対応したテンプレートを選択する（Ｓ１００４）。この処理は後述する。テンプレートは、仮想店舗のページを生成するために用いられる。ページ生成部１４は、テンプレート選択部２０が選択したテンプレートを用いて、display_idに応じたページ生成処理を実行する。これにより、端末装置２からのページ要求に対応したページを生成する（Ｓ１００５）。この処理の詳細は後述する。ページ生成部１４は、生成したページをページ出力部２４に出力する。ページ出力部２４は、生成されたページを、ページ要求が送信してきた端末装置２に送信する。端末装置２のアプリケーションは、端末装置２から送信されたページを受信し、ディスプレイの画面に表示する。これによりユーザーは、端末装置２のディスプレイに表示された、仮想店舗のページを閲覧することができる。さらに、閲覧したページを通じて、仮想店舗を利用することができる。
【００５６】
（テンプレートの選択処理）
図１６は、ページ生成部１４が、ページを生成するためのテンプレートを選択する際の処理の流れを示すフローチャートである。この図に示すように、まず、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１１０１）。その際、ユーザグループ判別部１６は、ページ判別部１２から受け取ったcustomer_idに対応するgroup_idおよびpriorityを、顧客−顧客グループテーブルから取得する。ページ判別部１２は、取得したgroup_idおよびpriorityを、テンプレート選択部２０に出力する。
【００５７】
次に、テンプレート選択部２０が、端末装置２から要求されたページの種別に対応したテンプレートの識別子リストを取得する（Ｓ１１０３）。より具体的には、テンプレート選択部２０は、ページ判別部１２から受け取ったdisplay_idに対応するtemplate_idおよびpathを、テンプレートテーブルから取得する。なお、同じdisplay_idに対応付けて格納されているtemplate_idが複数あれば、各template_idおよびそれに対応するpathを全て取得する。これにより、取得したtemplate_idを含むリストを生成する。
【００５８】
次にテンプレート選択部２０は、テンプレートの識別子リストから、もっとも優先度が高いテンプレートを選択する（Ｓ１１０３）。具体的には、次の手順に従う。まず、テンプレート選択部２０は、テンプレートの識別子リストに含まれるtemplate_idのうち、テンプレート−顧客グループテーブルにおいて、ページ判別部１２から受け取ったgroup_idに対応付けて格納されているtemplate_idを選択する。次に、選択したtemplate_idのうち、対応するgroup_idに対応するpriorityが最も高いtemplate_idを選択する。テンプレート選択部２０は、選択したtemplate_idに対応するpathを、データ生成部２２に出力する。
【００５９】
なお、上記の例では、グループにあらかじめ設定されている優先度を、そのグループに対応するテンプレートの優先度としている。このばあい、どのようなユーザであっても、そのグループに対応するテンプレートの優先度は同じ値になる。しかし、これに限らず、ユーザごとに、自身が属するグループの優先度を個別に設定されていてもよい。この場合、グループに対応するテンプレートの優先度は、ユーザーごとに設定されたグループの優先度に一致する。なお、ユーザーが、自身が属するグループの優先度を自ら変更できるような構成であってもよい。
【００６０】
以上のように、電子商取引サーバ１は、グループごとに用意され、あらかじめ所定の優先度が設定された、各ページを生成するためのテンプレートのうち、もっとも優先度が高いテンプレートを用いて、テンプレートに対応するページを生成する。したがって、ユーザーに適したページを簡単に生成することができる。
【００６１】
（テンプレートの一例）
図１７（ａ）は、電子商取引サーバ１が仮想店舗のページを生成するためのテンプレートの一例を模式的に示す図であり、図１７（ｂ）は、テンプレートの記述の一例を示す図である。図１７（ａ）に示すテンプレート５０は、領域５２および領域５４を有している。領域５４は静的部分であり、ここにはあらかじめ所定の情報が用意されている。この情報は、テンプレート５０からページを生成する際に、変化することはない。一方、領域５４は置換部分であり、ここには、あらかじめ置換部分であることを示す情報が用意されている。この情報は、テンプレート５０からページを生成する際に、他の情報に置換される。
【００６２】
図１７（ｂ）に示すテンプレート５０は、ＨＴＭＬファイルとして実現されている。ここで、領域５４には「wicket:」で始まるタグが記述されている。このタグが、置換部分であることを示す情報である。このタグ内には置換対象を示す文字列（newArrival等）が含まれており、ページ生成部１４は、この文字列に参照して、置換すべき情報を適切な位置の領域５４において置換する。
【００６３】
（トップページの生成）
図１８は、電子商取引サーバ１が仮想店舗のトップページを生成する際の処理の流れを示すフローチャートである。この図に示すように、まず、ページ生成制御部１８は、トップページ用のテンプレートを読み込む（Ｓ１２０１）。その際、ページ生成制御部１８は、テンプレート選択部２０から受け取ったpathに基づき、トップページ用のテンプレートの格納場所を特定する。そして、特定した格納場所に格納されているテンプレートを読み込んでいく。
【００６４】
ページ生成制御部１８は、読み込んだテンプレートを、先頭から順に解析していく。その際、テンプレート内の各位置が、置換部分であるか否かを判定する。置換部分を発見すると、ページ生成制御部１８は、置換部分の種別を特定する（Ｓ１２０２）。具体的には、置換部分に記載の「wicket:id」で指定されている種別を特定する。ここで特定した種別が「新着リスト」である場合、ページ生成制御部１８は、その旨をユーザグループ判別部１６に通知する。
【００６５】
次に、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１２０３）。この処理は、Ｓ１１０１の処理と同じである。ページ生成制御部１８は、取得したgroup_idを、商品検索部２６に伝える。商品検索部２６は、付け取ったgroup_idに一致し、かつ、販売開始日が本日（ページ要求を受信した日）よりも一定日以内前である商品を、商品テーブルから検索する（Ｓ１２０４）。その際、ヒットした商品に関する情報および識別子を、検索結果として商品テーブルから読み出し、データ生成部２２に出力する。
【００６６】
データ生成部２２は、受け取った検索結果を、テンプレートに埋め込む（Ｓ１２０５）。具体的には、テンプレートにおける「新着リスト」に対応する置換部分に、検索結果のうち画面表示に必要な情報を埋め込む。たとえば、商品のサムネイルまたは名称が、埋め込みの対象となる。データ生成部２２は、埋め込みが終了すると、その旨をページ生成制御部１８に伝える。
【００６７】
ページ生成制御部１８は、テンプレートの解析を続け、次の処理が必要か否かを判定する（Ｓ１２１０）。処理が必要な場合は、テンプレートの続きを読み込む（Ｓ１２０１）。一方、処理が不要である、すなわち、テンプレートを最後まで読み込んだ場合には、図１８の処理はすべて終了する。
【００６８】
Ｓ１２０２において、ページ生成制御部１８は、置換部分が「商品グループリスト」だと特定した場合、テンプレートに埋め込まれている商品グループの種別を識別するための識別子（type_id）を有する商品グループを、商品グループテーブルから取得する（Ｓ１２０６）。より具体的には、テンプレートに埋め込まれているtype_idに対応するproduct_group_idを商品グループテーブルから取得し、そのリストを生成する。
【００６９】
次に、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１２０７）。この処理は、Ｓ１１０１の処理と同じである。ユーザグループ判別部１６は、取得したgroup_idを、ページ生成制御部１８に伝える。
【００７０】
次に、ページ生成制御部１８が、テンプレートに埋め込む対象の商品グループと、その並び順とを決定する（Ｓ１２０８）。具体的には、次の手順にしたがう。まず、ページ生成制御部１８は、生成したリストに含まれるproduct_group_idのうち、商品グループ−顧客グループテーブルにおいて、ユーザグループ判別部１６から受け取ったgroup_idに対応付けて格納されているproduct_group_idを選択する。次に、選択した各product_group_idを、対応するpriorityの順に並び替える。その際、priorityが高いものほど、より先頭に来るように並び替える。これにより決定される並び順が、複数の商品グループをテンプレートに埋め込む際の並び順となる。ページ生成制御部１８は、選択した各product_group_id、およびその並び順をデータ生成部２２に出力する。
【００７１】
データ生成部２２は、商品グループをテンプレートに埋め込む（Ｓ１２０９）。具体的には、次の手順に従う。まず、ページ生成制御部１８から受け取ったproduct_group_idに基づき、テンプレートに埋め込む情報を、商品グループテーブルから取得する。たとえば、product_group_idに対応する商品グループの名称（name）等を取得する。次に、取得した商品の情報を、product_group_idの並び順にしたがい、テンプレートに埋め込む。たとえば、より優先度の高い商品グループの情報が、画面上のより上部に表示されるように、テンプレートに埋め込む。データ生成部２２は、埋め込みが終了すると、その旨をページ生成制御部１８に伝える。
【００７２】
ページ生成制御部１８は、テンプレートの解析を続け、次の処理が必要か否かを判定する（Ｓ１２１０）。処理が必要な場合は、テンプレートの続きを読み込む（Ｓ１２０１）。一方、処理が不要である、すなわち、テンプレートを最後まで読み込んだ場合には、図１８の処理はすべて終了する。
【００７３】
（トップページの構成例）
図１９（ａ）は、あるグループ用のトップページのテンプレートを模式的に示す図である。図１９（ｂ）は、他のグループ用のトップページのテンプレートを模式的に示す図である。図１９（ｃ）は、商品グループの情報が埋め込まれたトップページを示す図である。図１９（ｄ）は、新着商品の情報が埋め込まれたトップページを示す図である。
【００７４】
図１９には、二種類の異なるトップページのテンプレートを示している。これらは、それぞれ、いずれかの特定のグループ専用のテンプレートである。すなわち、あるグループに属しているユーザーが、仮想店舗のトップページにアクセスした場合、電子商取引サーバ１は、図１９（ａ）に示すテンプレートを用いて生成したトップページをユーザーの端末装置２に送信する。一方、このグループとは異なる他のグループに属しているユーザーが、仮想店舗のトップページにアクセスした場合、電子商取引サーバ１は、図１９（ｂ）に示すテンプレートを用いた生成したトップページを、ユーザーの端末装置２に送信する。これにより電子商取引サーバ１は、ユーザーが属するグループに応じて、最適なトップページをユーザーの端末装置２に提供する。
【００７５】
一方、ユーザーが、上記の２つのグループに属しているとき、電子商取引サーバ１は、それぞれのグループ用のテンプレートのうち、優先度がより高いものを選択し、トップページの生成に用いる。図１９の例では、（ａ）に示すテンプレートの優先度が、（ｂ）に示すテンプレートの優先度よりも大きい。言い換えると、（ａ）に示すテンプレートに対応するグループの優先度が、（ｂ）に示すテンプレートに対応するグループの優先度よりも大きい。したがって電子商取引サーバ１は、図１９（ａ）に示すテンプレートを用いて、トップページを生成する。
【００７６】
図１９（ａ）に示すテンプレートは、領域５６および領域５８を有している。これらはいずれも、テンプレートにおける置換部分である。領域５６は、新着商品リストを埋め込むための置換部分である。一方、領域５８は、商品グループリストを埋め込むための置換部分である。したがって、電子商取引サーバ１が、図１７に示す各処理のうち、まずＳ１２０６〜Ｓ１２０９を実行すると、図１９（ａ）に示すテンプレートにおける領域５８に、商品グループリストを埋め込む。この段階のテンプレートが示すトップページは、図１９（ｃ）にものになる。電子商取引サーバ１は、次にＳ１２０３〜Ｓ１２０５の処理を実行することによって、図１９（ａ）に示すテンプレートにおける領域５６に、新着商品リストを埋め込む。この段階のテンプレートが示すトップページは、図１９（ｄ）に示すものになる。
【００７７】
（トップページの利点）
以上のように、電子商取引サーバは、複数のグループに属するユーザーに対して、各グループに対応する商品グループをすべて含んだトップページ（商品グループ表示情報）を生成する。商品グループとは、たとえば、複数の商品を一括で説明する情報のことである。電子商取引サーバ１は、トップページにおける各商品グループの順序を、各商品グループに設定されている優先度に基づき決定する。たとえば、より優先度が高い商品グループほど、画面上のより上部に表示するようなトップページを生成する。その結果、電子商取引サーバは、複数のグループに属するユーザーに対して、より価値の高いトップページを生成することができる。
【００７８】
（商品詳細ページの生成）
仮想店舗のトップページにおいて、ユーザーが、いずれかの商品を選択したとする。これにより端末装置２は、商品詳細ページのＵＲＬを含むページ要求を生成し、電子商取引サーバ１に送信する。電子商取引サーバ１は、このページ要求を受信することによって、商品詳細ページを生成し、端末装置２に送り返す。
【００７９】
図２０は、電子商取引サーバ１が仮想店舗の商品詳細ページを生成する際の処理の流れを示すフローチャートである。この図に示すように、まず、ページ生成制御部１８は、商品詳細ページ用のテンプレートを読み込む（Ｓ１３０１）。その際、ページ生成制御部１８は、テンプレート選択部２０から受け取ったpathに基づき、商品詳細ページ用のテンプレートの格納場所を特定する。そして、特定した格納場所に格納されているテンプレートを読み込んでいく。
【００８０】
ページ生成制御部１８は、読み込んだテンプレートを、先頭から順に解析していく。その際、テンプレート内の各位置が、置換部分であるか否かを判定する。置換部分を発見すると、ページ生成制御部１８は、置換部分の種別を特定する（Ｓ１３０２）。具体的には、置換部分に記載の「wicket:id」で指定されている種別を特定する。ここで特定した種別が「商品」である場合、ページ生成制御部１８は、その旨を商品検索部２６に通知する。
【００８１】
商品検索部２６は、ページ要求に含まれているproduct_idに対応する商品の情報を、商品テーブルから取得する（Ｓ１３０３）。具体的には、当該product_idに関連づけて商品テーブルに格納されている、商品名（name）、価格（price）、および説明（description）等を、商品テーブルから取得する。商品検索部２６は、取得した情報をユーザグループ判別部１６およびデータ生成部２２に出力する。
【００８２】
次に、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１３０４）。この処理は、Ｓ１１０１の処理と同じである。
【００８３】
次に、ページ生成制御部１８が、商品の対象キャンペーンを抽出する（Ｓ１３０６）。具体的には、ページ生成制御部１８は、商品−キャンペーンテーブルにおいてproduct_idに対応しており、かつ、キャンペーンテーブルにおいてgroup_idに対応しているcampaign_idを取得する。
【００８４】
次にページ生成制御部１８は、抽出したキャンペーンのうち、商品に対して適用な可能なキャンペーンを抽出する（Ｓ１３０７）。具体的には、取得したcampaign_idのうち、顧客−キャンペーンテーブルにおけるcountの値が、キャンペーンテーブルにおけるmax_countを超えていないcampaign_idを選択する。
【００８５】
次にページ生成制御部１８は、選択した各campaign_idに対応する、auto_applyの値を、キャンペーンテーブルから取得する。そして、取得したauto_applyが「true」または「false」のいずれであるかを判定する。ここで、いずれかのproduct_idに対応するauto_applyの値が「false」の場合、そのproduct_idに対応するキャンペーンは、自動的に商品に適用することができない。そこでページ生成制御部１８は、選択したcampaign_idのキャンペーンを全て商品に適用することを決定する。これは、ユーザーに複数のキャンペーンから所望のものを選択させることを目的とした措置である。
【００８６】
一方、各product_idに対応するauto_applyの値が、全て「true」である場合、ページ生成制御部１８は、選択した各product_idのうち、対応するpriorityが最も高いproduct_idのキャンペーンを商品に適用することを決定する。なお、priorityが最も高いcampaign_idが複数ある場合、それらを全て商品に適用することを決定する。
【００８７】
ページ生成制御部１８は、商品に適用することを決定したキャンペーンに関する情報を、キャンペーンテーブルから取得し、データ生成部２２に出力する。
【００８８】
データ生成部２２は、受け取った情報を、テンプレートに埋め込む（Ｓ１３０７）。具体的には、テンプレートにおける「商品」に対応する置換部分に、商品の情報、および商品に適用するキャンペーンの情報を埋め込む。たとえば、商品のサムネイルおよび名称が、埋め込みの対象となる。さらに、キャンペーンの名称および割引率も、埋め込みの対象となる。データ生成部２２は、埋め込みが終了すると、その旨をページ生成制御部１８に伝える。
【００８９】
ページ生成制御部１８は、テンプレートの解析を続け、次の処理が必要か否かを判定する（Ｓ１３０８）。処理が必要な場合は、テンプレートの続きを読み込む（Ｓ１３０１）。一方、処理が不要である、すなわち、テンプレートを最後まで読み込んだ場合には、図２０の処理はすべて終了する。
【００９０】
（商品詳細ページの構成例）
図２１（ａ）は、あるグループ用の商品詳細ページのテンプレートを模式的に示す図である。図２１（ｂ）は、商品の情報が埋め込まれた商品詳細ページを示す図である。図２１（ｃ）は、キャンペーンの情報が埋め込まれた商品詳細ページを示す図である。
【００９１】
図２１（ａ）に示すテンプレートは、領域６０および領域６２を有している。これらはいずれも、テンプレートにおける置換部分である。領域６０は、商品の情報を埋め込むための置換部分である。一方、領域６０は、商品に適用されるキャンペーンの情報を埋め込むための置換部分である。
【００９２】
電子商取引サーバ１が、図２０に示す各処理を実行すると、まず、図２１（ａ）に示すテンプレートにおける領域６０に、商品の情報を埋め込む。この段階のテンプレートが示す商品詳細ページは、図２１（ｂ）に示すものになる。次に、図２１（ａ）に示すテンプレートにおける領域６２に、キャンペーンの情報を埋め込む。この段階のこの段階のテンプレートが示す商品詳細ページは、図２１（ｃ）に示すものになる。このようにして、電子商取引サーバ１は、ユーザーが選択した商品の情報、および当該商品に適用されるキャンペーンの情報を含んだ商品詳細ページを生成する。電子商取引サーバ１は、図２１（ｃ）に示す例では、一つの商品（電子書籍）に対して、複数の異なるキャンペーンの情報が適用されている商品詳細ページを生成している。
【００９３】
（商品詳細ページの利点）
上述したように、ユーザーは、仮想店舗における複数のグループに属している。仮想店舗では、これら複数にグループに共通する商品が用意されている。また、グループごとに、商品に対して適用可能な支払条件も用意されている。あるグループ用の支払条件は、どのグループにも属さないユーザーが同じ商品を購入する場合よりも、より有利な条件で（より低価格で）商品を購入できるものである。たとえば、定価の１０％オフで購入できたり、または、一定数までは無料で購入できたりするような支払条件である。
【００９４】
ユーザーが、自身が属する複数のグループに共通するいずれかの商品を選択したとき、電子商取引サーバ１は、各グループに用意されている各支払条件を取得する。各支払条件には、あらかじめ、所定の優先度が設定されている。電子商取引サーバ１は、取得した複数の支払条件のうち、もっとも優先度が高いものを選択する。通常、より有利な（低価格で）で商品を購入できる支払条件ほど、より高い優先度が設定されている。例えば、Ａグループの支払条件が「定価の１０％オフ」で、Ｂグループの支払条件が「定価の２０％オフ」だった場合は、「定価の２０％オフ」の方が常に「定価の１０％オフ」よりも有利な支払条件であるため、「定価の２０％オフ」は「定価の１０％オフ」よりも高い優先度が設定される。
【００９５】
以上のように、本実施形態の電子商取引サーバ１は、仮想店舗における複数のグループに属するユーザーに、複数用意されている支払条件のうち、より有利な条件で商品を購入させることができる。
【００９６】
また、電子商取引サーバ１は、優先度が互いに等しい複数の支払条件が存在する場合、複数の支払条件を全て選択し、いずれかの支払条件をユーザーが選択できるような状態ですべて含んだ購入ページを生成する。この結果、ユーザーが選択した商品に、同じ優先度の支払条件が複数設定されている場合、ユーザーは、どの支払条件を適用して商品を購入するのかを、選択することができる。これにより、ユーザーの都合や事情に応じた支払条件が商品に適用される効果を奏する。
【００９７】
このような「優先度が互いに等しい複数の支払条件」の例としては、例えば「５冊まで無料」と「全品３０％割引」のような、どちらが有利か単純に判定できない（５冊までしか買わないことが確定しているユーザーにとっては「５冊まで無料」の方が有利だが、そうでないユーザーにとっては「５冊まで無料」と「全品３０％割引」とを買いたい本の値段に応じて使い分けた方が有利になる。）条件が挙げられる。このような場合には、優先度を等しい値に設定して、これら複数の（優先度の等しい）支払条件をすべてユーザーに提示することで、ユーザーは自分の都合や事情に応じて、どの支払条件を適用して商品を購入するのかを選択することができる。
【００９８】
（購入ページの生成）
仮想店舗の商品詳細ページにおいて、ユーザーが、商品を購入するための操作を行ったとする。これにより端末装置２は、購入ページのＵＲＬを含むページ要求を生成し、電子商取引サーバ１に送信する。電子商取引サーバ１は、このページ要求を受信することによって、購入ページを生成し、端末装置２に送り返す。
【００９９】
図２２は、電子商取引サーバ１が仮想店舗の購入ページを生成する際の処理の流れを示すフローチャートである。この図に示すように、まず、ページ生成制御部１８は、購入ページ用のテンプレートを読み込む（Ｓ１４０１）。その際、ページ生成制御部１８は、テンプレート選択部２０から受け取ったpathに基づき、購入ページ用のテンプレートの格納場所を特定する。そして、特定した格納場所に格納されているテンプレートを読み込んでいく。
【０１００】
ページ生成制御部１８は、読み込んだテンプレートを、先頭から順に解析していく。その際、テンプレート内の各位置が、置換部分であるか否かを判定する。置換部分を発見すると、ページ生成制御部１８は、置換部分の種別を特定する（Ｓ１４０２）。具体的には、置換部分に記載の「wicket:id」で指定されている種別を特定する。ここで特定した種別が「支払方法」である場合、その旨をユーザグループ判別部１６に伝える。
【０１０１】
次に、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１４０３）。この処理は、Ｓ１１０１の処理と同じである。
【０１０２】
次に、ページ生成制御部１８が、商品の対象キャンペーンを抽出する（Ｓ１４０４）。この処理は、Ｓ１３０６と同じである。次に、ページ生成制御部１８は、抽出したキャンペーンのうち、商品に対して適用な可能なキャンペーンを抽出する（Ｓ１４０５）。この処理は、Ｓ１３０７と同じである。ページ生成制御部１８は、商品に適用することを決定したキャンペーンに関する情報を、キャンペーンテーブルから取得し、データ生成部２２に出力する。
【０１０３】
データ生成部２２は、商品の支払方法をテンプレートに埋め込む（Ｓ１４０６）。具体的には、テンプレートにおける「支払方法」に対応する置換部分に、商品に適用するキャンペーンの情報を埋め込む。たとえば、キャンペーンの名称および割引率を、埋め込みの対象とする。データ生成部２２は、埋め込みが終了すると、その旨をページ生成制御部１８に伝える。
【０１０４】
ページ生成制御部１８は、テンプレートの解析を続け、次の処理が必要か否かを判定する（Ｓ１４０７）。処理が必要な場合は、テンプレートの続きを読み込む（Ｓ１４０１）。一方、処理が不要である、すなわち、テンプレートを最後まで読み込んだ場合には、図２２の処理はすべて終了する。
【０１０５】
（購入ページの構成例）
図２３（ａ）は、あるグループ用の購入ページのテンプレートを模式的に示す図である。図２３（ｂ）は、キャンペーンの情報が埋め込まれた購入ページを示す図である。
【０１０６】
図２３（ａ）に示すテンプレートは、領域６４を有している。領域６４は、テンプレートにおける、商品に適用されるキャンペーンの情報を埋め込むための置換部分である。
【０１０７】
電子商取引サーバ１が、図２２に示す各処理を実行すると、図２３（ａ）に示すテンプレートにおける領域６４に、キャンペーンの情報を埋め込む。この段階のテンプレートが示す購入ページは、図２３（ｂ）に示すものになる。このようにして、電子商取引サーバ１は、ユーザーが購入することを決定した商品に適用されるキャンペーンの情報を含んだ購入ページを生成する。
【０１０８】
電子商取引サーバ１は、図２３（ｃ）に示す例では、一つの商品（電子書籍）に対して、複数の異なるキャンペーンの情報が適用されている購入ページを生成している。ユーザーは、いずれかのキャンペーン（支払方法）を選択して、商品の注文を確定する。これにより、電子商取引サーバ１は、ユーザーが購入した商品に対応するproduct_idを、そのユーザーのcampaign_idに関連付けて、カートテーブルに格納する。
【０１０９】
（カートページの生成）
仮想店舗におけるいずれかのページにおいて、ユーザーが、購入した商品の決済を求める操作を行ったとする。これにより端末装置２は、カートページのＵＲＬを含むページ要求を生成し、電子商取引サーバ１に送信する。電子商取引サーバ１は、このページ要求を受信することによって、カートページを生成し、端末装置２に送り返す。
【０１１０】
図２４は、電子商取引サーバ１が仮想店舗のカートページを生成する際の処理の流れを示すフローチャートである。この図に示すように、まず、ページ生成制御部１８は、カートページ用のテンプレートを読み込む（Ｓ１５０１）。その際、ページ生成制御部１８は、テンプレート選択部２０から受け取ったpathに基づき、カートページ用のテンプレートの格納場所を特定する。そして、特定した格納場所に格納されているテンプレートを読み込んでいく。
【０１１１】
ページ生成制御部１８は、読み込んだテンプレートを、先頭から順に解析していく。その際、テンプレート内の各位置が、置換部分であるか否かを判定する。置換部分を発見すると、ページ生成制御部１８は、置換部分の種別を特定する（Ｓ１５０２）。具体的には、置換部分に記載の「wicket:id」で指定されている種別を特定する。ここで特定した種別が「カート」である場合、ページ生成制御部１８は、その旨を商品検索部２６に伝える。
【０１１２】
商品検索部２６は、カートテーブルに格納されている、いずれかのproduct_idを取得する（Ｓ１５０３）。次に、取得したproduct_idに対応する商品の情報を、商品テーブルから取得する（Ｓ１５０４）。具体的には、product_idに関連づけて商品テーブルに格納されている商品名等の情報を取得する。商品検索部２６は、取得した情報をデータ生成部２２に出力する。
【０１１３】
次に、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１５０５）。この処理は、Ｓ１１０１の処理と同じである。
【０１１４】
次に、ページ生成制御部１８が、商品の対象キャンペーンを抽出する（Ｓ１５０６）。この処理は、Ｓ１３０６と同じである。次に、ページ生成制御部１８は、抽出したキャンペーンのうち、商品に対して適用な可能なキャンペーンを抽出する（Ｓ１５０７）。この処理は、Ｓ１３０７と同じである。ページ生成制御部１８は、商品に適用することを決定したキャンペーンに関する情報を、キャンペーンテーブルから取得し、データ生成部２２に出力する。
【０１１５】
データ生成部２２は、受け取った情報を、テンプレートに埋め込む（Ｓ１５０８）。具体的には、テンプレートにおける「カート」に対応する置換部分に、商品の情報、および商品に適用するキャンペーンの情報を埋め込む。たとえば、商品のサムネイルおよび名称が、埋め込みの対象となる。さらに、キャンペーンの名称および割引率も、埋め込みの対象となる。データ生成部２２は、埋め込みが終了すると、その旨をページ生成制御部１８に伝える。
【０１１６】
ページ生成制御部１８は、カートテーブルに、次のproduct_idが存在するか否かを判定する（Ｓ１５０９）。存在すると判定した場合には、Ｓ１５０３の処理に戻り、そのproduct_idを取得する。これにより電子商取引サーバ１は、Ｓ１５０３からＳ１５０８までの処理を、カートテーブルに格納されているproduct_idの数だけ繰り返す。
【０１１７】
一方、Ｓ１５０９において、次のproduct_idが存在しないと判定した場合、ページ生成制御部１８は、テンプレートの解析を続け、次の処理が必要か否かを判定する（Ｓ１５１０）。処理が必要な場合は、テンプレートの続きを読み込む（Ｓ１５０１）。一方、処理が不要である、すなわち、テンプレートを最後まで読み込んだ場合には、図２４の処理はすべて終了する。
【０１１８】
（カートページの構成例）
図２５（ａ）は、あるグループ用のカートページのテンプレートを模式的に示す図である。図２５（ｂ）は、商品の情報が埋め込まれたカートページを示す図である。図２１（ｃ）は、キャンペーンの情報が埋め込まれたカートページを示す図である。
【０１１９】
図２５（ａ）に示すテンプレートは、領域６６および領域６８を有している。これらはいずれも、テンプレートにおける置換部分である。領域６６は、商品の情報を埋め込むための置換部分である。一方、領域６８は、商品に適用されるキャンペーンの情報を埋め込むための置換部分である。
【０１２０】
電子商取引サーバ１が、図２４に示す各処理を実行すると、まず、図２５（ａ）に示すテンプレートにおける領域６６に、商品の情報を埋め込む。この段階のテンプレートが示すカートページは、図２５（ｂ）に示すものになる。次に、図２５（ａ）に示すテンプレートにおける領域６８に、キャンペーンの情報を埋め込む。この段階のこの段階のテンプレートが示すカートページは、図２５（ｃ）に示すものになる。このようにして、電子商取引サーバ１は、ユーザーが選択した商品の情報、および当該商品に適用されるキャンペーンの情報を含んだカートページを生成する。
【０１２１】
電子商取引サーバ１は、図２５（ｃ）に示す例では、２つの商品（電子書籍）に対して、それぞれ互いに異なるキャンペーンが適用されているカートページを生成している。これら２つの商品のうち、一方には、互いに異なる２種類のキャンペーンが適用されており、ユーザーはいずれか１つを選択するようになっている。一方、もう一方の商品には、一種類のキャンペーンのみが適用されており、ユーザーは、他のキャンペーンをこの商品に適用することを選択できない。
【０１２２】
（商品一覧ページの生成）
仮想店舗のいずれかのページにおいて、ユーザーが、商品の一覧を表示するための操作を行ったとする。これにより端末装置２は、商品一覧ページのＵＲＬを含むページ要求を生成し、電子商取引サーバ１に送信する。電子商取引サーバ１は、このページ要求を受信することによって、商品一覧ページを生成し、端末装置２に送り返す。
【０１２３】
図２６は、電子商取引サーバ１が仮想店舗の商品一覧ページを生成する際の処理の流れを示すフローチャートである。この図に示すように、まず、ページ生成制御部１８は、商品一覧ページ用のテンプレートを読み込む（Ｓ１６０１）。その際、ページ生成制御部１８は、テンプレート選択部２０から受け取ったpathに基づき、商品一覧ページ用のテンプレートの格納場所を特定する。そして、特定した格納場所に格納されているテンプレートを読み込んでいく。
【０１２４】
ページ生成制御部１８は、読み込んだテンプレートを、先頭から順に解析していく。その際、テンプレート内の各位置が、置換部分であるか否かを判定する。置換部分を発見すると、ページ生成制御部１８は、置換部分の種別を特定する（Ｓ１６０２）。具体的には、置換部分に記載の「wicket:id」で指定されている種別を特定する。ここで特定した種別が「商品リスト」である場合、ページ生成制御部１８は、その旨をユーザグループ判別部１６に伝える。
【０１２５】
次に、ユーザグループ判別部１６が、ユーザーが属するグループの識別子（group_id）と、そのグループの優先度（priority）とを取得する（Ｓ１６０３）。この処理は、Ｓ１１０１の処理と同じである。ページ生成制御部１８は、取得したgroup_idを、商品検索部２６に伝える。
【０１２６】
商品検索部２６は、ユーザーが属するグループ内の商品を検索する（Ｓ１６０４）。具体的には、ユーザグループ判別部１６から受け取ったgroup_idに対応する商品の情報を、商品テーブルから取得する。その際、具体的には、当該group_idに関連づけて商品テーブルに格納されている、商品名（name）、価格（price）、および説明（description）等を、商品テーブルから取得する。商品検索部２６は、取得した情報をデータ生成部２２に出力する。
【０１２７】
データ生成部２２は、商品の検索結果を、テンプレートに埋め込む（Ｓ１６０５）。具体的には、テンプレートにおける「商品」に対応する置換部分に、商品の情報、および商品に適用するキャンペーンの情報を埋め込む。たとえば、商品のサムネイルおよび名称が、埋め込みの対象となる。
【０１２８】
ページ生成制御部１８は、テンプレートの解析を続け、次の処理が必要か否かを判定する（Ｓ１６０６）。処理が必要な場合は、テンプレートの続きを読み込む（Ｓ１６０１）。一方、処理が不要である、すなわち、テンプレートを最後まで読み込んだ場合には、図２６の処理はすべて終了する。
【０１２９】
（商品一覧ページの構成例）
図２７（ａ）は、あるグループ用の商品一覧ページのテンプレートを模式的に示す図である。図２３（ｂ）は、商品の情報が埋め込まれた商品一覧ページを示す図である。
【０１３０】
図２７（ａ）に示すテンプレートは、領域７０を有している。領域７０は、テンプレートにおける、商品の情報を埋め込むための置換部分である。
【０１３１】
電子商取引サーバ１が、図２６に示す各処理を実行すると、図２７（ａ）に示すテンプレートにおける領域７０に、商品の情報を埋め込む。この段階のテンプレートが示す商品一覧ページは、図２７（ｂ）に示すものになる。このようにして、電子商取引サーバ１は、ユーザーが属する各グループ内の商品の情報を含んだ商品一覧ページを生成する。
【０１３２】
（プログラムおよび記録媒体）
最後に、電子商取引サーバ１に含まれている各ブロックは、ハードウェアロジックによって構成すればよい。または、次のように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いてソフトウェアによって実現してもよい。
【０１３３】
すなわち電子商取引サーバ１は、各機能を実現するpgの命令を実行するＣＰＵ、このpgを格納したＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、上記pgを実行可能な形式に展開するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、および、上記pgおよび各種データを格納するメモリ等の記憶装置（記録媒体）を備えている。この構成により、本発明の目的は、所定の記録媒体によっても、達成できる。
【０１３４】
この記録媒体は、上述した機能を実現するソフトウェアである電子商取引サーバ１のpgのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録していればよい。電子商取引サーバ１に、この記録媒体を供給する。これにより、コンピュータとしての電子商取引サーバ１（またはＣＰＵやＭＰＵ）が、供給された記録媒体に記録されているプログラムコードを読み出し、実行すればよい。
【０１３５】
プログラムコードを電子商取引サーバ１に供給する記録媒体は、特定の構造または種類のものに限定されない。すなわちこの記録媒体は、たとえば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などとすることができる。
【０１３６】
また、電子商取引サーバ１を通信ネットワークと接続可能に構成しても、本発明の目的を達成できる。この場合、上記のプログラムコードを、通信ネットワークを介して電子商取引サーバ１に供給する。この通信ネットワークは電子商取引サーバ１にプログラムコードを供給できるものであればよく、特定の種類または形態に限定されない。たとえばインターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、電話回線網、移動体通信網、衛星通信網等であればよい。
【０１３７】
この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な任意の媒体であればよく、特定の構成または種類のものに限定されない。たとえばＩＥＥＥ１３９４、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０１３８】
本発明は上述した各実施形態に限定されるものではない。当業者は、請求項に示した範囲内において、本発明をいろいろと変更できる。すなわち、請求項に示した範囲内において、適宜変更された技術的手段を組み合わせれば、新たな実施形態が得られる。
【産業上の利用可能性】
【０１３９】
本発明は、仮想店舗を提供する電子商取引サーバとして、幅広く用いることができる。
【符号の説明】
【０１４０】
１  電子商取引サーバ
２  端末装置
１０  ページ要求取得部（特定手段）
１２  ページ判別部
１４  ページ生成部（特定手段）
１６  ユーザグループ判別部
１８  ページ生成制御部（取得手段、選択手段、商品グループ取得手段）
２０  テンプレート選択部
２２  データ生成部（生成手段、商品グループ表示情報生成手段）
２４  ページ出力部
２６  商品検索部
２８  支払条件設定蓄積部
３０  ユーザグループ設定蓄積部
３２  テンプレート蓄積部
３４  商品グループ蓄積部
１００  電子商取引システム
【図１】
2013140439.tif 000003
【図２】
2013140439.tif 000004
【図３】
2013140439.tif 000005
【図４】
2013140439.tif 000006
【図５】
2013140439.tif 000007
【図６】
2013140439.tif 000008
【図７】
2013140439.tif 000009
【図８】
2013140439.tif 000010
【図９】
2013140439.tif 000011
【図１０】
2013140439.tif 000012
【図１１】
2013140439.tif 000013
【図１２】
2013140439.tif 000014
【図１３】
2013140439.tif 000015
【図１４】
2013140439.tif 000016
【図１５】
2013140439.tif 000017
【図１６】
2013140439.tif 000018
【図１７】
2013140439.tif 000019
【図１８】
2013140439.tif 000020
【図１９】
2013140439.tif 000021
【図２０】
2013140439.tif 000022
【図２１】
2013140439.tif 000023
【図２２】
2013140439.tif 000024
【図２３】
2013140439.tif 000025
【図２４】
2013140439.tif 000026
【図２５】
2013140439.tif 000027
【図２６】
2013140439.tif 000028
【図２７】
2013140439.tif 000029