(57)【要約】【課題】従来の電子商取引システムでは、顧客が自分の保守契約とは異なる消耗品を誤って発注してしまう虞があった。【解決手段】特価品扱いの商品を記録する単価マスタに記録されている商品コードと照合するための購買制限商品設定マスタを設けた。また、この二つのテーブルを用いて商品の誤発注をチェックするｃｇｉと、誤発注と判明した場合はエラーを表示すると共に、発注の修正画面まで強制的に戻すエラー画面を生成するｃｇｉを設けた。【選択図】図２
2008102841.tif 000002
【特許請求の範囲】
【請求項１】
表示画面を備えるクライアントと、
前記クライアントからの要求をネットワークを通じて受けて、所定のサービスを前記クライアントに提供するサーバと
よりなる電子商取引システムにおいて、
前記サーバは、
前記クライアントが選択した購入予定商品の一覧を前記クライアントの前記表示画面に表示する画面を生成するカートの中身画面表示部と、
前記クライアントの識別情報と、商品の誤った商品コードと、前記クライアントが選択すべき正しい商品コードとを含むマスタと、
前記マスタと、前記クライアントの識別情報と、前記購入予定商品の商品コードを照合し、前記クライアントが選択した前記購入予定商品の中に前記誤った商品コードがあるか否かチェックする商品コードチェック部と
を備えることを特徴とする、電子商取引システム。
【請求項２】
前記サーバは更に、
前記クライアントが選択した前記購入予定商品の中に誤った商品コードが含まれている旨のメッセージを前記クライアントの前記表示画面に表示する画面を生成するエラー画面表示部と
を備え、
前記商品コードチェック部は、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがあることを検出したら、前記エラー画面表示部を実行することを特徴とする、請求項１記載の電子商取引システム。
【請求項３】
前記サーバは更に、
前記エラー画面表示部が生成する前記クライアントの表示画面から、前記クライアントの要求に応じて起動され、前記クライアントが選択した前記購入予定商品の中の誤った商品コードを、前記正しい商品コードに変更して、前記クライアントの前記表示画面に表示する画面を生成する、商品コード修正画面表示部と
を備えることを特徴とする、請求項２記載の電子商取引システム。
【請求項４】
前記サーバは更に、
前記クライアントの認証処理を行う認証処理部と、
前記クライアントが選択可能な商品の一覧を前記クライアントの前記表示画面に表示する画面を生成する商品選択画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の届先の設定を前記クライアントの前記表示画面に表示する画面を生成する届先指定画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の注文を完了した旨の表示を前記クライアントの前記表示画面に表示する画面を生成する注文完了画面表示部と
を備え、
前記商品コードチェック部は、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがないことを検出したら、前記届先指定画面表示部を実行すると共に、
前記カートの中身画面表示部は、前記エラー画面表示部が生成する前記クライアントの表示画面から、前記クライアントの要求に応じて起動されることを特徴とする、請求項２記載の電子商取引システム。
【請求項５】
前記サーバは更に、
前記クライアントの認証処理を行う認証処理部と、
前記クライアントが選択可能な商品の一覧を前記クライアントの前記表示画面に表示する画面を生成する商品選択画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の届先の設定を前記クライアントの前記表示画面に表示する画面を生成する届先指定画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の注文を完了した旨の表示を前記クライアントの前記表示画面に表示する画面を生成する注文完了画面表示部と
を備え、
前記商品コードチェック部は、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがないことを検出したら、前記届先指定画面表示部を実行すると共に、
前記商品コード修正画面表示部は、前記エラー画面表示部が生成する前記クライアントの表示画面から、前記クライアントの要求に応じて起動されることを特徴とする、請求項３記載の電子商取引システム。
【請求項６】
クライアントが選択した購入予定商品の一覧を前記クライアントの表示画面に表示する第１のステップと、
前記クライアントの識別情報と、商品の誤った商品コードと、前記クライアントが選択すべき正しい商品コードとを含むマスタと、前記クライアントの識別情報と、前記購入予定商品の商品コードを照合し、前記クライアントが選択した前記購入予定商品の中に前記誤った商品コードがあるか否かチェックする第２のステップと
よりなることを特徴とする、電子商取引方法。
【請求項７】
更に、
前記第２のステップにて、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがあることを検出したら、前記クライアントが選択した前記購入予定商品の中に誤った商品コードが含まれている旨のメッセージを前記クライアントの前記表示画面に表示する第３のステップを含むことを特徴とする、請求項６記載の電子商取引方法。
【請求項８】
更に、
前記第３のステップの後、前記クライアントが選択した前記購入予定商品の中の誤った商品コードを、前記正しい商品コードに変更して、前記クライアントの前記表示画面に表示する画面を生成する第４のステップを含むことを特徴とする、請求項７記載の電子商取引方法。
【請求項９】
更に、
前記クライアントの認証処理を行う第５のステップと、
前記クライアントが選択可能な商品の一覧を前記クライアントの前記表示画面に表示する第６のステップと、
前記クライアントの要求に応じて、前記購入予定商品の届先の設定を前記クライアントの前記表示画面に表示する第７のステップと、
前記クライアントの要求に応じて、前記購入予定商品の注文を完了した旨の表示を前記クライアントの前記表示画面に表示する第８のステップと
を備え、
前記第２のステップの後、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがないことを検出したら、前記第７のステップを実行すると共に、
前記第１のステップは、前記第３のステップから、前記クライアントの要求に応じて実行されることを特徴とする、請求項７記載の電子商取引方法。
【請求項１０】
更に、
前記クライアントの認証処理を行う第５のステップと、
前記クライアントが選択可能な商品の一覧を前記クライアントの前記表示画面に表示する第６のステップと、
前記クライアントの要求に応じて、前記購入予定商品の届先の設定を前記クライアントの前記表示画面に表示する第７のステップと、
前記クライアントの要求に応じて、前記購入予定商品の注文を完了した旨の表示を前記クライアントの前記表示画面に表示する第８のステップと
を備え、
前記第２のステップの後、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがないことを検出したら、前記第７のステップを実行すると共に、
前記第４のステップは、前記第３のステップから、前記クライアントの要求に応じて起動されることを特徴とする、請求項８記載の電子商取引方法。
【請求項１１】
ネットワークを通じてクライアントにサービスを提供する電子商取引装置であり、
前記クライアントが選択した購入予定商品の一覧を前記クライアントの前記表示画面に表示する画面を生成するカートの中身画面表示部と、
前記クライアントの識別情報と、商品の誤った商品コードと、前記クライアントが選択すべき正しい商品コードとを含むマスタと、
前記マスタと、前記クライアントの識別情報と、前記購入予定商品の商品コードを照合し、前記クライアントが選択した前記購入予定商品の中に前記誤った商品コードがあるか否かチェックする商品コードチェック部と
を備えることを特徴とする、電子商取引装置。
【請求項１２】
更に、
前記クライアントが選択した前記購入予定商品の中に誤った商品コードが含まれている旨のメッセージを前記クライアントの前記表示画面に表示する画面を生成するエラー画面表示部と
を備え、
前記商品コードチェック部は、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがあることを検出したら、前記エラー画面表示部を実行することを特徴とする、請求項１１記載の電子商取引装置。
【請求項１３】
更に、
前記エラー画面表示部が生成する前記クライアントの表示画面から、前記クライアントの要求に応じて起動され、前記クライアントが選択した前記購入予定商品の中の誤った商品コードを、前記正しい商品コードに変更して、前記クライアントの前記表示画面に表示する画面を生成する、商品コード修正画面表示部と
を備えることを特徴とする、請求項１２記載の電子商取引装置。
【請求項１４】
更に、
前記クライアントの認証処理を行う認証処理部と、
前記クライアントが選択可能な商品の一覧を前記クライアントの前記表示画面に表示する画面を生成する商品選択画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の届先の設定を前記クライアントの前記表示画面に表示する画面を生成する届先指定画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の注文を完了した旨の表示を前記クライアントの前記表示画面に表示する画面を生成する注文完了画面表示部と
を備え、
前記商品コードチェック部は、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがないことを検出したら、前記届先指定画面表示部を実行すると共に、
前記カートの中身画面表示部は、前記エラー画面表示部が生成する前記クライアントの表示画面から、前記クライアントの要求に応じて起動されることを特徴とする、請求項１２記載の電子商取引装置。
【請求項１５】
更に、
前記クライアントの認証処理を行う認証処理部と、
前記クライアントが選択可能な商品の一覧を前記クライアントの前記表示画面に表示する画面を生成する商品選択画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の届先の設定を前記クライアントの前記表示画面に表示する画面を生成する届先指定画面表示部と、
前記クライアントの要求に応じて、前記購入予定商品の注文を完了した旨の表示を前記クライアントの前記表示画面に表示する画面を生成する注文完了画面表示部と
を備え、
前記商品コードチェック部は、前記クライアントが選択した前記購入予定商品の中に誤った商品コードがないことを検出したら、前記届先指定画面表示部を実行すると共に、
前記商品コード修正画面表示部は、前記エラー画面表示部が生成する前記クライアントの表示画面から、前記クライアントの要求に応じて起動されることを特徴とする、請求項１３記載の電子商取引装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子商取引システムに適用して好適な技術に関する。
より詳細には、特定の契約体系の顧客が誤った商品を選択して、誤発注が生じることを防ぐ技術に関する。
【０００２】
本発明は、電子商取引システムに適用して好適な技術に関する。
より詳細には、特定の契約体系の顧客が誤った商品を選択して、誤発注が生じることを防ぐ技術に関する。
【背景技術】
【０００３】
コピー機やプリンタ、ファクシミリ装置等のオフィス機器は、消耗品を必要とする。レーザプリンタ等の画像形成装置であればトナーカートリッジやドラムカートリッジがこれに該当する。インクジェットプリンタであればインクカートリッジがこれに該当する。
【０００４】
特に、オフィスでは業務の停止をできる限り少なくするため、これら消耗品の調達は迅速に行われることが望ましい。
そこで、出願人は電子商取引システムにおいて、これら消耗品を取り扱い、顧客の要求に迅速に応えるべく努めている。
電子商取引システムは、主にインターネットを経由したクライアント・サーバシステムである。急速に普及し、一般社会に広く定着したインターネット接続環境を用いて、ｗｅｂベースで商品の注文を受け付けるものである。
【０００５】
消耗品の販売は、商品提供元と顧客との間の保守契約によって販売形態が異なる。
大口顧客の場合は、消耗品を沢山発注する。そのような顧客においてはプリンタ等のオフィス機器の保守契約の中に消耗品の対価を含めてしまう、という契約体系がある。出願人はこのような契約体系を「パフォーマンス・チャージ保守契約」と呼んでいる。一方、保守契約の中に消耗品の対価を含めない契約体系では、その契約内容に応じて「年間保守契約」或は「スポット保守契約」が設定される。
パフォーマンス・チャージ保守契約と、年間保守契約或はスポット保守契約とでは、同じ商品であっても販売価格が異なる。パフォーマンス・チャージ保守契約の対象商品は、当該契約の顧客が購入する際、当該商品の代金は無料となる。
【特許文献１】特開２００２−２４５２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の電子商取引システムにおいては、パフォーマンス・チャージ保守契約と他の保守契約とを区別して顧客に提供できていなかった。そのため、パフォーマンス・チャージ保守契約の顧客が誤って年間保守契約或はスポット保守契約の商品（消耗品）を選んで、誤発注を引き起こすことがあった。
【０００７】
本発明はかかる点に鑑みてなされたものであり、顧客の保守契約に応じて誤発注を防止する機能を有する電子商取引システム、また電子商取引装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための本発明は、表示画面を備えるクライアントと、前記クライアントからの要求をネットワークを通じて受けて、所定のサービスを前記クライアントに提供するサーバとよりなる電子商取引システムにおいて、前記サーバは、
前記クライアントが選択した購入予定商品の一覧を前記クライアントの前記表示画面に表示する画面を生成するカートの中身画面表示部（カートの中身画面ｃｇｉ）と、
前記クライアントの識別情報と、商品の誤った商品コードと、前記クライアントが選択すべき正しい商品コードとを含むマスタ（購買制限商品設定マスタと単価マスタ）と、
前記マスタと、前記クライアントの識別情報と、前記購入予定商品の商品コードを照合し、前記クライアントが選択した前記購入予定商品の中に前記誤った商品コードがあるか否かチェックする商品コードチェック部（商品コードチェックｃｇｉ）とを備えることを特徴とするものである。
【０００９】
従来のシステムでは、特定の顧客に応じて商品に様々な値段を付する契約を、単価マスタに記録していた。通常なら定価で販売する商品を、特定の顧客に限っては所定の割引を施した単価を設定するものである。パフォーマンス・チャージ保守契約の顧客が購入できる消耗品は、この単価マスタに「ゼロ円商品」として登録されている。
一方、従来のシステムは同一の商品について異なった契約体系による単価を区別なく列挙表示していた。
そこで、商品の発注手順において、誤発注に該当する商品をチェックする機能を付加して、誤発注を防止する方策を採用した。その際に、既存のシステムに対して最小限の変更で済ませることを考えた。
ある特定の商品には、パフォーマンス・チャージ保守契約の顧客向けの商品コードと、年間保守契約・スポット保守契約の顧客向けの商品コードと、複数の商品コードが付されている。ここで、パフォーマンス・チャージ保守契約の顧客が誤って年間保守契約・スポット保守契約の商品コードを注文してしまったか否かを検証する。
この検証のために、パフォーマンス・チャージ保守契約の商品コードと年間保守契約・スポット保守契約の商品コードとの関係を記す、購買制限商品設定マスタを新たに作成した。また、購買制限商品設定マスタと単価マスタとを組み合わせて誤発注チェックを行うチェック部を新たに設けた。
【発明の効果】
【００１０】
本発明によれば、商品の誤発注を未然に防ぐことができ、顧客にとって優しい電子商取引システム、電子商取引方法及び電子商取引装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図１〜図１６を参照して説明する。
【００１２】
図１は、本発明の実施形態である、電子商取引システムを示す概略図である。
電子商取引システム１０１は、インターネット１０３を通じて情報の送受信を行う、クライアント・サーバシステムである。
クライアント１０２は一般的なパソコンであり、インターネット１０３に接続されている。図示しないｗｅｂブラウザによってｗｅｂサーバ１０４にアクセスする。
ｗｅｂサーバ１０４はクライアント１０２に対し、電子商取引を行うｗｅｂサービスを提供する。
ＤＢサーバ１０５はｗｅｂサーバ１０４とＬＡＮ１０６にて接続されている。ＤＢサーバ１０５は、ｗｅｂサーバ１０４の稼動に必要な情報を蓄積し、検索を可能とするデータベースサーバである。
【００１３】
図２はｗｅｂサーバ１０４及びＤＢサーバ１０５の内部の機能の構成を示すブロック図である。
ｗｅｂサーバ１０４は、概略的にはＨＴＴＰ（Hyper Text Transfer Protocol）を用いて、クライアント１０２の図示しないｗｅｂブラウザの要求に応じて、クライアント１０２にｈｔｍｌ文書を送信する、周知のｗｅｂサーバである。
実行制御部２０２は、クライアント１０２から来る要求（コマンド）を受信し、これに応じて、ＨＴＴＰにてｈｔｍｌ文書をクライアント１０２へ送信する機能を提供する。端的にいえばｗｅｂサーバソフトウェアであり、一例としてはＡｐａｃｈｅ(http://www.apache.org/)等である。実行制御部２０２はクライアント１０２の要求に応じ、ｃｇｉ（Common Gateway Interface）の実行をも行う。
ｃｇｉは周知のプログラムである。ｃｇｉの実体は標準出力にテキストを出力するプログラムである。ｃｇｉが生成するテキストが、実行制御部２０２によってＨＴＴＰにてクライアント１０２へ送信される。ｃｇｉを構成する要素としては、どのようなプログラミング言語であってもよい。ｐｅｒｌ（http://www.perl.org/）やＰＨＰ（http://php.net/）、ｐｙｔｈｏｎ（http://www.python.org/）、ｒｕｂｙ（http://www.ruby-lang.org/ja/）等のインタプリタ言語に留まらず、ＣやＪａｖａ（登録商標）等のコンパイルを要する言語であってもよい。簡単な内容であればシェルスクリプトであってもよい。
なお、図２中、ｃｇｉのブロックの右上に丸印（「○」）が付されているものは、クライアントに対して画面表示を行うｈｔｍｌ文書を生成するｃｇｉである。
【００１４】
ログイン画面ｃｇｉ２０３は、クライアント１０２からの要求に応じて実行制御部２０２によって実行され、クライアント１０２にログイン画面を表示するｈｔｍｌ文書を作成する。
図３に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示されたログイン画面を示す。
【００１５】
認証ｃｇｉ２０４は、ログイン画面を表示しているクライアント１０２から、ログインボタン３０２を押した行為によって発生する要求に応じて、実行制御部２０２によって実行される。
認証ｃｇｉ２０４は、クライアント１０２から得られたパラメータであるユーザＩＤとパスワードをユーザテーブル２０５から検索して照合する。
ユーザテーブル２０５には、登録ユーザが重複のないユーザＩＤにて記録されている。ユーザテーブル２０５は、各登録ユーザのユーザＩＤをパスワードと共に管理する。
認証ｃｇｉ２０４による照合の結果、ユーザＩＤとパスワードが合致していれば、認証ｃｇｉ２０４は、正常にログインが完了したことを示すｃｏｏｋｉｅ（クッキー：ｗｅｂサイトの提供者が、ｗｅｂブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させるしくみ。殆どの場合、アルファベット及び数字の１バイト文字列にて構成される。）を作成すると共に、自動的に商品選択画面ｃｇｉ２０６に移行するｈｔｍｌメッセージを作成する。これらは実行制御部２０２を通じてクライアント１０２に送信される。
一方、照合の結果、ユーザＩＤとパスワードが合致していなければ、ログインが失敗したことを示すエラーメッセージを付して、自動的にログイン画面ｃｇｉ２０３に移行するｈｔｍｌメッセージを作成する。これらは実行制御部２０２を通じてクライアント１０２に送信される。
【００１６】
自動的に商品選択画面ｃｇｉ２０６に移行するｈｔｍｌメッセージとは、ＨＴＴＰのステータスコードの一種である、転送機能を用いている。
http ver.1.1の場合は「303 See Other」というステータスコードと、商品選択画面ｃｇｉ２０６のＵＲＩを、ＨＴＴＰ応答ヘッダに記す。
http ver.1.0の場合は「302 Found」というステータスコードと、商品選択画面ｃｇｉ２０６のＵＲＩを、ＨＴＴＰ応答ヘッダに記す。
認証ｃｇｉ２０４は、このように構成したＨＴＴＰ応答ヘッダを作成し、クライアントへ送信する。
クライアント１０２のｗｅｂブラウザは、このＨＴＴＰ応答ヘッダを解釈し、直ちに記されているＵＲＩに基づいて商品選択画面ｃｇｉ２０６の表示(実行)をｗｅｂサーバに要求する。
すなわち、認証ｃｇｉ２０４はｗｅｂブラウザによって表示画面に表示されるｈｔｍｌ文書を作成しない。
ログイン失敗時に自動的にログイン画面ｃｇｉ２０３に移行するｈｔｍｌメッセージも、同様である。
【００１７】
商品選択画面ｃｇｉ２０６は、登録ユーザに購入可能な商品を一覧表示し、選択を行わせる画面のｈｔｍｌ文書を作成する。
図４に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示された商品選択画面を示す。
商品を選択すべく「カートに入れる」ボタン４０２を押すと、ｗｅｂサーバ１０４内部の不揮発性ストレージ２１７にセッション情報ファイル２０９が作成され、セッション情報ファイル２０９に選択した商品の情報が記録される。ここで「カート」とは、実際にカートが物理的に存在する訳ではなく、購入すべく選択した商品は「仮想的なカート」に収められたものとして、登録ユーザに対し、概念的に説明するものである。
商品選択画面４０１にある「カートの確認・注文手続きへ」ボタン４０３を押すと、カートの中身画面ｃｇｉ２０７が呼び出され、実行される。
【００１８】
セッション情報ファイル２０９は、セッション管理のために設けられるものである。セッション管理はｗｅｂベースの電子商取引システムを実現する際にほぼ必須といえる技術である。
現在のインターネットの普及の牽引役であるｗｅｂの基盤技術であるＨＴＴＰは、ｔｅｌｎｅｔやｆｔｐ等とは異なり、一回の接続要求に対する応答が完了したら、通信が切断される。このため、接続要求の度毎に正規にログインをしたユーザであるか否かを確認する手がかりが必要になると共に、電子商取引のような手続きの流れを記録する仕組みも必要になる。
そこで、ユーザ認証情報や商取引の手続きの進行状況等を記録するファイルをｗｅｂサーバ内に作成し、これをｃｇｉが読み書きする。
【００１９】
カートの中身画面ｃｇｉ２０７は、カートの中身画面を表示するｈｔｍｌ文書を作成する。
図５に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示されたカートの中身画面を示す。
カートの中身画面５０１は、仮想的なカートに収められた商品、つまり登録ユーザが購入をしようと選択した商品の一覧を表示し、登録ユーザに対して購入手続きに進むか商品の選択を継続するかを選択させる画面である。
また、不要と判断した商品については仮想的なカートから商品を降ろす、すなわち選択した商品から削除する画面でもある。このための「削除」ボタン５０３が、選択した商品の右端に設けられている。
「注文手続きへ」ボタン５０２を押すと、ボタンを押した行為によって発生する要求に応じて、商品コードチェックｃｇｉ２０８が実行制御部２０２によって実行される。
【００２０】
商品コードチェックｃｇｉ２０８は、実行されると、クライアント１０２から送信された商品コードを一旦セッション情報ファイル２０９に保持した上で、購買制限商品設定マスタ２１０と単価マスタ２１１を検索し、登録ユーザが誤った商品を選択したか否かを判定する。
もし、判定の結果、誤った商品が選択されていることが判明した場合は、自動的にエラー画面ｃｇｉ２１２に移行するｈｔｍｌメッセージを作成する。当該ｈｔｍｌメッセージは実行制御部２０２を通じてクライアント１０２に送信される。
もし、判定の結果、正しい商品だけが選択されていることが判明した場合は、自動的に届先指定画面ｃｇｉ２１３に移行するｈｔｍｌメッセージを作成する。当該ｈｔｍｌメッセージは実行制御部２０２を通じてクライアント１０２に送信される。
【００２１】
エラー画面ｃｇｉ２１２は、セッション情報ファイル２０９を通じて商品コードチェックｃｇｉ２０８の判定結果を受けて、誤った選択が行われた商品を列挙表示すると共に、登録ユーザに対して商品選択のやり直しを促す。
図６に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示されたエラー画面を示す。
エラー画面６０１においては、「戻る」ボタン６０２しか設けられておらず、このボタンを押すことで強制的にカートの中身画面５０１に戻される。
この後は、カートの中身画面５０１において誤って選択された商品を削除する。そして商品選択画面４０１に戻って正しい商品を選択する。次にカートの中身画面５０１に移行し、「注文手続き」ボタンを押すと、商品コードチェックｃｇｉ２０８のチェックを受け、届先指定画面ｃｇｉ２１３が実行される。
【００２２】
届先指定画面ｃｇｉ２１３は、登録ユーザに商品を届ける届先の選択と、代金支払い方法の確認及び修正を行うｈｔｍｌ文書を作成する。
図７に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示された届先指定画面を示す。
プルダウン形式の届先選択欄７０２から、登録ユーザが所望する届先を選択した後は、「次へ」ボタン７０３を押す。すると、最終確認画面ｃｇｉ２１４が実行制御部２０２によって実行される。
【００２３】
最終確認画面ｃｇｉ２１４は、注文内容を列挙表示して、登録ユーザに対し、最終的に購入するか否かを選択させる画面のｈｔｍｌ文書を作成する。
図８に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示された最終確認画面を示す。
「注文する」ボタン８０２を押すと、注文完了画面ｃｇｉ２１５が実行制御部２０２によって実行される。
【００２４】
注文完了画面ｃｇｉ２１５は、注文が完了したことを報告する画面のｈｔｍｌ文書を作成する。この文書の作成と共に、図示しない電子発注システムに対し、ｗｅｂサーバから発注情報が送信される。
図９に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示された注文完了画面を示す。
【００２５】
なお、商品選択画面ｃｇｉ２０６、カートの中身画面ｃｇｉ２０７、エラー画面ｃｇｉ２１２、最終確認画面ｃｇｉ２１４、注文完了画面ｃｇｉ２１５が生成する表示画面のｈｔｍｌ文書を作成する際には、セッション情報ファイル２０９に保持されている商品コードとユーザＩＤをキーとして、商品マスタ２１６と単価マスタ２１１が参照される。
【００２６】
図１０は、以上に説明した一連の処理の流れと、それに伴う画面の遷移を示した状態遷移図である。
図１０の点線で囲まれた範囲１００２は、認証ｃｇｉ２０４による判定処理によって、状態が分岐することを示している。
図１０の点線で囲まれた範囲１００３は、商品コードチェックｃｇｉ２０８による判定処理によって、状態が分岐することを示している。
【００２７】
本実施形態の中心となるのが、商品コードチェックｃｇｉ２０８による判定処理である。この判定処理によって誤った商品の選択を防止する。その際、既存のｗｅｂサーバ１０４及びＤＢサーバ１０５に対して最小限の変更で済ませるために、購買制限商品設定マスタ２１０を設けている。
【００２８】
図１１（ａ）及び（ｂ）は、購買制限商品設定マスタ２１０と単価マスタ２１１のテーブル構造を示す概略図である。なお、実際にはこれらテーブルには他にもフィールドが存在するが、本実施形態の説明に直接的に関係しないので割愛している。
図１１（ａ）において、購買制限商品設定マスタ２１０には、「機種名」フィールドと、「パフォーマンス・チャージ保守契約インク商品コード」フィールドと、「年間・スポット保守契約インク商品コード」フィールドが存在する。
購買制限商品設定マスタ２１０は、同一の商品（消耗品）に付されている、異なる契約における商品コードの対応関係を示すものである。つまり、あるレコードにおける「パフォーマンス・チャージ保守契約インク商品コード」フィールドと「年間・スポット保守契約インク商品コード」フィールドに記載されている商品コードは、同一のインクカートリッジ或はトナーカートリッジを指し示す。
「機種名」フィールドは、エラー画面６０１の表示の際に「対象機種」の欄に表示する内容である。消耗品は複数の機種において共通に利用可能であることが多いので、このフィールドは可変長の文字列フィールドである。
図１１（ｂ）において、単価マスタ２１１には、「お客様コード」フィールドと、「商品コード」フィールドと、「販売価格」フィールドが存在する。
単価マスタ２１１は、特定の顧客に対して設定される、割引販売対象商品の価格設定を記すテーブルである。パフォーマンス・チャージ保守契約の場合は、消耗品の価格が無料に設定されるので、「販売価格」フィールドには「０」が付されている。
【００２９】
図１２及び図１３は、商品コードチェックｃｇｉ２０８内の判定処理を示すフローチャートである。
商品コードチェックｃｇｉ２０８が起動されると（Ｓ１２０１）、クライアント１０２から商品コードを受信し（Ｓ１２０２）、それを一旦セッション情報ファイル２０９に保存する（Ｓ１２０３）。
これ以降は、クライアント１０２から受信してセッション情報ファイル２０９に保持している商品コードを一つずつチェックする、ループ処理である。
まず、商品コードをキーにして、購買制限商品設定マスタ２１０の「年間・スポット保守契約インク商品コード」フィールドを検索する（Ｓ１２０４）。検索にヒットしたら（Ｓ１２０５のＹ）、購買制限商品設定マスタ２１０の該当レコードの「パフォーマンス・チャージ保守契約インク商品コード」フィールドにある商品コードを取得する（Ｓ１２０６）。
【００３０】
次に、取得した商品コードをキーにして、単価マスタ２１１を検索する（Ｓ１２０７）。
検索の結果、ヒットしたレコードがあれば（Ｓ１３０８のＹ）、ステップＳ１２０４にて検索に用いた商品コードは誤って選択した商品であることを意味するので、当該商品コードについてエラーフラグを立てて、図示しないメモリ内に一旦保持する（Ｓ１３０９）。
【００３１】
次に、セッション情報ファイル２０９に保持されている商品コードはもうないか否かを確認する（Ｓ１３１０）。まだ検証が済んでいない商品コードが残っている場合は（Ｓ１３１０のＮ）、セッション情報ファイル２０９に保持されている次の商品コードを取得し（Ｓ１３１１）、検証処理を行う（Ｓ１２０４以降）。
セッション情報ファイル２０９に保持されている商品コードの検証が全て終了した場合は（Ｓ１３１０のＹ）、検証した結果、メモリに保持されている商品コードのうち、一つでもエラーフラグが立っているか否かを確認する（Ｓ１３１２）。
一つでもエラーフラグが立っている商品コードがあれば、それをエラー画面６０１に表示する必要があるので、エラー画面ｃｇｉを起動させるべく、転送ｈｔｍｌメッセージを生成する（Ｓ１３１３）。
一つもエラーフラグが立っている商品コードがなければ、正常な購買手続きである。そこで、購買手続きを次に進める、届先指定画面７０１を表示させるための届先指定画面ｃｇｉ２１３を起動させるべく、転送ｈｔｍｌメッセージを生成する（Ｓ１３１４）。そして、一連の処理は終了する（Ｓ１３１５）。
【００３２】
図１２及び図１３の処理を、図１１に示す実際のデータを例に説明する。
今、登録ユーザのユーザＩＤは「１２３４５６７８」であり、クライアント１０２から送信された商品コードが「Ｎ００００１」だとする。
ステップＳ１２０４において、商品コード「Ｎ００００１」をキーに、購買制限商品設定マスタ２１０の、「年間・スポット保守契約インク商品コード」フィールドを検索する。図１１（ａ）を見ると、商品コード「Ｎ００００１」が存在することがわかる。これが、ステップＳ１２０５にて検索ヒットしたことである。
次に、当該レコードの「パフォーマンス・チャージ保守契約インク商品コード」フィールドに格納されている商品コードを見る（Ｓ１２０６）。図１１（ａ）では商品コード「Ｑ００００１」が格納されているので、これを取得する。具体的には、プログラムである商品コードチェックｃｇｉ２０８にて設けられる変数に格納する。
次に、この商品コードで単価マスタの「商品コード」フィールドを検索する（Ｓ１２０７）。図１１（ｂ）を見ると、商品コード「Ｑ００００１」が存在することがわかる。これが、ステップＳ１３０８にて検索ヒットしたことである。
【００３３】
単価マスタ２１１は、お客様コード、すなわちユーザＩＤと、顧客別の特別価格として設定されている商品の商品コードと、その単価が、レコードとして列挙記載されている。これは従来のシステムにもある。
パフォーマンス・チャージ保守契約の顧客が購入可能な「ゼロ円商品」は、全てこの部類に属するので、「ゼロ円商品」は全て単価マスタ２１１に登録されている。
パフォーマンス・チャージ保守契約の顧客は、年間契約或はスポット保守契約の商品も購入可能ではある。しかし、機器側で保守契約に対応した商品しか稼動しないような仕組み（例えば、トナーボトルにパフォーマンス・チャージ保守契約用のトナーなのか、それとも年間契約或はスポット保守契約用の商品なのかを識別可能なチップが埋め込まれており、且つ、機器本体側に保守契約情報を設定可能とすることで誤ったトナーでは稼動しない仕組み）が盛り込まれていることが多く、誤った商品を購入した場合は、返品処理などの負荷がかかってしまうこととなる。また、返品後正しい商品が到着するまでの間、機器が使用できないなどの不都合も発生することがある。そこで、購買制限商品設定マスタ２１０を新たに用意して、パフォーマンス・チャージ保守契約の顧客が誤って年間・スポット保守契約対象となる商品を選択したか否かを確認する。
つまり、一つの商品について、保守契約に応じて異なる商品コードが付与されており、その誤った商品コードで検索して、その正しい商品コードが、単価マスタの当該ユーザＩＤのレコード中に存在するかを確認するのである。
【００３４】
本実施形態には、以下のような応用例が考えられる。
（１）正しい商品をスムーズに選択させるために、エラー画面６０１からカートの中身画面５０１に戻って誤った商品を削除する処理の代わりに、商品選択画面４０１とは別の商品選択画面を別途設けることができる。
図１４は図２に示すｗｅｂサーバ１０４の一部を拡大した図である。ここでは、新たな画面を生成するｃｇｉとして、商品コード修正画面ｃｇｉ１４０２を新規に設けている。
図１５に、クライアント１０２のｗｅｂブラウザによって、クライアント１０２のディスプレイ１０７に表示された商品コード修正画面を示す。
商品コード修正画面１５０１は、エラー画面６０１の「戻る」ボタン６０２を押すことで強制的に表示される。
プルダウン形式の届先選択欄１５０２は、図７の届先選択欄７０２と機能的に等しい。
クリアボタン１５０３は、テキストボックス１５０４の値を「０」に初期化するボタンである。
テキストボックス１５０４は、ユーザが直接キー操作にて数値を入力するものである。
「注文手続きへ」ボタン５０２を押すと、ボタンを押した行為によって発生する要求に応じて、最終確認画面ｃｇｉ２１４が実行制御部２０２によって実行される。
商品コード修正画面１５０１の商品の欄１５０６は、予め商品コードチェックｃｇｉ２０８の検証処理において、単価マスタ２１１から正しい商品コードを検索して保持しておき、これを商品マスタ２１６から得られる商品名と共に表示したものである。
図１６は、この応用例に対応する状態遷移図である。図１０と比較すると、エラー画面６０１から「戻る」ボタンを押すと、商品コード修正画面１５０１に移行し、更に「注文手続きへ」ボタンを押すと、最終確認画面８０１に移行することがわかる。
以上のような構成により、顧客は迅速に正しい商品コードの商品を選択することができる。
【００３５】
（２）各種ｃｇｉにおける商品関係の画面表示には、Ａｊａｘ（「エイジャックス」と読む。Asynchronous JavaScript + XML の略。ｗｅｂブラウザに実装されているＪａｖａＳｃｒｉｐｔのｈｔｔｐ通信機能を使って、ｗｅｂページのリロードを伴わずに、ｗｅｂサーバ１０２とＸＭＬ形式のデータのやり取りを行って処理を進めていく、対話型ｗｅｂアプリケーションの実装形態。）や、Ｍａｃｒｏｍｅｄｉａ社のＳｈｏｃｋｗａｖｅ（登録商標）やＦｌａｓｈ（登録商標）、或はＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（Ｊａｖａ言語を利用してｗｅｂサーバ上にて動的にｈｔｍｌ文書を生成し、クライアントに送信する技術。ｈｔｍｌ文書ファイルの中にＪａｖａプログラムのコードを埋め込んでおき、クライアントの要求に応じてｗｅｂサーバ内のＪａｖａプログラムを実行し、処理結果をクライアントに送信する。処理結果は通常のｈｔｍｌ文書になるため、ｗｅｂブラウザに特殊な機能を組みこむことなくｗｅｂアプリケーションを構築できる。）等の技術が利用可能である。
【００３６】
本実施形態においては、パフォーマンス・チャージ保守契約の顧客が、誤って年間保守契約・スポット保守契約向けの商品を選択しても、商品購入手続きの途中でエラー画面を表示し、その先には進めないように構成した。これにより、誤発注を確実に防ぎ、顧客に優しい電子商取引システムを実現できる。
【００３７】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことは言うまでもない。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施の形態による電子商取引システムを示す概略図である。
【図２】ｗｅｂサーバ及びＤＢサーバの内部の機能の構成を示すブロック図である。
【図３】ログイン画面である。
【図４】商品選択画面である。
【図５】カートの中身画面である。
【図６】エラー画面である。
【図７】届先指定画面である。
【図８】最終確認画面である。
【図９】注文完了画面である。
【図１０】一連の処理の流れと、それに伴う画面の遷移を示した状態遷移図である。
【図１１】購買制限商品設定マスタと単価マスタのテーブル構造を示した概略図である。
【図１２】商品コードチェックｃｇｉ内の判定処理を示すフローチャートである。
【図１３】商品コードチェックｃｇｉ内の判定処理を示すフローチャートである。
【図１４】ｗｅｂサーバの一部を拡大した図である。
【図１５】商品コード修正画面である。
【図１６】一連の処理の流れと、それに伴う画面の遷移を示した状態遷移図である。
【符号の説明】
【００３９】
１０１…電子商取引システム、１０３…インターネット、１０２…クライアント、１０４…ｗｅｂサーバ、１０５…ＤＢサーバ、１０６…ＬＡＮ、１０７…ディスプレイ、２０２…実行制御部、２０３…ログイン画面ｃｇｉ、２０４…認証ｃｇｉ、２０５…ユーザテーブル、２０６…商品選択画面ｃｇｉ、２０７…カートの中身画面ｃｇｉ、２０８…商品コードチェックｃｇｉ、２０９…セッション情報ファイル、２１０…購買制限商品設定マスタ、２１１…単価マスタ、２１２…エラー画面ｃｇｉ、２１３…届先指定画面ｃｇｉ、２１４…最終確認画面ｃｇｉ、２１５…注文完了画面ｃｇｉ、２１７…不揮発性ストレージ、３０１…ログイン画面、３０２…ログインボタン、４０１…商品選択画面、４０２…「カートに入れる」ボタン、４０３…「カートの確認・注文手続きへ」ボタン、５０１…カートの中身画面、５０２…「注文手続きへ」ボタン、５０３…「削除」ボタン、６０１…エラー画面、６０２…「戻る」ボタン、７０１…届先指定画面、７０２…届先選択欄、７０３…「次へ」ボタン、８０１…最終確認画面、８０２…「注文する」ボタン、９０１…注文完了画面
【図１】
2008102841.tif 000003
【図２】
2008102841.tif 000004
【図３】
2008102841.tif 000005
【図４】
2008102841.tif 000006
【図５】
2008102841.tif 000007
【図６】
2008102841.tif 000008
【図７】
2008102841.tif 000009
【図８】
2008102841.tif 000010
【図９】
2008102841.tif 000011
【図１０】
2008102841.tif 000012
【図１１】
2008102841.tif 000013
【図１２】
2008102841.tif 000014
【図１３】
2008102841.tif 000015
【図１４】
2008102841.tif 000016
【図１５】
2008102841.tif 000017
【図１６】
2008102841.tif 000018