以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、情報提供システムに対して本発明を適用した場合の実施形態である。
[1.第1実施形態]
[1−1.情報提供システムの構成及び機能概要]
先ず、本実施形態に係る情報提供システムS1の構成及び機能概要について、図1を用いて説明する。図1は、本実施形態に係る情報提供システムS1の概要構成の一例を示す図である。
図1に示すように、情報提供システムS1は、レシピサーバ1と、電子商店街サーバ2と、データベース管理サーバ3と、複数のユーザ端末4と、を含んで構成されている。レシピサーバ1及び電子商店街サーバ2と各ユーザ端末4とは、ネットワークNWを介して、例えば、通信プロトコルにTCP/IP等を用いて相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。また、レシピサーバ1と電子商店街サーバ2とデータベース管理サーバ3とは、ネットワークNLを介して相互にデータの送受信が可能になっている。ネットワークNLは、例えば、LAN(Local Area Network)である。
レシピサーバ1、電子商店街サーバ2及びデータベース管理サーバ3は、例えば、ユーザに各種のサービスを提供するためのWebサイトである総合サイトのドメインに属するサーバ装置である。総合サイトには、特定のサービスを提供するためのサイトが複数属している。ユーザが総合サイトへの会員登録を行うと、ユーザは、総合サイトに属する各サイトのサービスを利用することができる。
レシピサーバ1(本発明におけるサーバ装置の一例)は、総合サイトに属するレシピサイトに関する各種処理を実行するサーバ装置である。レシピサイトは、レシピの投稿をユーザから受け付けて、投稿されたレシピをレシピ情報(本発明におけるレシピ情報及び内容情報の一例)として公開するWebサイトである。レシピ情報は、料理の材料を示す情報を含む料理の調理法を示す情報である。レシピサーバ1は、ユーザ端末4からのリクエストに応じて、例えば、レシピサイトのWebページを送信したり、投稿されたレシピの登録する処理を行ったりする。
電子商店街サーバ2は、総合サイトに属する電子商店街に関する各種処理を実行するサーバ装置である。この電子商店街においては、商品の販売側として複数の店舗が出店している。ユーザは、電子商店街を利用することにより、所望の店舗から所望の商品を購入することができる。電子商店街サーバ2は、ユーザ端末4からのリクエストに応じて、例えば、電子商店街のWebページを送信したり、商品の検索や購入等に関する処理を行ったりする。
また、電子商店街サーバ2は、電子商店街において購入することができる商品のアフィリエイトプログラムに関する各種処理を実行する。例えば、あるWebページに含まれるアフィリエイトリンク(アフィリエイトプログラムに対応するハイパーリンク)を介して電子商店街から商品が購入された場合、そのアフィリエイトリンクをWebページに埋め込んだユーザ(アフィリエイター)に、例えば、購入金額に応じた報酬が付与される。付与される報酬としては、例えば、金銭であっても良いし、総合サイトで実施されているポイントサービスにおけるポイントであっても良い。このポイントは、例えば、電子商店街における商品の購入代金の支払いに利用することができる。なお、アフィリエイトプログラムは、成果報酬型ではなくても良く、例えば、クリック保証型であっても良い。
データベース管理サーバ3は、総合サイトのドメインに属する各種サーバ装置が共通に使用する情報を登録しているデータベースを管理する。例えば、データベース管理サーバ3は、総合サイトの会員に関する情報のデータベースである会員情報DB(データベース)3aを管理する。なお、本実施形態において、レシピサーバ1または電子商店街サーバ2が会員情報DB3aから情報を取得するというとき、レシピサーバ1または電子商店街サーバ2が、データベース管理サーバ3にリクエストを送信することにより、会員情報DB3aに登録されている情報をデータベース管理サーバ3から受信することを意味する。
ユーザ端末4(本発明における投稿端末装置及び閲覧端末装置の一例)は、各種Webサイトを利用するユーザの端末装置である。ユーザ端末4は、ユーザからの操作に基づいてレシピサーバ1や電子商店街サーバ2等のサーバ装置にアクセスする。これにより、ユーザ端末4は、サーバ装置からWebページを受信して表示する。ユーザ端末4には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ユーザ端末4としては、例えば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、スマートフォン等の携帯情報端末、携帯電話機等が用いられる。
このような構成の情報提供システムS1において、レシピサーバ1は、電子商店街サーバ2と連携した情報提供を行う。具体的に、レシピサーバ1が、レシピ情報を表示するWebページ(以下、「レシピページ」と称する)をユーザ端末4に送信する際に、電子商店街サーバ2が、レシピ情報が示す材料を含む商品(材料そのものが商品である場合も含む)を電子商店街において販売されている商品の中から検索する。そして、レシピサーバ1が、検索された商品を材料の関連商品として、その情報(以下、「関連商品情報」と称する)をレシピページに表示させる。なお、レシピを投稿するとき、ユーザは、料理を作るために必要な全ての材料の中から関連商品情報を表示させる材料を選択することができる。
レシピページに表示された関連商品情報をユーザが選択すると、選択された関連商品情報が示す商品の商品ページがユーザ端末4に表示される。商品ページ(本発明における商品ページの一例)は、電子商店街において商品に関する情報を表示するWebページであり、商品ごとに存在する。この商品ページには、例えば、商品名、商品の画像、価格、商品に関する説明、商品に含まれる食材の分量、買い物かご投入ボタン等が表示される。
買い物かご投入ボタンがユーザにより選択されると、商品ページに情報が表示されている商品が買い物かごに入れられて、ユーザ端末4に買い物かごページが表示される。本実施形態における買い物かごとは、電子商店街において、購入する候補としてユーザが選択した商品が入れられる仮想的な入れ物である。買い物かごページ(本発明における店ページの一例)は、ユーザが買い物かごに入れている商品のうち、直前の商品ページに情報が表示されていた商品の販売元の店舗が販売元となっている商品の一覧を表示するWebページである。ユーザは、買い物かごページにおいて、後述する注文手続きボタンを選択すると、一覧表示されている商品の購入手続きを行うことができる。
また、レシピサーバ1は、電子商店街に出店している店舗の中から、レシピページに関連商品情報が表示された全ての材料を取り扱っている店舗(以下、「全材料取扱店舗」と称する)を抽出する。店舗が食材を取り扱うとは、店舗がその食材を含む商品を販売していることを意味する。レシピサーバ1は、抽出した全材料取扱店舗の情報(以下、「全材料取扱店舗情報」と称する)をレシピページに表示させる。
レシピページに表示された全材料取扱店舗情報をユーザが選択すると、レシピサーバ1は、レシピページに関連商品情報が表示された全ての材料について全材料取扱店舗が販売元となっている関連商品を、電子商店街サーバ2により買い物かごに投入させる。
関連商品が買い物かごに投入されると、電子商店街サーバ2からユーザ端末4へ、ユーザが選択した全材料取扱店舗情報が示す店舗の買い物かごページが送信される。全ての材料に対応する関連商品が1つの店舗の買い物かごに入っているので、電子商店街を通じて、必要な材料全部を1つの店舗から一括して購入することができる。料理に必要な材料を1つの店舗から購入した方が、複数の店舗から購入するよりも、注文手続きの手間がかからず、また、配達料金が安くなる場合がある。
[1−2.各サーバ装置及びデータベースの構成]
次に、各サーバ装置の構成及びデータベースの構成について、図2乃至図4を用いて説明する。
[1−2−1.レシピサーバの構成]
図2は、本実施形態に係るレシピサーバ1の概要構成の一例を示すブロック図である。図2に示すように、レシピサーバ1は、通信部11と、記憶部12と、入出力インターフェース13と、システム制御部14と、を備えている。そして、システム制御部14と入出力インターフェース13とは、システムバス15を介して接続されている。
通信部11は、ネットワークNWやNLに接続して、他のサーバ装置やユーザ端末4等との通信状態を制御するようになっている。
記憶部12(本発明における記憶手段の一例)は、例えば、ハードディスクドライブ等により構成されている。この記憶部12には、レシピ情報DB12a等のデータベースが構築されている。また、記憶部12には、調味料リストが記憶されている。調味料リストは、例えば、「塩」、「醤油」、「砂糖」等の調味料名のリストである。調味料は、他の食材と異なり、ユーザが既に持っている可能性が高い。つまり、ユーザが調味料を購入する可能性が低い。そこで、システム制御部14は、レシピページにおいて全材料取扱店舗情報がユーザに選択された場合であっても、調味料を買い物かごに投入させない。
また、記憶部12には、電子商店街のWebページを構成するHTML(Hyper Text Markup Language)文書、XML(Extensible Markup Language)文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。
また、記憶部12には、オペレーティングシステム、WWW(World Wide Web)サーバプログラム、DBMS(DataBase Management System)、レシピ情報管理プログラム、電子商店街API(Application Program Interface)等の各種プログラムが記憶されている。レシピ情報管理プログラムは、レシピサイトに関する各種処理を実行するためのプログラムである。電子商店街APIは、電子商店街から提供されているプログラムである。この電子商店街APIは、レシピサーバ1が電子商店街サーバ2の電子商店街に関する各種機能を利用するためのプログラムである。例えば、システム制御部14が、検索キーワード等を指定して電子商店街APIを呼び出すことにより、電子商店街サーバ2に商品の検索を要求して、その検索結果をショッピングサーバ2から取得する。なお、レシピ情報管理プログラム等の各種プログラム(本発明におけるレシピ情報提供プログラムの一例を含む)は、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしても良いし、DVD(Digital Versatile Disc)等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしても良い。
入出力インターフェース13は、通信部11及び記憶部12とシステム制御部14との間のインターフェース処理を行うようになっている。
システム制御部14は、CPU(Central Processing Unit)14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c等により構成されている。そして、システム制御部14は、CPU14aが、各種プログラムを読み出し実行することにより、本発明における受信手段、記憶制御手段、検索制御手段、取得手段、送信手段、条件情報受信手段、レシピ情報検索手段、販売元情報取得手段、抽出手段、要求情報受信手段、登録手段、送信制御手段、分量情報取得手段、キーワード送信手段及びキーワード受信手段として機能するようになっている。
なお、レシピサーバ1が、複数のサーバ装置で構成されても良い。例えば、レシピ情報の登録、関連商品の検索の制御、全材料取扱店舗の抽出等を行うサーバ装置、ユーザ端末4からのリクエストに応じてレシピサイトのWebページを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されても良い。
[1−2−2.電子商店街サーバの構成]
図3は、本実施形態に係る電子商店街サーバ2の概要構成の一例を示すブロック図である。図3に示すように、電子商店街サーバ2は、通信部21と、記憶部22と、入出力インターフェース23と、システム制御部24と、を備えている。そして、システム制御部24と入出力インターフェース23とは、システムバス25を介して接続されている。
通信部21は、ネットワークNWやNLに接続して、他のサーバ装置やユーザ端末4等との通信状態を制御するようになっている。
記憶部22は、例えば、ハードディスクドライブ等により構成されている。この記憶部22には、店舗情報DB22a、商品情報DB22b、買い物かご情報DB22c等のデータベースが構築されている。
また、記憶部22には、電子商店街のWebページを構成するHTML文書、XML文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。
また、記憶部22には、オペレーティングシステム、WWWサーバプログラム、DBMS、電子商取引管理プログラム、アフィリエイト管理プログラム等の各種プログラムが記憶されている。電子商取引管理プログラムは、販売商品の登録、商品の買い物かごへの投入、商品の注文等の電子商店街に関する処理を実行するためのプログラムである。アフィリエイト管理プログラムは、アフィリエイトプログラムに関する処理を実行するためのプログラムである。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしても良いし、DVD等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしても良い。
入出力インターフェース23は、通信部21及び記憶部22とシステム制御部24との間のインターフェース処理を行うようになっている。
システム制御部24は、CPU24a、ROM24b、RAM24c等により構成されている。そして、システム制御部24は、CPU24aが、各種プログラムを読み出し実行することにより、本発明における検索手段として機能するようになっている。
なお、電子商店街サーバ2が、複数のサーバ装置で構成されても良い。例えば、電子商取引に関する処理を行うサーバ装置、アフィリエイトプログラムに関する処理を行うサーバ装置、ユーザ端末4からのリクエストに応じて電子商店街のWebページを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されても良い。
[1−2−3.データベースの構成]
図4(a)は、本実施形態に係る会員情報DB3aに登録される内容の一例を示す図である。データベース管理サーバは、CPU等により構成されているシステム制御部、ハードディスクドライブ等により構成されている記憶部、通信部等を備える。データベース管理サーバ3の記憶部には、会員情報DB3aが構築されている。会員情報DB3aには、総合サイトに会員登録しているユーザに関する会員情報が登録される。具体的に、会員情報DB3aには、ユーザの識別情報であるユーザID、パスワード、氏名、生年月日、性別、住所、電話番号、電子メールアドレス、保有ポイント数等が、ユーザごとに対応付けて登録される。
図4(b)は、本実施形態に係るレシピ情報DB12aに登録される内容の一例を示す図である。レシピ情報DB12aにはレシピ情報が登録される。具体的に、レシピ情報DB12aには、レシピID、投稿者ユーザID、カテゴリーID、公開フラグ、公開年月日、レシピタイトル、料理名、料理画像、材料関連情報、コメント、料理の手順、関連商品キーワード情報等が、投稿されたレシピごとに対応付けて登録される。
レシピIDは、レシピの識別情報である。投稿者ユーザIDはレシピを投稿したユーザのユーザIDである。カテゴリーIDは、投稿されたレシピが属するレシピとしてのカテゴリーの識別情報である。カテゴリーは階層的に定義されている。例えば、最上位のカテゴリーとして、「おかず・おつまみレシピ」、「主食レシピ」、「おやつレシピ」等が存在する。また、「おかず・おつまみレシピ」の1つ下位に属するカテゴリーとして、例えば、「野菜・果物を使ったレシピ」、「肉を使ったレシピ」、「魚介・海藻を使ったレシピ」等が存在する。また、「野菜・果物を使ったレシピ」の1つ下位に属するカテゴリーとして、例えば、「キャベツレシピ」、「レタスレシピ」、「水菜レシピ」等が存在する。
公開フラグは、投稿されたレシピが公開されているか否かを示す情報である。公開フラグがONに設定されている場合、レシピが公開されていることを示し、公開フラグがOFFに設定されている場合、レシピが公開されていないことを示す。公開フラグがOFFに設定されているレシピ情報は、投稿したユーザ以外のユーザが閲覧することができないようになっている。
図4(c)は、本実施形態に係る材料関連情報に設定される内容の一例を示す図である。材料関連情報には、レシピが対象とする料理を作るために必要な材料に関する情報が設定される。材料関連情報には、材料ごとに、その材料名(本発明における材料情報の一例)及び必要な分量(本発明における第1分量情報の一例)が対応付けて設定される。分量は、例えば、材料の個数、重量等で示されたり、「少々」、「適量」等が設定されたりする。また、材料関連情報には、対象人数が設定される。対象人数は、材料関連情報において示される分量の材料で、何人分の料理を作ることができるかを示す。
図4(d)は、本実施形態に係る関連商品キーワード情報に設定される内容の一例を示す図である。関連商品キーワード情報は、レシピの材料の関連商品を検索するためのキーワードである関連商品キーワード(本発明におけるキーワードの一例)のリストである。つまり、関連商品キーワード情報に設定されているキーワードが示す検索条件を満たす商品が、関連商品として検索される。各関連商品キーワードは、レシピを投稿するユーザによって自由に編集することができる。また、互いに空白を置いて複数のキーワードが1つの関連商品キーワードとして登録される場合がある。この場合、商品の検索時には、1つの関連商品キーワードに含まれる各キーワードが示す検索条件を全て満たす商品が検索される。つまり、いわゆるand検索となる。なお、図4(d)には、4個の関連商品キーワードが登録可能なように示されているが、登録可能な関連商品キーワードの個数は4個以外であっても良い。
関連商品キーワードのデフォルトの内容は、材料関連情報に設定されている材料名である。材料名そのものではなく、関連商品キーワードで材料の関連商品を検索する理由を説明する。第1に、適切な関連商品を検索するためのである。例えば、材料名として設定された名称が、商品を検索する名称としては適切ではない場合がある。また、材料名のみをキーワードとして検索すると、その材料名が示す材料以外の商品が検索される場合がある。そうすると、例えば、レシピページに適切な関連商品が示されない場合がある。そのため、レシピ情報を見たユーザが自分で商品の検索をし直さなければならない。従って、ユーザが材料を簡単に購入することができない。そこで、関連商品キーワードを適切に設定することにより、レシピの投稿者が望むような商品を検索することができる。第2に、レシピの閲覧者に購入してほしい材料をレシピの投稿者が選択できるようにするためである。
図4(e)は、本実施形態に係る店舗情報DB22aに登録される内容の一例を示す図である。店舗情報DB22aには、電子商店街に出店している店舗に関する店舗情報が登録される。具体的に、店舗情報DB22aには、店舗の識別情報である店舗ID、店舗名、住所、電話番号、電子メールアドレス等が、店舗ごとに対応付けて登録される。
図4(f)は、本実施形態に係る商品情報DB22bに登録される内容の一例を示す図である。商品情報DB22bには、電子商店街で販売されている商品に関する商品情報が登録される。具体的に、商品情報DB22bには、商品の識別情報である商品ID、販売元店舗ID、ジャンルID、商品名、価格、分量、商品画像、商品説明等が、商品ごとに対応付けて登録される。
販売元店舗IDは、商品IDに対応する商品の販売元の店舗の店舗IDである。ジャンルIDは、商品が属する商品ジャンルの識別情報である。商品ジャンルは階層的に定義されている。例えば、最上位の商品ジャンルとして、「パソコン・周辺機器」、「レディースファッション」、「食品」等が存在する。また、「食品」の1つ下位に属する商品ジャンルとして、例えば、「野菜・きのこ」、「水産物・水産加工品」、「肉・肉加工品」等が存在する。また、「野菜・きのこ」の1つ下位に属する商品ジャンルとして、例えば、「アスパラガス」、「かぼちゃ」、「キャベツ」等が存在する。分量は、商品1個に含まれる食材等の分量であり、商品が食品である場合に登録される。この分量は、例えば、食材等の個数、重量等で示される。
図4(g)は、本実施形態に係る買い物かご情報DB22cに登録される内容の一例を示す図である。買い物かご情報DB22cには、買い物かごに関する買い物かご情報が登録される。具体的に、買い物かご情報DB22cには、投入ユーザID、販売元店舗ID、投入商品ID及び投入個数が、買い物かごに投入された商品ごとに登録される。
投入ユーザIDは、買い物かごに商品を入れたユーザのユーザIDである。販売元店舗IDは、買い物かごに入っている商品の販売元の店舗の店舗IDである。投入商品IDは、買い物かごに入っている商品の商品IDである。投入個数は、商品が買い物かごに入っている個数である。
[1−3.情報提供システムの動作]
次に、情報提供システムS1の動作について、図5乃至図15を用いて説明する。
[1−3−1.レシピ投稿時の動作]
図5は、本実施形態に係る情報提供システムS1のレシピの投稿時における処理例を示すシーケンス図である。
レシピを投稿しようとするユーザは、先ず、レシピサイトにログインする必要がある。例えば、ユーザが入力したユーザID及びパスワードをユーザ端末4がレシピサーバ1に送信する。レシピサーバ1は、ユーザ端末4から受信したユーザID及びパスワードと、会員情報DB3aに登録されているユーザID及びパスワードとを照合することによりユーザの認証を行う。認証が成功すると、レシピサーバ1は、受信したユーザIDをクッキー(以下、「ユーザ識別クッキー」と称する)としてユーザ端末4に送信する。そうすると、ユーザ端末4から送信されるHTTPリクエスト(以下、「リクエスト」と称する)には、ユーザ識別クッキーとしてのユーザIDが付加されている。そのため、レシピサーバ1は、リクエストを送信してきたユーザ端末4を利用するユーザのユーザIDを取得することができる。このユーザ識別クッキーは、総合サイトのドメインで共通のクッキーである。そのため、ユーザ端末4から電子商店街サーバ2へのリクエストにもユーザIDが付加される。ユーザ識別クッキーとしてのユーザIDは、例えば、暗号化されていても良い。
なお、システム制御部14は、例えば、ユーザ端末4に送信するWebページに含まれるレシピサイトや電子商店街へのリンクのURLにユーザIDを付加しても良い。これにより、ユーザ端末4からレシピサーバ1や電子商店街サーバ2に送信されるリクエストに含まれているURLには、ユーザIDが付加される。
ユーザは、ユーザ端末4に表示されているレシピ作成用のWebページにおいて、作成するレシピのレシピタイトル、料理名等を入力する。すると、図5に示すように、ユーザ端末4が、入力された情報をレシピサーバ1に送信する(ステップS1)。
レシピタイトル、料理名等を受信したレシピサーバ1のシステム制御部14は、新たなレシピIDを生成する(ステップS2)。次いで、システム制御部14は、生成したレシピID、投稿してきたユーザのユーザID、レシピタイトルや料理名等の情報を含むレシピ情報を、レシピ情報DB12aに登録する(ステップS3)。このとき、システム制御部14は、公開フラグをOFFに設定する。次いで、システム制御部14は、投稿ページをユーザ端末4に送信する(ステップS4)。ユーザ端末4は、受信した投稿ページを画面に表示する(ステップS5)。
図6は、本実施形態に係る投稿ページの画面表示例である。投稿ページは、投稿するレシピの情報を編集するためのWebページである。図6に示すように、投稿ページには、レシピID表示欄101、レシピタイトル表示欄102、料理名表示欄103、対象人数表示欄104、材料表示欄105、料理画像表示欄106、コメント表示欄107、複数の手順表示欄108、関連商品設定ボタン109、公開ボタン110等が表示される。
レシピID表示欄101には、レシピIDが表示される。レシピタイトル表示欄102及び料理名表示欄103には、レシピタイトル及び料理名が表示される。ユーザがレシピタイトル表示欄102や料理名表示欄103を選択操作することにより、レシピタイトルや料理名を変更することができる。
対象人数表示欄104には、材料表示欄105に表示される材料の分量の対象人数が表示される。材料表示欄105には、材料名や材料の分量が表示される。ユーザが材料表示欄105を選択操作すると、ユーザ端末4は、材料設定ウインドウを投稿ページの上に重ねて表示する(ステップS6)。
図7(a)は、本実施形態に係る材料設定ウインドウの画面表示例である。材料設定ウインドウは、材料に関する情報を入力するためのウインドウである。図7(a)に示すように、材料設定ウインドウには、対象人数入力欄121、複数の材料設定領域122及び保存ボタン125等が表示される。対象人数入力欄121は、対象人数を入力するための入力欄である。各材料設定領域122は、それぞれ1つの材料の情報を入力するための領域である。材料設定領域122には、材料名入力欄123、分量入力欄124等が表示される。材料名入力欄123は、材料名を入力するための入力欄である。分量入力欄123は、分量を入力するための入力欄である。図7(a)においては、2個の材料設定領域122が表示されているが、ユーザの操作によって、材料設定領域122の個数を増減させることができる。また、ユーザの操作によって、材料設定領域122の表示順を他の材料設定領域122と入れ替えることができる。材料設定領域122の表示順が料理名表示欄103における材料の表示順に対応する。保存ボタン125は、材料設定ウインドウにおいて入力された情報を保存するためのボタンである。
ユーザが、対象人数、材料名及び分量を入力し、保存ボタン125を選択操作する(ステップS7)。すると、ユーザ端末4は、入力された情報を含む材料関連情報及びレシピIDをレシピサーバ1に送信する(ステップS8)。レシピサーバ1のシステム制御部14は、受信手段として材料関連情報を受信すると、記憶制御手段として、この材料関連情報をレシピ情報DB12aに登録する(ステップS9)。具体的に、システム制御部14は、材料関連情報を、受信したレシピIDに対応するレシピ情報中に登録する。投稿ページの対象人数表示欄104及び材料表示欄105には、入力された対象人数、材料名及び分量が表示される。
料理画像表示欄106には、完成した料理の画像が表示される。ユーザが料理画像表示欄106を選択操作することにより、表示される画像を指定することができる。コメント表示欄107には、投稿するユーザのコメントが表示される。ユーザがコメント表示欄107を選択操作することにより、コメントを入力したり変更したりすることができる。各手順表示欄108には、料理の手順の説明や手順を示す画像が表示される。ユーザが各手順表示欄108に対して各種の操作をすることにより、手順の説明の入力や変更を行ったり、画像を指定したり、手順表示欄108の追加・削除を行ったり、手順表示欄108の順番を入れ替えたりすることができる。
なお、投稿ページにおいて、ユーザが、レシピタイトル、料理名、料理画像、コメント、料理の手順等の入力や指定を行うと、その都度、ユーザ端末4が、入力または指定された情報をレシピサーバ1に送信し、レシピサーバ1が、受信した情報をレシピDB12aに登録する。
関連商品設定ボタン109は、関連商品キーワードを編集するための後述する関連商品設定ウインドウを表示させるためのボタンである。ユーザが関連商品設定ボタン109を選択操作すると、ユーザ端末4は、編集する関連商品キーワードを取得するため、レシピIDを含む関連商品キーワード情報リクエストを、レシピサーバ1に送信する(ステップS10)。
レシピサーバ1のシステム制御部14は、受信した関連商品キーワード情報リクエストに含まれるレシピIDに対応する関連商品キーワード情報を、レシピ情報DB12aから取得しようとする。しかしながら、レシピの新規投稿時、関連商品キーワード情報はまだ登録されていない。そこで、システム制御部14は、レシピ情報DB12aから、レシピIDに対応する材料関連情報を取得する。そして、システム制御部14は、材料関連情報に含まれる各材料名を、関連商品キーワード情報の各関連商品キーワードとする(ステップS11)。なお、関連商品キーワードの個数が予め定められている場合、システム制御部14は、材料関連情報に含まれる1番目の材料名から予め定められている個数までの材料名を取得して関連商品キーワードとする。システム制御部14は、キーワード送信手段として、関連商品キーワードとした材料名を含む関連商品キーワード情報を、ユーザ端末4に送信する(ステップS12)。関連商品キーワード情報を受信したユーザ端末4は、関連商品設定ウインドウを、投稿ページの上に重ねて表示する(ステップS13)。
図7(b)は、本実施形態に係る関連商品設定ウインドウの画面表示例である。関連商品設定ウインドウは、関連商品キーワードを編集するためのウインドウである。関連商品設定ウインドウには、複数の関連商品キーワード入力欄131、保存ボタン132等が表示される。
関連商品キーワード入力欄131は、1つの関連商品キーワードを編集するための入力欄である。レシピの新規投稿の際において、関連商品設定ウインドウが初めて表示されるとき、各関連商品キーワード入力欄131には、投稿ページの材料表示欄105に表示されている材料名が表示されている。つまり、関連商品キーワードのデフォルトの内容は材料名そのものである。図7(b)においては、4個の関連商品キーワード入力欄131が表示されているが、関連商品キーワード入力欄131の個数は4個以外であっても良い。また、ユーザの操作によって、関連商品キーワード入力欄131の個数を増減させることができるようになっていても良い。
ユーザが関連商品キーワードの入力、変更、削除等の編集をして保存ボタン132を選択操作すると(ステップS14)、ユーザ端末4は、編集された関連商品キーワードを含む関連商品キーワード情報とレシピIDとをレシピサーバ1に送信する(ステップS15)。レシピサーバ1のシステム制御部14は、キーワード受信手段として関連商品キーワード情報を受信すると、この関連商品キーワード情報をレシピ情報DB12aに登録する(ステップS16)。具体的にシステム制御部14は、関連商品キーワード情報を、受信したレシピIDに対応するレシピ情報中に登録する。
次いで、システム制御部14は、電子商店街サーバ2に関連商品を検索させる。具体的に、システム制御部14は、登録した関連商品キーワード情報に含まれる関連商品キーワードを検索キーワードとして設定し、「食品」のジャンルIDを検索ジャンルIDとして設定する。そして、システム制御部14は、設定した検索キーワード及び検索ジャンルIDを含む商品検索リクエストを電子商店街サーバ2に送信する(ステップS17)。
商品検索リクエストを受信した電子商店街サーバ2のシステム制御部24は、関連商品の検索を行う(ステップS18)。具体的に、システム制御部24は、商品情報DB22bにおいて、検索ジャンルIDを含む商品情報の中から、検索キーワードと一致する文言を商品名または商品説明の少なくとも何れか一方に含む商品情報を検索する。次いで、システム制御部24は、検索した商品情報ごとに、商品ID、販売元店舗ID(本発明における販売元情報の一例)、商品名、価格、分量(本発明における第2分量情報の一例)、商品画像のURL、商品ページのURL等の情報を取得する。次いで、システム制御部24は、取得した情報を検索結果情報として、レシピサーバ1に送信する(ステップS19)。なお、システム制御部24は、キーワード検索ではなく、ジャンル検索を行っても良い。この場合、システム制御部24は、検索キーワードと一致する文言をジャンル名が含む商品ジャンルに属する商品を検索する。
レシピサーバ1のシステム制御部14は、受信した検索結果情報に基づいて、投稿ページに関連商品情報を表示させる関連商品を1つ選択する(ステップS20)。関連商品キーワード情報に複数の関連商品キーワードが含まれている場合、関連商品キーワードごとにステップS16〜S20の処理が行われる。
全ての関連商品の検索が完了すると、システム制御部14は、選択した関連商品の商品名、商品画像のURL、商品ページのURL及び関連商品キーワードを含む関連商品表示用データをユーザ端末4に送信する(ステップS21)。ユーザ端末4は、受信した関連商品表示用データに基づいて、関連商品情報を投稿ページ内に表示する(ステップS22)。例えば、ユーザ端末4は、表示されている投稿ページのHTML文書の一部分を書き換えることにより、このHTML文書の所定位置に、関連商品表示用データに含まれる各情報を埋め込む。
図7(c)は、本実施形態に係る投稿ページにおける関連商品情報表示欄141の画面表示例である。図7(c)に示すように、投稿ページには、関連商品キーワードと同じ個数分の関連商品情報表示欄141が表示される。関連商品情報表示欄141には、関連商品情報等が表示される。具体的に、関連商品情報表示欄141には、関連商品画像142、関連商品リンク143及び検索リンク144が表示される。なお、関連商品キーワードが示す検索条件を満たす商品が1つも存在しなかった場合、関連商品情報表示欄141には、例えば、「ご指定の検索条件に該当する商品はありませんでした。」等のメッセージが表示される。
関連商品画像142は関連商品の画像である。関連商品リンク143は、関連商品の商品名を示す文字リンクである。ユーザが関連商品リンク143を選択操作すると、ユーザ端末4は、関連商品の商品ページのURLを含むリクエストを電子商店街サーバ2に送信し、電子商店街サーバ2が、リクエストに対応する商品ページをユーザ端末4に送信する。そして、ユーザ端末4は、受信した商品ページを画面に表示する。
ユーザが検索リンク144を選択操作すると、ユーザ端末4は、対応する関連商品キーワードを検索キーワードとして含む商品検索リクエストを、電子商店街サーバ2に送信する。電子商店街サーバ2のシステム制御部24は、商品検索リクエストに含まれる検索キーワードで商品の検索を行う。そして、システム制御部24は、商品検索結果ページをユーザ端末4に送信し、ユーザ端末4は、受信した商品検索結果ページを画面に表示する。
ユーザは、関連商品情報表示欄141に表示されている情報を見たり、関連商品情報表示欄141内のリンクを選択することにより、設定した関連商品キーワードが適切であったか否かを確認したり、設定した関連商品キーワードで如何なる商品が検索されるかを確認したりすることができる。
ユーザが、レシピの投稿に必要な情報を入力して、公開ボタン110を選択操作すると、ユーザ端末4は、レシピIDを含む公開リクエストをレシピサーバ1に送信する(ステップS23)。レシピサーバ1のシステム制御部14は、レシピ情報DB12aにおいて、受信した公開リクエストに含まれるレシピIDに対応するレシピ情報中の公開フラグをONに変更する。また、システム制御部14は、レシピページのHTML文書として、レシピIDに対応するレシピ情報に含まれる各情報を所定位置に埋め込んだHTML文書を生成し、生成したレシピページを記憶部12に記憶させる(ステップS24)。これにより、レシピの投稿が完了する。
[1−3−2.レシピ閲覧時の動作]
図8及び図9は、本実施形態に係る情報提供システムS1のレシピの閲覧時における処理例を示すシーケンス図である。
ユーザは、例えば、レシピサイトのトップページにおいて、レシピを検索するための検索キーワード(本発明における条件情報の一例)を入力する。すると、ユーザ端末4は、入力された検索キーワードをレシピサーバ1に送信する(ステップS51)。レシピサーバ1のシステム制御部14は、条件情報受信手段として検索キーワードを受信すると、レシピ情報検索手段として、この検索キーワードが示す検索条件を満たすレシピ情報を検索する(ステップS52)。具体的に、システム制御部14は、レシピ情報DB12aにおいて公開フラグがONに設定されているレシピ情報の中から、検索キーワードと一致する文言を、レシピタイトル、料理名またはコメントの少なくとも何れか1つに含むレシピ情報を検索する。
なお、ユーザがレシピサイトのトップページにおいてカテゴリーを選択した場合、ユーザ端末4は、選択されたカテゴリーのカテゴリーID(本発明における条件情報の一例)をレシピサーバ1に送信する。そして、レシピサーバ1は、レシピ情報DB12aにおいて、受信したカテゴリーIDを含むレシピ情報を検索する。
次いで、システム制御部14は、検索結果ページをユーザ端末4に送信する(ステップS53)。このとき、システム制御部14は、受信した検索キーワードを検索条件ワードとして、ユーザ端末4に対応付けて保持する。検索条件ワードは、買い物かごに入れる関連商品の選択の際に用いられる。検索条件ワードを保持する方法として、システム制御部14は、検索条件ワードをクッキー(以下、「検索条件クッキー」と称する)としてユーザ端末4に送信する。これにより、ユーザ端末4からレシピサーバ1に送信されるリクエストには、検索条件クッキーとしての検索条件ワードが付加される。そのため、システム制御部14は、検索条件ワードを事実上保持することができる。あるいは、システム制御部14は、例えば、検索結果ページ以降、ユーザ端末4に送信するWebページに含まれるレシピサイトへのリンクのURLに、検索条件ワードを付加しても良い。これにより、ユーザ端末4からレシピサーバ1に送信されるリクエストに含まれているURLには、検索条件ワードが付加される。あるいは、システム制御部14は、ユーザ端末4に送信するWebページのHTML文書に、検索条件ワードをレシピサーバ1に送信させるためのスクリプトを埋め込んでも良い。
なお、システム制御部14は、ユーザ端末4からカテゴリーIDを受信した場合には、カテゴリーIDに対応するカテゴリー名から「レシピ」の文字を除いた部分を検索条件ワードとして保持する。
ユーザ端末4は、レシピサーバ1から受信した検索結果ページを画面に表示する(ステップS54)。検索結果ページは、レシピ情報の検索結果の一覧を表示するWebページである。検索結果ページには、検索されたレシピ情報のレシピタイトル、レシピID、画像、コメント、材料名等が表示される。ここで、ユーザが何れかのレシピタイトルを選択操作すると、ユーザ端末4は、レシピページリクエストをレシピサーバ1に送信する(ステップS55)。レシピサーバ1のシステム制御部14は、送信手段として、レシピページをユーザ端末4に送信する(ステップS56)。具体的に、システム制御部14は、受信したリクエストに対応するレシピページのHTML文書を記憶部12から取得し、取得したHTML文書をユーザ端末4に送信する。ユーザ端末4は、受信したHTML文書に基づいて、レシピページを画面に表示する(ステップS57)。
図10は、本実施形態に係るレシピページの画面表示例である。図10に示すように、レシピページには、レシピID表示欄151、レシピタイトル表示欄152、料理名表示欄153、対象人数表示欄154、材料表示欄155、料理画像表示欄156、コメント表示欄157、複数の手順表示欄158等が表示される。これらの表示欄に、レシピID、レシピタイトル、料理名、対象人数、材料及び分量、料理の画像、コメント及び手順が表示される。
ユーザ端末4は、レシピページを表示すると、レシピIDを含む関連商品情報リクエストをレシピサーバ1に送信する(ステップS58)。例えば、レシピページのHTML文書に、レシピページの表示が完了したタイミングで実行されるスクリプトが記述されている。ユーザ端末4は、このスクリプトを実行することにより、関連商品情報リクエストを送信する。
関連商品情報リクエストを受信したレシピサーバ1のシステム制御部14は、検索制御手段として、電子商店街サーバ2に関連商品を検索させ、販売元情報取得手段及び分量情報取得手段として、電子商店街サーバ2から検索結果情報を取得する。具体的に、システム制御部14は、関連商品情報リクエストからレシピIDを取得する。そして、システム制御部14は、レシピ情報DB12aに登録されているレシピ情報から、レシピIDに対応する関連商品キーワード情報を取得する。そして、システム制御部14は、取得した関連商品キーワード情報に基づいて、図5に示すステップS17〜S20と同様の処理を行うことにより、レシピページに関連商品情報を表示させる関連商品を1つ選択する(ステップS59〜S62)。
次いで、システム制御部14は、取得手段として、関連商品の商品ページのアフィリエイトリンクを示すURL(以下、「アフィリエイト用URL」と称する)を取得する。具体的に、システム制御部14は、選択した関連商品の商品IDと、レシピ情報を投稿したユーザのユーザIDと、を含むアフィリエイト用URLリクエストを送信する(ステップS63)。電子商店街サーバ2のシステム制御部24は、受信したアフィリエイト用URLリクエストに含まれる商品ID及びユーザIDに基づいて、アフィリエイト用URL(本発明におけるリンク情報及び内容情報の一例)を生成する(ステップS64)。具体的に、システム制御部24は、アフィリエイト用URLリクエストに含まれる商品IDに対応する商品の商品ページへのアフィリエイト用URLを生成する。このとき、システム制御部24は、アフィリエイト用URLリクエストに含まれるユーザIDを、アフィリエイターのユーザID(本発明における対象者情報の一例)として、アフィリエイト用URL中に設定する。アフィリエイト用URLに含まれるアフィリエイターのユーザIDに対応するユーザに、アフィリエイトプログラムの報酬が付与される。システム制御部14は、アフィリエイターを識別することができる情報であれば、ユーザID以外の情報をアフィリエイト用URLに設定しても良い。例えば、システム制御部14は、アフィリエイターのユーザIDを暗号化したものを設定しても良い。システム制御部24は、生成したアフィリエイト用URLをレシピサーバ1に送信する(ステップS65)。なお、レシピサーバ1自身がアフィリエイト用URLを生成しても良い。
レシピサーバ1のシステム制御部14は、アフィリエイト用URLを受信すると、抽出手段として、レシピページに関連商品情報を表示させる全ての材料を取り扱っている全材料取扱店舗を抽出する(ステップS66)。次いで、システム制御部14は、選択した関連商品の商品名、商品画像のURL、商品ページのアフィリエイト用URL及び関連商品キーワードを含む関連商品表示用データをユーザ端末4に送信する。また、システム制御部14は、抽出した店舗の店舗名、店舗ID、及びその店舗が取り扱っている関連商品の材料ごとの商品IDを含む全材料取扱店舗表示用データをユーザ端末4に送信する(ステップS67)。
なお、ステップS59〜S67におけるレシピサーバ1の詳細な処理については後述する。
ユーザ端末4は、受信した関連商品表示用データに基づいて、関連商品情報をレシピページ内に表示する。また、ユーザ端末4は、受信した全材料取扱店舗表示用データに基づいて、全材料取扱店舗情報をレシピページ内に表示する(ステップS68)。例えば、ユーザ端末4は、表示されているレシピページのHTML文書の一部分を書き換えることにより、このHTML文書の所定位置に、関連商品表示用データや全材料取扱店舗表示用データに含まれる各情報を埋め込む。
図10に示すように、レシピページには、複数の関連商品情報表示欄161が表示される。関連商品情報表示欄161には、図7(c)に示す関連商品情報表示欄141の場合と同様に、関連商品情報等が表示される。具体的に、関連商品情報表示欄161には、関連商品画像162、関連商品リンク163及び検索リンク164が表示される。
ユーザは、関連商品リンク163を選択することにより表示される商品ページにおいて、関連商品の情報を見ることができる。また、ユーザは、検索リンク164を選択することにより表示される商品検索結果ページにおいて、関連商品の一覧を見ることができる。
関連商品リンク163は商品ページへのアフィリエイトリンクになっている。そのため、関連商品リンク163がユーザに選択されると、電子商店街サーバ2のシステム制御部24は、商品ページをユーザ端末4に送信する。このとき、システム制御部24は、アフィリエイトプログラム用のクッキー(以下、「アフィリエイトクッキー」と称する)をユーザ端末4に送信する。アフィリエイトクッキーは、アフィリエイトプログラムにおいて、報酬の付与対象となるアフィリエイターを識別するための情報である。関連商品リンク163の選択によってユーザ端末4から送信される商品ページリクエストには、アフィリエイターのユーザIDとして、レシピを投稿したユーザのユーザIDが含まれている。そこで、システム制御部24は、商品ページリクエストに含まれるユーザIDをアフィリエイトクッキーとしてユーザ端末4に送信する。
なお、関連商品リンク163を介して商品が購入された場合、購入された商品がたとえ関連商品リンク163が示す商品とは異なる商品であったとしても、レシピを投稿したユーザに報酬が付与されるようにしても良い。
ここで、レシピを検索するときに用いられた検索キーワードと名称が一致する材料または指定されたカテゴリーが示す材料に対応する関連商品情報表示欄161は、他の関連商品情報表示欄161よりも表示の優先順位が低くなっている。具体的には、関連商品情報表示欄161が左方に位置するほどその表示の優先順位が高く、また、関連商品情報表示欄161が上方に位置するほどその表示の優先順位が高い。また、例えば、1つのレシピページに表示可能な関連商品情報表示欄161の個数の上限値が予め決められており、表示すべき関連商品情報表示欄161の個数がその上限値を超えている場合、優先順位が高い関連商品情報表示欄161から順に優先的に表示される。そして、レシピページにおいて、「関連商品をもっと見る」と表示されたリンクがユーザにより選択されると、今まで表示されていなかった関連商品情報表示欄161が表示される。
関連商品情報表示欄161の表示の優先順位は、基本的には関連商品設定ウインドウにおける関連商品キーワード入力欄131の表示位置に対応している。ユーザがレシピを検索するとき、ユーザ自身が今持っている食材を使って作ることができる料理のレシピを探す場合がある。例えば、ユーザがピーマンを持っているとすると、ユーザは、検索キーワードとして「ピーマン」を入力する。この検索キーワードによって検索されたレシピの関連商品キーワードに「ピーマン」が登録されていると、ピーマンに対応する関連商品情報表示欄161が表示されることになる。しかしながら、ユーザが持っている材料は、他の材料と比較して購入される可能性が低い。そこで、このような材料に対応する関連商品情報表示欄161の表示の優先順位を下げると、その関連商品情報表示欄161に含まれるリンクがユーザによって選択されにくくなる。つまり、ユーザは、誤って不要な操作を行わないで済むようになる。
検索リンク164は商品検索結果ページへのアフィリエイトリンクになっている。そのため、検索リンク164がユーザに選択されると、電子商店街サーバ2のシステム制御部24は、アフィリエイトクッキーとして、レシピを投稿したユーザのユーザIDをユーザ端末4に送信する。なお、検索リンク164を介して商品が購入された場合、購入された商品がたとえ商品検索結果ページに一覧表示された商品とは異なる商品であったとしても、レシピを投稿したユーザに報酬が付与されるようにしても良い。
また、レシピページには、全材料取扱店舗表示用データとして1または複数の全材料取扱店舗リンク165が表示される場合がある。全材料取扱店舗リンク165は、関連商品情報が表示されている材料全部を取り扱っている全材料取扱店舗の店舗名を示す文字リンクである。ただし、調味料は取り扱うべき材料とはされていない。上述したように、調味料は既にユーザが持っている可能性が高いからである。また、ユーザが入力した検索キーワードと名称が一致する材料や指定したカテゴリーが示す材料も、取り扱うべき材料とはされていない。このような材料も、既にユーザが持っている可能性が高いからである。これらの場合、レシピページには、例えば、「調味料以外の全ての関連商品がそろっているのはこちらのお店です。」や、「ピーマン以外の全ての関連商品がそろっているのはこちらのお店です。」等のメッセージが表示される。また、関連商品を検索することができなかった材料が存在する場合、レシピページには、例えば、「○○○以外の全ての関連商品がそろっているのはこちらのお店です。」等のメッセージが表示される。ここで、「○○○」は、関連商品を検索することができなかった材料の材料名である。
全材料取扱店舗リンク165は、店舗名が示す全材料取扱店舗に対応する買い物かごページへのアフィリエイトリンクになっている。なお、全材料取扱店舗リンク165を介して商品が購入された場合、購入された商品がたとえユーザが選択した店舗とは異なる店舗が販売元となっている商品であったとしても、レシピを投稿したユーザに報酬が付与されるようにしても良い。
関連商品リンク163や全材料取扱店舗リンク165は、文字リンクではなくとも良く、例えば、画像リンクであっても良いし、リンクボタンであっても良い。リンクボタンは、そのボタンが選択されると、そのボタンに設定されているURLに対応するWebページにページ遷移するボタンである。
なお、レシピサーバ1は、レシピページ内に関連商品情報及び全材料取扱店舗情報を表示させるために、関連商品表示用データ及び全材料取扱店舗表示用データをレシピページのHTML文書に予め埋め込んで、このHTML文書をユーザ端末4に送信しても良い。
具体的に、レシピサーバ1のシステム制御部14は、ユーザ端末4からレシピページリクエストを受信したときに、ステップS59〜S66と同様に、関連商品の検索の要求、関連商品情報を表示させる関連商品の選択、アフィリエイト用URLの取得、及び全材料取扱店舗の抽出を行う。また、システム制御部14は、全材料取扱店舗の店舗ID及びその店舗が取り扱っている関連商品の材料ごとの商品IDを含む買い物かご投入依頼用のURLを生成する。買い物かご投入依頼用のURLは、全材料取扱店舗リンク165に設定されるURLである。次いで、システム制御部14は、レシピページリクエストに対応するレシピページのHTML文書を記憶部12から取得する。
次いで、システム制御部14は、関連商品の商品ページのアフィリエイト用URLが設定されたaタグとして、開始タグと終了タグとの間に関連商品の商品名を挟んだaタグを、取得したHTML文書に埋め込む。また、システム制御部14は、関連商品の商品画像のURLが設定されたimgタグを、取得したHTML文書に埋め込む。また、システム制御部14は、電子商店街サーバ2に商品検索リクエストを送信するためのURLとして、検索キーワードとして関連商品キーワードが付加されたURLが設定されたaタグを、取得したHTML文書に埋め込む。また、システム制御部14は、買い物かご投入依頼用のURLが設定されたaタグとして、開始タグと終了タグとの間に全材料取扱店舗の店舗名を挟み込んだaタグを、取得したHTML文書に埋め込む。そして、システム制御部14は、必要な情報を埋め込んだHTML文書をユーザ端末4に送信する。
レシピページにおいて、ユーザが全材料取扱店舗リンク165を選択操作すると(ステップS81)、図9に示すように、ユーザ端末4は、選択された全材料取扱店舗リンク165に対応する全材料取扱店舗の店舗ID及び関連商品の商品IDを含む買い物かご投入依頼リクエストをレシピサーバ1に送信する(ステップS82)。
レシピサーバ1のシステム制御部14は、要求情報受信手段として買い物かご投入依頼リクエストを受信すると、関連商品情報が表示されている全ての材料に対応する関連商品のうち、ユーザに選択された全材料取扱店舗が取り扱っている商品を買い物かごに投入させる。なお、買い物かご投入依頼リクエストとともにユーザ端末4から送信されるべきユーザ識別クッキーが送信されてこなかった場合、すなわち、ユーザがレシピサイトにログインしていない場合には、ユーザはこの時点でログインする必要がある。レシピサーバ1が買い物かごへの投入を行うユーザを識別するためである。
システム制御部14は、受信した買い物かご投入依頼リクエストに含まれる商品ID、全材料取扱店舗リンク165を選択操作したユーザのユーザID、及び投入個数としての1を設定した買い物かご投入リクエストを、電子商店街サーバ2に送信する(ステップS83)。電子商店街サーバ2のシステム制御部24は、商品情報DB22bに登録されている商品情報から、受信した買い物かご投入リクエストに含まれる商品IDに対応する店舗IDを取得する。そして、システム制御部14は、買い物かご投入リクエストに含まれるユーザID、商品ID、投入個数及び商品情報から取得した店舗IDを含む買い物かご情報を、買い物かご情報DB22cに登録する(ステップS84)。次いで、システム制御部24は、買い物かご投入完了応答をレシピサーバ1に送信する(ステップS85)。
なお、買い物かご投入依頼リクエストに商品IDが複数含まれている場合、商品IDごとに、ステップS83〜S85の処理が行われる。
次いで、レシピサーバ1のシステム制御部14は、全材料取扱店舗の買い物かごページのアフィリエイト用URL(本発明における店ページリンク情報及び内容情報の一例)を取得する。具体的に、システム制御部14は、受信した買い物かご投入依頼リクエストに含まれる店舗ID及び閲覧されているレシピを投稿したユーザのユーザIDを含むアフィリエイト用URLリクエストを送信する(ステップS86)。電子商店街サーバ2のシステム制御部24は、受信したアフィリエイト用URLリクエストに含まれる店舗ID及びユーザIDに基づいて、アフィリエイト用URLを生成する(ステップS87)。そして、システム制御部24は、生成したアフィリエイト用URLをレシピサーバ1に送信する(ステップS88)。なお、レシピサーバ1自身がアフィリエイト用URLを生成しても良い。
アフィリエイト用URLを受信したレシピサーバ1のシステム制御部14は、送信制御手段として、選択された全材料取扱店舗の買い物かごページを電子商店街からユーザ端末4に送信させる。具体的に、システム制御部14は、受信したURLをリダイレクト先とするリダイレクト指示応答を、ユーザ端末4に送信する(ステップS89)。リダイレクト指示応答は、ユーザ端末4が送信したリクエスト(この場合は買い物かご投入依頼リクエスト)に含まれるURLとは異なるURL(この場合は選択された全材料取扱店舗に対応する買い物かごページのURL)で再度リクエストを送信するよう指示するメッセージである。そのため、リダイレクト指示応答を受信したユーザ端末4は、電子商店街サーバ2に、買い物かごページリクエストを送信する(ステップS90)。
電子商店街サーバ2のシステム制御部24は、受信した買い物かごページリクエストに基づいて、買い物かごページを生成する(ステップS91)。買い物かごページリクエストには、買い物かごを表示させる店舗の店舗IDが含まれている。また、買い物かごページリクエストには、ユーザ識別クッキーとしてのユーザIDが付加されている。そこで、システム制御部24は、買い物かご情報DB22cから、店舗ID及びユーザIDに対応する買い物かご情報を検索する。そして、システム制御部24は、検索した買い物かご情報に基づいて、買い物かごページを生成する。
買い物かごページを生成したシステム制御部24は、生成した買い物かごページをユーザ端末4に送信する(ステップS92)。また、システム制御部24は、買い物かごページリクエストに含まれるアフィリエイト用URLに設定されているアフィリエイターのユーザIDを、アフィリエイトクッキーとしてユーザ端末4に送信する。ユーザ端末4は、受信した買い物かごページを画面に表示する(ステップS93)。
ここで、レシピサーバ1が、アフィリエイトリンクである全材料取扱店舗リンク165にアフィリエイト用URLを設定せず、リダイレクト指示応答によりアフィリエイト用URLをユーザ端末4に送信する理由を説明する。本実施形態におけるアフィリエイトプログラムの仕組みにおいては、アフィリエイトリンクがユーザに選択されたときにユーザ端末4にアフィリエイトクッキーが記憶されるようにするには、アフィリエイトプログラムに関する処理を行う電子商店街サーバ2に、ユーザ端末4がアフィリエイト用URLを含むリクエストを送信する必要がある。しかしながら、全材料取扱店舗リンク165が選択された場合、先ずレシピサーバ1が、関連商品を買い物かごに入れるための処理を行う必要がある。そこで、レシピサーバ1は、全材料取扱店舗リンク165が選択されるとユーザ端末4から買い物かご投入依頼リクエストがレシピサーバ1に送信されるようにする。そして、レシピサーバ1は、買い物かご投入依頼リクエストに基づいて必要な処理を実行した後で、ユーザ端末4がアフィリエイト用URLを含むリクエストを電子商店街サーバ2に送信するように、リダイレクト指示応答を送信する。
図11は、本実施形態に係る買い物かごページの画面表示例である。図11に示すように、買い物かごページには、投入商品情報表示欄171、注文手続きボタン173等が表示される。投入商品情報表示欄171は、買い物かごに投入されている商品ごとに表示される。投入商品情報表示欄171には、例えば、商品名、商品1個に含まれる食材の分量、単価、投入個数、価格の小計、変更リンク172等が表示される。ユーザは、投入商品情報表示欄171に対して操作を行うことにより、投入個数を増減させたり、買い物かごから商品を外すことができる。
また、ユーザが変更リンク172を選択すると、ユーザ端末4は、商品検索リクエストを電子商店街サーバ2に送信する。このとき、ユーザ端末4は、検索キーワードとして、選択された変更リンク172に情報が表示されている関連商品に対応する関連商品キーワードを商品検索リクエストに設定する。また、ユーザ端末4は、検索範囲を示す検索条件として、買い物かごページに対応する店舗の店舗IDを商品検索リクエストに設定する。電子商店街サーバ2のシステム制御部24は、商品検索リクエストに含まれる検索キーワードで商品の検索を行う。このとき、システム制御部24は、商品検索リクエストに含まれる店舗IDに対応する店舗が販売元になっている商品のみを検索する。そして、システム制御部24は、商品検索結果ページをユーザ端末4に送信し、ユーザ端末4は、受信した商品検索結果ページを画面に表示する。ユーザは、例えば、買い物かごに入っている関連商品が気に入らなかった場合には、商品検索結果ページに表示されている検索結果に基づいて、別の関連商品を選択することができる。
注文手続きボタン173(本発明における操作要素の一例)は、全ての投入商品情報表示欄171に表示されている商品を一括して購入するためも注文手続きに進むためのボタンである。ユーザが注文手続きボタン173を選択操作すると、ユーザ端末4は、注文手続きページリクエストを電子商店街サーバ2に送信し(ステップS94)、電子商店街サーバ2のシステム制御部24は、注文手続きページをユーザ端末4に送信する(ステップS95)。注文手続きページは、買い物かごに入っている商品を注文するために必要な情報を入力したり、注文内容を最終的に確認するためのWebページである。ユーザが、注文手続きページにおいて注文内容を確認した後、「この内容で注文する」と表示されたボタンを選択操作すると、ユーザ端末4は、電子商店街サーバ2に注文リクエストを送信する(ステップS96)。このとき、ユーザ端末4は、アフィリエイトクッキーを注文リクエストに付加して送信する。
電子商店街サーバ2のシステム制御部24は、受信した注文リクエストに基づいて、買い物かごに入っている商品の注文を確定させる注文受け付け処理を実行する(ステップS97)。例えば、システム制御部24は、注文内容を示す注文情報を生成して記憶部22に記憶させる。また、システム制御部24は、注文リクエストにアフィリエイトクッキーが付加されている場合には、アフィリエイターに報酬を付与するための準備段階の処理として、アフィリエイト登録処理を実行する(ステップS98)。例えば、システム制御部24は、アフィリエイトクッキーが示すユーザIDを注文情報と対応付けて記憶部12に記憶させる。アフィリエイターに実際に報酬を付与するための処理は、例えば、注文代金の決済が完了したときに行われる。なお、注文受け付け処理及びアフィリエイト登録処理の詳細な説明は省略する。
[1−3−3.レシピサーバの動作]
図12乃至図14は、本実施形態に係るレシピサーバ1のシステム制御部14の関連商品情報リクエスト受信時処理における処理例を示すフローチャートである。関連商品情報リクエスト受信時処理は、レシピサーバ1がユーザ端末4から関連商品情報リクエストを受信したときに開始される。
図12に示すように、先ず、システム制御部14は、関連商品情報リクエストからレシピIDを取得する(ステップS101)。次いで、システム制御部14は、レシピ情報DB12aに登録されているレシピ情報から、取得したレシピIDに対応するユーザID、材料関連情報及び関連商品キーワード情報を取得する(ステップS102)。次いで、システム制御部14は、取得した関連商品キーワード情報に含まれる関連商品キーワードのうち1つの関連商品キーワードを選択する(ステップS103)。
次いで、システム制御部14は、選択した関連商品キーワードを商品検索キーワードに設定するとともに、「食品」に対応するジャンルIDを検索ジャンルIDとして設定する(ステップS104)。次いで、システム制御部14は、設定した商品検索キーワード及び検索ジャンルIDを含む商品検索リクエストを電子商店街サーバ2に送信する(ステップS105)。そして、システム制御部14は、電子商店街サーバ2から検索結果情報を受信する(ステップS106)。
次いで、システム制御部14は、受信した検索結果情報に基づいて、関連商品が検索された否かを判定する(ステップS107)。このとき、システム制御部14は、関連商品が検索されなかったと判定した場合には(ステップS107:NO)、該当商品なしを示す情報を含む関連商品表示用データを生成する(ステップS108)。次いで、システム制御部14は、ステップS116に移行する。
一方、システム制御部14は、関連商品が検索されたと判定した場合には(ステップS107:YES)、選択した関連商品キーワードに対応する材料の分量を取得する(ステップS109)。先ず、システム制御部14は、選択した関連商品キーワードに対応する材料を特定する。例えば、レシピサイトの管理者が、あらゆる材料について、関連するキーワードを対応付けて予め所定のデータベースに登録させておく。例えば、ゴーヤに対応するキーワードとしては、「ゴーヤ」、「にがうり」、「苦瓜」等がある。システム制御部14は、関連商品キーワードが「ゴーヤ」であった場合、データベースから「ゴーヤ」、「にがうり」及び「苦瓜」等のキーワードを取得する。そして、システム制御部14は、取得した何れかのキーワードに一致する材料名を、材料関連情報から検索する。システム制御部14は、こうして材料を特定すると、その材料名に対応する分量を材料関連情報から取得する。
なお、例えば、関連商品設定ウインドウにおいて、各関連商品キーワード入力欄131ごとに、入力されている関連商品キーワードがどの材料に対応しているかをユーザが選択することができるようになっていても良い。この場合、システム制御部14は、関連商品キーワードと、ユーザにより選択された材料の材料名と、を対応付けて示す関連商品キーワード情報をレシピ情報DB12aに登録する。
次いで、システム制御部14は、検索結果情報に含まれる各商品の分量に基づいて、検索された関連商品の中から、その分量が、選択した関連商品キーワードに対応する材料の分量以上である関連商品を、第1商品群として抽出する(ステップS110)。なお、システム制御部14は、選択した関連商品キーワードに対応する材料の分量以上である関連商品が存在しない場合には、検索された関連商品全てを第1商品群に含める。
次いで、システム制御部14は、第1商品群の中から、その分量が、選択した関連商品キーワードに対応する材料の分量に最も近い関連商品を、第2商品群として抽出する(ステップS111)。
次いで、システム制御部14は、検索結果情報に含まれる各商品の価格に基づいて、第2商品群の中から、価格が最も安い商品を、関連商品情報の表示対象として選択する(ステップS112)。なお、ステップS109において、関連商品キーワードに対応する材料を特定することができない場合や、取得された分量が「少々」、「適量」等、正確な分量ではない場合がある。その場合、システム制御部14は、ステップS110及びS111の処理を実行せずに、検索された関連商品の中から価格が最も安い商品を選択する。
次いで、システム制御部14は、レシピ情報から取得したユーザID及び選択した商品の商品IDを含むアフィリエイト用URLリクエストを電子商店街サーバ2に送信する(ステップS113)。そして、システム制御部14は、電子商店街サーバ2から商品ページのアフィリエイト用URLを受信する(ステップS114)。次いで、システム制御部14は、検索結果情報から、選択した関連商品の商品名及び商品画像のURLを取得する。そして、システム制御部14は、関連商品の商品名、商品画像のURL及びアフィリエイト用URLを含む関連商品表示用データを生成する(ステップS115)。
次いで、システム制御部14は、レシピ情報から取得した関連商品キーワード情報から全ての関連商品キーワードを選択したか否かを判定する(ステップS116)。このとき、システム制御部14は、選択していない関連商品キーワードが存在すると判定した場合には(ステップS116:NO)、まだ選択していない関連商品キーワードのうち1つの関連商品キーワードを選択して(ステップS117)、ステップS104に移行する。
一方、システム制御部14は、全ての関連商品キーワードを選択したと判定した場合には(ステップS116:YES)、関連商品情報リクエストとともにユーザ端末4から送信されてきた検索条件クッキーから検索条件ワードを取得する(ステップS118)。次いで、システム制御部14は、関連商品キーワード情報に含まれる関連商品キーワードのうち、検索条件ワードと一致する文言を含む関連商品キーワードに対応する関連商品表示用データの送信の順序を1番最後に設定する(ステップS119)。関連商品表示用データの送信の順番が、レシピページにおける関連商品情報表示欄161の表示の優先順位に対応する。なお、関連商品表示用データの送信のデフォルトの順番は、関連商品キーワード情報から関連商品キーワードが取得された順番に一致する。
次いで、システム制御部14は、図13に示すように、全材料取扱店舗を抽出する。先ず、システム制御部14は、関連商品キーワード情報に含まれる関連商品キーワードの中から、関連商品を検索することができた関連商品キーワードを、第1キーワード群として抽出する(ステップS131)。次いで、システム制御部14は、第1キーワード群の中から、検索条件ワードと一致する文言を含まない関連商品キーワードを、第2キーワード群として抽出する(ステップS132)。次いで、システム制御部14は、調味料リストに基づいて、第2キーワード群の中から、調味料名と一致する文言を含まない関連商品キーワードを、第3キーワード群として抽出する(ステップS133)。こうして、システム制御部14は、選択手段として、全材料取扱店舗が取り扱わなくても良い材料を除外する。
次いで、システム制御部14は、第3キーワード群に含まれる1番目の関連商品キーワードを、第1キーワードとして選択する(ステップS134)。次いで、システム制御部14は、店舗IDが1つも登録されていない全材料取扱店舗リストを生成することにより、全材料取扱店舗リストを初期化する(ステップS135)。全材料取扱店舗リストは、全材料取扱店舗の店舗IDのリストである。
次いで、システム制御部14は、第1キーワードに対応する検索結果情報から販売元店舗IDを1つ取得する(ステップS136)。次いで、システム制御部14は、取得した販売元店舗IDが全材料取扱店舗リストに登録されているか否かを判定する(ステップS137)。このとき、システム制御部14は、取得した販売元店舗IDが全材料取扱店舗リストに登録されている場合には(ステップS137:YES)、ステップS145に移行する。
一方、システム制御部14は、取得した販売元店舗IDが全材料取扱店舗リストに登録されていない場合には(ステップS137:NO)、関連商品キーワードのインデックスiに2を設定する(ステップS138)。次いで、システム制御部14は、第2キーワード群に含まれるi番目の関連商品キーワードを、第2キーワードとして選択する(ステップS139)。次いで、システム制御部14は、取得した販売元店舗IDを、第2キーワードに対応する検索結果情報から検索する(ステップS140)。次いで、システム制御部14は、取得した販売元店舗IDが、第2キーワードに対応する検索結果情報から検索されたか否かを判定する(ステップS141)。このとき、システム制御部14は、販売元店舗IDが検索されなかったと判定した場合には(ステップS141:NO)、ステップS145に移行する。
一方、システム制御部14は、販売元店舗IDが検索されたと判定した場合には(ステップS141:YES)、インデックスiに1を加算する(ステップS142)。次いで、システム制御部14は、インデックスiの値が第3キーワード群に含まれる関連商品キーワードの個数の値よりも大きいか否かを判定する(ステップS143)。このとき、システム制御部14は、インデックスiの値が第3キーワード群に含まれる関連商品キーワードの個数の値以下であると判定した場合には(ステップS143:NO)、ステップS139に移行する。システム制御部14は、ステップS139〜S143の処理を繰り返すことにより、取得した販売元店舗IDに対応する店舗が全材料取扱店舗であるか否かを判定する。
一方、システム制御部14は、インデックスiの値が第3キーワード群に含まれる関連商品キーワードの個数の値よりも大きいと判定した場合には(ステップS143:YES)、取得した販売元店舗IDを全材料取扱店舗リストに登録する(ステップS144)。次いで、システム制御部14は、第1キーワードに対応する検索結果情報から販売元店舗IDを全て取得したか否かを判定する(ステップS145)。このとき、システム制御部14は、まだ取得していない販売元店舗IDが存在すると判定した場合には(ステップS145:NO)、まだ取得していない販売元店舗IDのうち1つの販売元店舗IDを取得して(ステップS146)、ステップS137に移行する。
一方、第1キーワードに対応する検索結果情報から販売元店舗IDを全て取得したとシステム制御部14が判定すると(ステップS145:YES)、全材料取扱店舗の抽出が完了する。そこで、システム制御部14は、図14に示すように、抽出した全材料取扱店舗ごとに、買い物かごに入れるべき関連商品を選択する。先ず、システム制御部14は、全材料取扱店舗リストから販売元店舗IDを1つ取得する(ステップS161)。次いで、システム制御部14は、インデックスiに1を設定する(ステップS162)。次いで、システム制御部14は、第3キーワード群に含まれるi番目の関連商品キーワードを選択する(ステップS163)。
次いで、システム制御部14は、選択した関連商品キーワードに対応する検索結果情報に基づいて、選択した関連商品キーワードに対応して検索された関連商品の中から、選択した販売元店舗IDに対応する全材料取扱店舗が販売元になっている関連商品を抽出する(ステップS164)。次いで、システム制御部14は、図12に示すステップS109〜S112と同様の処理を実行することにより、選択手段として、ステップS164において抽出した関連商品の中から買い物かごに入れる関連商品を選択する(ステップS165〜S168)。
次いで、システム制御部14は、インデックスiに1を加算する(ステップS169)。次いで、システム制御部14は、インデックスiの値が第3キーワード群に含まれる関連商品キーワードの個数の値よりも大きいか否かを判定する(ステップS170)。このとき、システム制御部14は、インデックスiの値が第3キーワード群に含まれる関連商品キーワードの個数の値以下であると判定した場合には(ステップS170:NO)、ステップS164に移行する。システム制御部14は、ステップS164〜S170の処理を繰り返すことにより、取得した販売元店舗IDに対応する全材料取扱店舗について、買い物かごに入れる関連商品を材料ごとに選択する。
一方、システム制御部14は、インデックスiの値が第3キーワード群に含まれる関連商品キーワードの個数の値よりも大きいと判定した場合には(ステップS170:YES)、全材料取扱店舗リンク165に設定される買い物かご投入依頼用のURLを生成する(ステップS171)。具体的に、システム制御部14は、取得した販売元店舗IDと、取得した販売元店舗IDに対応して選択した各関連商品の商品IDと、を含む買い物かご投入依頼用のURLを生成する。
次いで、システム制御部14は、生成した買い物かご投入依頼用のURL及び全材料取扱店舗の店舗名を含む全材料取扱店舗表示用データを生成する(ステップS172)。次いで、システム制御部14は、全材料取扱店舗リストから販売元店舗IDを全て取得したか否かを判定する(ステップS173)。このとき、システム制御部14は、まだ取得していない販売元店舗IDが存在すると判定した場合には(ステップS173:NO)、まだ取得していない販売元店舗IDのうち1つの販売元店舗IDを取得して(ステップS174)、ステップS162に移行する。
一方、全材料取扱店舗リストから販売元店舗IDを全て取得したとシステム制御部14が判定すると(ステップS173:YES)、全ての全材料取扱店舗について、買い物かごに入る関連商品の選択が完了する。そこで、システム制御部14は、生成した各関連商品表示用データを、設定した順番でユーザ端末4に送信する。また、システム制御部14は、生成した各全材料取扱店舗表示用データをユーザ端末4に送信する(ステップS175)。システム制御部14は、ステップS175の処理を終えると、関連商品情報リクエスト受信時処理を終了させる。
図15は、本実施形態に係るレシピサーバ1のシステム制御部14の買い物かご投入依頼リクエスト受信時処理における処理例を示すフローチャートである。買い物かご投入依頼リクエスト受信時処理は、レシピサーバ1がユーザ端末4から買い物かご投入依頼リクエストを受信したときに開始される。
先ず、システム制御部14は、買い物かご投入依頼リクエストとともにユーザ端末4から送信されてきたユーザ識別クッキーからユーザIDを取得する(ステップS201)。次いで、システム制御部14は、受信した買い物かご投入依頼リクエストから、商品IDを1つ取得する(ステップS202)。次いで、システム制御部14は、登録手段として、取得した商品IDに対応する関連商品を、電子商店街サーバ2により買い物かごに投入させる。具体的に、システム制御部14は、取得したユーザID、商品ID、投入個数としての1を設定した買い物かご投入リクエストを、電子商店街サーバ2に送信する(ステップS203)。そして、システム制御部14は、電子商店街サーバ2から買い物かご投入完了応答を受信する(ステップS204)。
次いで、システム制御部14は、買い物かご投入依頼リクエストから全ての商品IDを取得したか否かを判定する(ステップS205)。このとき、システム制御部14は、まだ取得していない商品IDが存在すると判定した場合には(ステップS205:NO)、まだ取得していない商品IDのうち1つの商品IDを選択して(ステップS206)、ステップS203に移行する。
一方、システム制御部14は、全ての商品IDを取得したと判定した場合には(ステップS205:YES)、受信した買い物かご投入依頼リクエストから、店舗IDを取得する(ステップS207)。
次いで、システム制御部14は、取得したユーザID及び店舗IDを含むアフィリエイト用URLリクエストを電子商店街サーバ2に送信する(ステップS208)。そして、システム制御部14は、電子商店街サーバ2から買い物かごページのアフィリエイト用URLを受信する(ステップS209)。次いで、システム制御部14は、受信したURLをリダイレクト先として示すLocationヘッダを含むリダイレクト指示応答をユーザ端末4に送信する(ステップS210)。システム制御部14は、ステップS210の処理を終えると、買い物かご投入依頼リクエスト受信時処理を終了させる。
以上説明したように、本実施形態によれば、レシピサーバ1のシステム制御部14が、ユーザ端末4から料理の材料を示す材料名を受信し、受信した材料名を含むレシピ情報をレシピ情報DB12aに登録し、登録したレシピ情報に含まれる材料名が示す材料を含む関連商品を、電子商店街において販売されている商品の検索を行う電子商店街サーバ2により検索させ、検索された関連商品の商品ページのURLを、材料ごとに1つの関連商品について取得し、登録したレシピ情報を含むレシピページのHTML文書と、取得したURLを含む関連商品表示用データとをユーザ端末4に送信する。
従って、ユーザが、レシピページに含まれるリンクを選択することにより表示される商品ページに表示される買い物かご投入ボタンを選択し、その後必要な操作を行うことにより、レシピが示す材料を簡単に購入することができる。
また、システム制御部14が、レシピを投稿したユーザのユーザIDを取得し、取得したユーザIDをアフィリエイターのユーザIDとして含むアフィリエイト用URLを取得する。従って、レシピを投稿したユーザにアフィリエイトプログラムの報酬が与えられるので、レシピの投稿を促すことができる。
また、システム制御部14が、関連商品設定ウインドウに含まれる材料名入力欄123にデフォルトで表示される関連商品キーワードとして、レシピ情報DB12aに登録されたレシピ情報に含まれる材料名をユーザ端末4に送信し、ユーザからの入力に基づいてユーザ端末4から送信された関連商品キーワードを受信し、受信した関連商品キーワードを、レシピ情報DB12aに登録されたレシピ情報中に登録し、登録したレシピ情報に含まれる関連商品キーワードを検索キーワードとして、電子商店街サーバ2に関連商品を検索させる。
従って、ユーザが関連商品キーワードを編集することで、適切な商品を検索することができる。そのため、レシピページを閲覧したユーザは、適切な商品を探す手間を要しないため、レシピが示す材料を簡単に購入することができる。
また、システム制御部14が、ユーザ端末4からレシピを検索するための検索キーワードを受信し、受信した検索キーワードを含むレシピ情報をレシピ情報DB12aから検索し、検索したレシピ情報を含むレシピページのHTML文書をユーザ端末4に送信し、受信した検索キーワードが示す材料に対応する関連商品情報表示欄161の表示の優先順位が、他の材料に対応する関連商品情報表示欄161の表示の優先順位よりも低くなるような順番で、各関連商品表示用データをユーザ端末4に送信に送信する。
従って、レシピを閲覧したユーザが持っている材料をキーワードとして指定した場合に、その材料に対応する関連商品情報表示欄161の表示の優先順位が低くなるので、レシピを閲覧したユーザが持っている材料を含む関連商品の商品ページをレシピを閲覧したユーザが誤って表示させる可能性が低くなる。そのため、ユーザが持っていない材料を簡単に購入することができる。
また、システム制御部14が、電子商店街サーバ2により検索された関連商品の販売元の店に対応する販売元店舗IDを取得し、取得した販売元店舗IDに基づいて全材料取扱店舗を抽出し、抽出した全材料取扱店舗に対応する買い物かごページのURLを含む全材料取扱店舗表示用データをユーザ端末4に送信する。そして、システム制御部14が、全材料取扱店舗表示用データに基づいてユーザ端末4に表示された全材料取扱店舗リンク165がユーザにより選択されたときにユーザ端末4から送信される買い物かご投入依頼リクエストを受信したとき、電子商店街サーバ2により検索された関連商品の中から、抽出した全材料取扱店舗が販売元である関連商品を材料ごとに1つずつ選択し、選択した関連商品を電子商店街サーバ2により買い物かごに投入させ、電子商店街サーバ2により買い物かごページをユーザ端末4へ送信させる。
従って、表示された買い物かごページに表示される注文手続きボタン173をユーザが選択し、その後ユーザが必要な操作を行うことにより、1つの店舗からレシピが示す料理の材料を一括して購入することができる。
また、システム制御部14が、材料名と材料の分量をユーザ端末4から受信し、受信さした材料名と分量とを含むレシピ情報をレシピ情報DB12aに登録し、電子商店街サーバ2により検索された関連商品に含まれる材料の分量を取得し、検索された関連商品のうち、その商品に含まれる材料の分量が、レシピ情報に含まれる分量以上であり且つ当該分量に最も近い関連商品を買い物かごに投入させる。
従って、レシピが示す料理を作るために十分な分量であり且つ料理を作った後の材料の残りが少ない商品が、買い物かごに投入されるので、ユーザは、適切な分量の材料を簡単に購入することができる。
また、システム制御部14が、関連商品を買い物かごに投入する材料から、検索条件ワードが示す材料を除外するので、ユーザが持っている材料を、ユーザが誤って購入することを防止することができる。
また、システム制御部14が、関連商品を買い物かごに投入する材料から調味料を除外するので、ユーザが持っている材料を、ユーザが誤って購入することを防止することができる。
なお、レシピページにおいて、ユーザが全材料取扱店舗リンク165を選択したときに、選択された全材料取扱店舗リンク165に対応する店舗のトップページ(以下、「店舗トップページ」と称する)がユーザ端末4に表示されても良い。店舗トップページ(本発明における店ページの一例)は、電子商店街において、対象となっている店舗に関する情報が表示される複数のWebページのうちのトップページである。店舗トップページには、例えば、対象店舗が販売している商品の商品ページへのリンク、対象店舗が販売している商品をキーワードで検索するための入力欄、対象店舗が販売している商品を商品ジャンルで検索するためのリンク等が含まれている。また、この場合の全材料取扱店舗リンク165は、アフィリエイトリンクであっても良い。
また、レシピサーバ1は、レシピが示す材料の分量未満の食材を含む関連商品のみを全材料取扱店舗が取り扱っている場合、レシピが示す材料の分量以上となるように、同一の関連商品を複数個買い物かごに投入させても良い。
また、レシピサイトと電子商店街とが同一の総合サイトに属していなくても良い。この場合、ユーザは、レシピサイトと電子商店街とでそれぞれ会員登録を行う必要がある。
また、データベース管理サーバ3の代わりに、レシピサーバ1または電子商店街サーバ2が、データベース管理サーバ3に相当する構成を備えていても良い。また、例えば、レシピサーバ1の代わりに、電子商店街サーバ2が、レシピサーバ1に相当する構成を備えていても良い。
[2.第2実施形態]
上記説明した第1実施形態においては、本発明における電子商取引のWebサイトを、電子商店街を適用していた。これに対し、以下に説明する第2実施形態は、本発明における電子商取引のWebサイトを、ネットスーパーのWebサイト(以下、「ネットスーパーサイト」と称する)に適用した場合の実施形態である。なお、以下においては、第2実施形態が第1実施形態と異なる点について説明する。
[2−1.情報提供システムの構成及び機能概要]
先ず、本実施形態に係る情報提供システムS2の構成及び機能概要について、図16を用いて説明する。図16は、本実施形態に係る情報提供システムS2の概要構成の一例を示す図である。なお、図16において、図1と同様の要素については、同様の符号を付してある。
図16に示すように、情報提供システムS2は、レシピサーバ1と、電子商店街サーバ2と、データベース管理サーバ3と、複数のユーザ端末4と、複数のネットスーパーサーバ5と、を含んで構成されている。各ネットスーパーサーバ5は、ネットワークNWを介して、レシピサーバ1、電子商店街サーバ2及び各ユーザ端末4とデータの送受信が可能になっている。なお、第2実施形態において、電子商店街サーバ2は必須の装置ではない。
各ネットスーパーサーバ5は、それぞれがネットスーパーサイトに関する各種処理を実行するサーバ装置である。ネットスーパーは、例えば、既存のスーパーマーケットチェーンや百貨店チェーン等を営む企業(以下、「ネットスーパー企業」と称する)が、ユーザからの注文をネットワークNWを介して受け付け、注文商品をユーザの自宅等に配送するシステムである。ネットスーパーにおいては、注文された時間に応じて配達日が規定されている。注文された時間が1日のうちの予め定められた早い時間帯に含まれる場合には、ネットスーパー企業は、注文された商品を即日配達する。そのため、ネットスーパーを利用することができるユーザは、例えば、ネットスーパー企業に属する店舗が所在する地域等に限定されている。各ネットスーパーサイトは、上述した総合サイトに属してはいない。そのため、ユーザは、利用したいネットスーパーサイトごとに、会員登録を行う必要がある。
[2−2.各サーバ装置及びデータベースの構成]
次に、各サーバ装置の構成及びデータベースの構成について、図17及び図18を用いて説明する。
図17は、本実施形態に係るレシピサーバ1の概要構成の一例を示すブロック図である。なお、図17において、図2と同様の要素については同様の符号を付してある。図18は、本実施形態に係るお気に入りネットスーパー情報DB12bに登録される内容の一例を示す図である。
図17に示すように、レシピサーバ1の記憶部12(本発明におけるネットスーパー情報記憶手段の一例)には、レシピ情報DB12aに加えて、お気に入りネットスーパー情報DB12bが登録されている。お気に入りネットスーパー情報DB12bには、ユーザがよく利用するお気に入りのネットスーパーに関するお気に入りネットスーパー情報が登録される。具体的に、お気に入りネットスーパー情報DB12bには、図18に示すように、ユーザID、ネットスーパーID(本発明におけるネットスーパー情報の一例)及びネットスーパー用ユーザIDが、ユーザごとに対応付けて登録される。ネットスーパーIDは、お気に入りのネットスーパーとしてユーザが登録したネットスーパーの識別情報である。ネットスーパー用ユーザIDは、お気に入りとして登録されたネットスーパーにユーザがログインするためのユーザIDである。なお、ネットスーパーID及びネットスーパー用ユーザIDは、ユーザ1人につき複数登録可能になっていても良い。
また、記憶部12には、各ネットスーパーに対応するAPIが記憶されている。これらのAPIは、電子商店街APIと同様に、レシピサーバ1がネットスーパーサーバ5のネットスーパーサイトに関する各種機能を利用するためのプログラムである。
ネットスーパーサーバ5は、CPU等により構成されているシステム制御部、ハードディスクドライブ等により構成されている記憶部、通信部等を備える。そして、ネットスーパーサーバ5の記憶部には、ネットスーパーに会員登録しているユーザの情報が登録される会員情報DB、ネットスーパーにおいて販売されている商品の情報が登録される商品情報DB、買い物かごに関する情報が登録される買い物かご情報DB等が構築されている。
[2−3.情報提供システムの動作]
次に、情報提供システムS2の動作について説明する。第1実施形態においてレシピサーバ1及びユーザ端末4から電子商店街サーバ2に送信されるリクエストは、第2実施形態においてはネットスーパーサーバ5に送信される。また、ネットスーパーサーバ5がリクエストを受信したときに実行する処理内容は、電子商店街サーバ2の場合の処理内容と基本的には同様である。
レシピの投稿時においては、図5に示すステップS17において、レシピサーバ1のシステム制御部14は、商品検索リクエストを各ネットスーパーサーバ5に送信する。各ネットスーパーサーバ5は、電子商店街サーバ2の場合と同様に、関連商品を検索し、検索結果情報をレシピサーバ1に送信する。検索結果情報を受信したレシピサーバ1のシステム制御部14は、ネットスーパーサーバ5ごとに、関連商品情報を表示させる関連商品を選択する。
そして、システム制御部14は、各ネットスーパーサーバ5に対応する関連商品表示用データをユーザ端末4に送信する。ユーザ端末4は、受信した関連商品表示用データに基づいて、ネットスーパーサーバ5ごとに、関連商品情報を投稿ページ内に表示する。これにより、ユーザは、どのネットスーパーで如何なる商品が検索されるかを確認することができる。
レシピの閲覧時においては、図8に示すステップS58において、レシピサーバ1のシステム制御部14は、関連商品情報リクエストとともにユーザ端末4から送信されてきたユーザ識別クッキーからユーザIDを取得する。次いで、システム制御部14は、ネットスーパー情報取得手段として、お気に入りネットスーパー情報DB12bから、取得したユーザIDに対応するお気に入りネットスーパー情報を取得する。そして、システム制御部14は、お気に入りネットスーパー情報に含まれるネットスーパーIDに対応するネットスーパーサーバ5に、商品検索リクエストを送信する。そして、システム制御部14は、ネットスーパーサーバ5から検索結果情報を取得する。
また、システム制御部14は、アフィリエイトリンク用URLの取得及び全材料取扱店舗の抽出は行なわない。システム制御部14は、関連商品の商品ページの通常のURLを含む関連商品表示用データをユーザ端末4に送信する。また、システム制御部14は、ネットスーパーIDに対応するネットスーパーにおいて、レシピページに関連商品情報を表示させる全ての材料の関連商品を検索することができたか否かにかかわらず、ネットスーパーリンクを、レシピページに表示させる。ネットスーパーリンクは、ユーザがお気に入りとして登録したネットスーパーの買い物かごページへのリンクであり、そのネットスーパーの名称を示す文字リンクである。システム制御部14は、ネットスーパーIDに対応するネットスーパーの名称、ネットスーパーID、及びそのネットスーパーが取り扱っている関連商品の材料ごとの商品IDを含むネットスーパー表示用データをユーザ端末4に送信する。ユーザ端末4は、受信した関連商品表示用データに基づいて、関連商品情報をレシピページ内に表示するとともに、ネットスーパー表示用データに基づいて、ネットスーパーリンクをレシピページ内に表示する。また、レシピページには、例えば、「○○スーパーでは、×××と△△△を取り扱っています。」等のメッセージが表示される。ここで、「○○スーパー」は、お気に入りのネットスーパーの名称である。また、「×××」及び「△△△」は、「○○スーパー」が示すネットスーパーにおいて取り扱っている材料の材料名である。
ユーザがネットスーパーリンクを選択操作すると、ユーザ端末4は、選択されたネットスーパーリンクに対応するネットスーパーID及び関連商品の商品IDを含む買い物かご投入依頼リクエストをレシピサーバ1に送信する。レシピサーバ1のシステム制御部14は、受信した買い物かご投入依頼リクエストに含まれる商品IDと、お気に入りネットスーパー情報DB12bから取得したお気に入りネットスーパー情報に含まれるネットスーパー用ユーザIDと、を設定した買い物かご投入リクエストを、ネットスーパーサーバ5に送信する。すると、ネットスーパーサーバ5は、買い物かご情報DBへの登録処理を行う。ユーザ端末4がネットスーパーサイトの買い物かごページを表示させようとするとき、ユーザは必要に応じてネットスーパーサイトにログインする。
以上説明したように、本実施形態によれば、ユーザはレシピが示す材料を早く入手することができる。
また、システム制御部14が、お気に入りネットスーパー情報DB12bから、レシピを閲覧したユーザに対応するネットスーパーIDを取得し、レシピ情報DB12aに登録されたレシピ情報に含まれる材料名が示す材料を含む関連商品として、取得したネットスーパーIDに対応するネットスーパーサーバ5に関連商品を検索させる。従って、ユーザにとって都合の良いネットスーパーを利用してユーザが材料を購入することができる。
なお、レシピサーバ1は、料理の材料の関連商品の検索時、ネットスーパーサーバ5に関連商品を検索させるとともに、電子商店街サーバ2に関連商品を検索させても良い。そして、システム制御部14は、レシピページに、ネットスーパーに対応する関連商品情報を表示させるとともに、電子商店街に対応する関連商品情報及び全材料取扱店舗情報を表示させても良い。
また、レシピサーバ1は、レシピページに含まれるネットスーパーリンクとしてアフィリエイトリンクをユーザ端末4に表示させても良い。この場合、ネットスーパーが、例えば、アフィリエイトサービスプロバイダが提供するアフィリエイトプログラムに対応している必要がある。また、レシピを投稿するユーザが、アフィリエイトサービスプロバイダに予め会員登録している必要がある。ネットワークNWには、アフィリエイトサービスプロバイダにより設けられたアフィリエイトサーバが接続される。アフィリエイトサーバは、アフィリエイト用URLの生成や、アフィリエイトプログラムの報酬を付与するための処理等を行うサーバ装置である。レシピサーバ1は、アフィリエイトサーバからアフィリエイト用URLを取得する。
また、レシピページにおいて、ユーザがネットスーパーリンクを選択したときに、選択されたネットスーパーリンクに対応するネットスーパーサイトのトップページがユーザ端末4に表示されても良い。
また、ネットスーパーサイトが総合サイトに属していても良い、そして、ネットスーパーサイトにおいて、1または複数のネットスーパー企業のネットスーパーを、ユーザが利用することができるようになっていても良い。
また、本発明における電子商取引のWebサイトを、例えば、単一の店舗等の販売元が商品をユーザに販売するためのECサイトに適用しても良い。この場合、ECサイトごとにECサーバがネットワークNWに接続されている。ECサーバは、ECサイトに関する各処理を実行するサーバ装置である。レシピサーバ1は、ネットスーパーの場合と同様に、各ECサイトに対応するAPIを用いる。レシピサーバ1は、各ECサーバに対して商品検索リクエストを送信し、各ECサーバから検索結果情報を取得する。そして、レシピサーバ1は、各ECサーバから受信した検索結果情報を材料ごとにまとめて、レシピページに関連商品情報を表示させる関連商品を、材料ごとに選択する。また、レシピサーバ1は、レシピページに関連商品情報を表示させる全ての材料を販売しているECサイトを、全材料取扱店舗として処理を行う。また、レシピサーバ1は、ネットスーパーの場合と同様に、レシピページに含まれる全材料取扱店舗リンク165としてアフィリエイトリンクをユーザ端末4に表示させても良い。
また、レシピサーバ1は、全材料取扱店舗の条件として、調味料を含めて全ての材料を取り扱っていることを条件としても良い。また、レシピサーバ1は、全材料取扱店舗の条件として、レシピを検索するために入力された検索キーワードや指定されたカテゴリーの名称が示す材料を含めて全ての材料を取り扱っていることを条件としても良い。
また、レシピサーバ1は、レシピページに関連商品情報を表示させる関連商品として、分量及び価格が上述した条件を満たす関連商品以外の関連商品、例えば、検索結果の最初に示された関連商品を選択しても良い。また、レシピサーバ1は、全材料取扱店舗リンク165が選択されたときに、買い物かごに入れる関連商品として、分量及び価格が上述した条件を満たす関連商品以外の関連商品を選択しても良い。
また、レシピページに全材料取扱店舗情報を表示させることは必須ではない。また、レシピサーバ1は、レシピページにおいて、関連商品情報を材料ごとに複数表示させても良い。
また、関連商品キーワードの登録は必須ではない。この場合、レシピサーバ1は、材料関連情報に含まれる材料名そのものを検索キーワードとして電子商店街サーバ2に関連商品を検索させても良い。