サンプル・ストア住所録ページによって、 登録済み顧客は住所録に配送先および請求先住所を追加できるようになります。
登録済み顧客はログインして、アカウント (myaccount.jsp) ページの住所録の編集をクリックします。 住所録 (addressbookform.jsp) ページが表示されます。 そこで顧客は、新規住所を追加したり既存の住所を編集することができます。 詳細については、住所の新規追加の使用事例および住所の編集の使用事例を参照してください。
サンプル・ストア住所録は以下の JSP ファイルを使用します。
コマンド
account.jsp は、以下のコマンドを使用します。
addressbookform.jsp は以下のコマンドを使用します。
address.jsp は、以下のコマンドを使用します。
bean
addressbook.jsp は、以下の bean を使用します。
address.jsp は、以下の bean を使用します。
インプリメンテーションの詳細情報
注: マルチカルチャー情報を含むすべてのサンプル・ストア・ページに共通なインプリメンテーション手法については、 サンプル・ストア・ページ: 共通のインプリメンテーション手法を参照してください。
顧客がアカウント・ページの住所録の編集をクリックすると、AddressBookForm コマンドが呼び出されます。 次に、AddressBookForm は住所録ページ (addressbookform.jsp) をロードします。 顧客が新規住所の追加をクリックした場合には、AddressForm コマンドが呼び出されます。 AddressForm はデータベース中に AddressForm.jsp と一緒に登録され、page パラメーターがチェックされます。 page に newshipaddress を設定した場合には、チェックアウト 1: 請求先住所の追加ページ (billingaddress.jsp) がロードされますが、そうでない場合には、住所の追加ページ (address.jsp) がロードされます。
注: AddressForm は、請求先住所追加時のエラー処理のせいで newshipaddress にセットされる場合、 billingaddress.jsp ページをロードします。 page が newshipaddress であれば、顧客は、 請求先住所ページから新規住所を作成し、配送先住所ページへ移動しようとしましたが、エラーが生じたことを示しています。 そのため、顧客は「請求先住所」ページへ戻されます。
顧客が住所の追加ページ (address.jsp) のフィールドに情報を入力した後、 システムは addressId があるかどうかをチェックします。 addressId がある場合は住所録が更新されます。 ない場合には新しい住所が作成されます。 addressIdが指定されると、address.jsp が住所の更新ページとしてロードされます。 そうでない場合は、「住所の追加」ページとしてロードされます。 「住所の更新」ページでは、入力フィールドには、以下のように、以前に入力した値が入っています。
if (addressId != null)
bUpdateAddress = true;
else
bUpdateAddress = false;
顧客が住所を完了した時には、住所の追加ページ (address.jsp) と住所の更新ページ (address.jsp) の両方で送信をクリックして、 AddressAdd コマンドを呼び出します。 住所録ページ (addressbookform.jsp) は既存の住所を表示します。
顧客は、「配送先住所の選択」ページから「住所録の編集」をクリックして、住所録へ移動できます。 顧客が「配送先住所の選択」ページから「住所録」ページへ移動する場合、 「住所録」ページには「チェックアウトに戻る」リンクが表示されます。 これらの顧客は、「住所録」ページから住所を除去することを許可されていません。 そのため、顧客が「配送先住所の選択」ページから来たかどうかを確認するため、 以下のような新しいコードが追加されます。
String mode = jhelper.getParameter("mode"); if (mode.equals("AddressBookReturnToCheckout"))
エラー処理
顧客が、住所の追加ページ(address.jsp) または住所の更新ページ (address.jsp) のどちらかで、 必須フィールドを完了していない場合には、システムがそのフィールドに再入力するよう要求します。 以下のコードはエラーを処理します。
TypedProperty hshErrorProperties = bnError.getExceptionData();
if (hshErrorProperties != null)
{
//送信済み住所にエラーがあります。
strErrorCode = hshErrorProperties.getString(ECConstants.EC_ERROR_CODE, "");
if (strErrorCode.equals(ECUserConstants.EC_ADDR_ERR_BAD_NICKNAME))
strErrorMessage = infashiontext.getString("ERROR_MESSAGE1");
...
}
![]() |