ToolTech オーダー要約ページ (Business Edition)

顧客はオーダー要約ページ (OrderDisplayPending.jsp) で、購買アイテムの説明の他に、 SKU 番号、数量、製造業者、合計価格、配送先住所、配送方法、契約、割引金額、および配送料金を含む詳細なオーダー情報を確認することができます。 

 顧客の契約で購入オーダー (PO) 番号が指定されている場合、 顧客は「購入オーダー」フィールドにその番号を入力する必要があります。  PO 番号の入力フィールドは、その番号が必要な場合だけ表示されます。 複数のオーダーが存在する場合は、PO の必要な各オーダーごとに「注文」入力ボックスが表示されます。  各ボックスに入力される番号は固有の数値、またはブランケット PO でなければなりません。 次に顧客は支払い情報を指定し、オーダーをクリックして、オーダーを完了する必要があります。 顧客はオーダーをクリックする前に、そのオーダーをスケジュールされたオーダーにするように選択することができます。

注: 「お客様のオーダー」の ShoppingCart.jsp ページで、 支払いメソッドとして貸付限度額が選択されると、 データベースから貸付限度額のアカウント番号が検索されます。 顧客はこのページで、支払いメソッドを貸付限度額から別のオプションに変更することはできません。

サンプル・ストア「オーダー要約」ページは、以下の JSP ファイルを使用します。

コマンド

OrderDisplayPending.jsp は、以下のコマンドを使用します。

bean

OrderDisplayPending.jsp は、以下の bean を使用します。

インプリメンテーションの詳細情報

注: マルチカルチャー情報を含むすべてのサンプル・ストア・ページに共通なインプリメンテーション手法については、 サンプル・ストア・ページ: 共通のインプリメンテーション手法を参照してください。

顧客が「お客様のオーダー」の ShoppingCart.jsp ページで次へをクリックしてオーダー処理を開始すると一連のチェックアウト・ページに移動しますが、 その中の 1 つがオーダー要約ページ (OrderDisplayPending.jsp) です。 

OrderAccessBean orderABFinder = new OrderAccessBean();                        //Retrieve all Orders for this User Enumeration ordersABList = orderABFinder.findByStatusMemberAndStore("P", userId, new Integer(storeId)); OrderAccessBean next_order;                                                        ControllerCmdExecUnit execUnit;                                              TypedProperty iProperties = commandContext.getRequestProperties();                    String ToOrderId = "";                                                                  int counter = 0;

顧客が「お客様のオーダー」ページで選択した支払いメソッドに基づいて、支払い情報が動的に組み込まれます。 これは、以下のコードで実現できます。

// use the paymentMethod parameter to find the selected PaymentTCInfo
<jsp:useBean id="usablePaymentTCs" class="com.ibm.commerce.payment.beans.UsablePaymentTCListDataBean" scope="page" >
</jsp:useBean>
<%
usablePaymentTCs.setOrderId(new Long(orderRn));
com.ibm.commerce.beans.DataBeanManager.activate(usablePaymentTCs, request);
PaymentTCInfo[] paymentTCInfo = usablePaymentTCs.getPaymentTCInfo();
PaymentTCInfo selectedPaymentTCInfo = null;
for (int i = 0; i < paymentTCInfo.length; i++) {
if (paymentTCInfo[i].getLongDescription().equals(paymentMethod)) {
selectedPaymentTCInfo = paymentTCInfo[i];
}
}
...<%
incfile = storeDir + "" + selectedPaymentTCInfo.getAttrPageName()+".jsp";
%>
<jsp:include page="<%=incfile%>" flush="true"/>

このページには、顧客が自分のクレジット・カード情報を送信できるオプションが含まれています。 UsablePaymentTCListDataBean を使用して、Payment Manager から利用可能なクレジット・カード名が取得され、 フォームのアクションは、OrderProcess に設定されます。

顧客がオーダーを分割することを選択している場合は、このページに 2 つのオーダーが表示されます。 顧客が「オーダー」をクリックすると、MultiOrderProcess コマンドが呼び出されます。 MultiOrderProcess は、VIEWREG テーブルに登録されている表示コマンドで、 MultiOrderProcess.jsp と関連付けられています。 
MultiOrderProcess.jsp は、オーダー要約ページのオーダー数に応じて、OrderProcess を複数回実行します。 ToolTech のチェックアウト・フローでは、オーダー要約ページ内のオーダーは 2 つまでです。 

注: オーダーが 2 つある場合、オーダーをスケジュールするオプションは表示されません。

顧客がオーダーをスケジュールされたオーダーにすることを選択して「Scheduled Order (スケジュールされたオーダー)」チェック・ボックスを選択すると、 OrderSchedule コマンドが呼び出されて、顧客が指定したパラメーターに基づいてオーダーをスケジュールします。 オーダーがスケジュールされると、現在のオーダーに基づいて新規のスケジュールされたオーダーが作成され、現在のオーダーはそのままにしておかれます。 この場合は MultiOrderProcess は呼び出されません。

 function OrderSchedule()
{
var form = document.CardInfo;
var payInfo="";
var StartDate = date();
payInfo="pay_cardBrand="+form.cardBrand.value+"&pay_cardNumber="+form.cardNumber.value+"&pay_cardExpiryMonth="+form.cardExpiryMonth.value+"&pay_cardExpiryYear="+form.cardExpiryYear.value+"&pay_policyId="+form.policyId.value+"&start="+StartDate+"&interval="+form.interval.value+"&URL="+"OrderOKView"+"&notifyShopper=1&notifyMerchant=1"+"&poNumber="+form.poNumber.value;
return payInfo;
}

フォームが送信されて、オーダー処理が正常に実行されると、OrderOKView が呼び出されます。 OrderOKView コマンドはデータベースの VIEWREG テーブルに登録されており、 オーダーの確認のための情報を表示する Confirmation.jsp に関連付けられています。 

顧客が「前へ」をクリックすると、Shipping.jsp ページに戻ります。 

注: 顧客が組織 A に属していて、合計オーダー金額が 1000 ドルを超えているときは、そのオーダーは送信の前に承認されなければなりません。 承認条件は、組織 A に属する契約のみに記載されています。

エラー処理

エラーがある場合は、DoPaymentErrorView が呼び出されます。 DoPaymentErrorView は、データベースで OrderDisplayPending.jsp に関連付けられています。 そのため、エラーがあった場合は、オーダー要約ページ (OrderDisplayPending.jsp) がエラー・メッセージとともに再表示されます。

PO 番号に関してエラーがあった場合は、そのときの該当する例外に応じて ValidatePONumberErrorView または DoPaymentErrorView が呼び出されます。 

関連概念

関連タスク

関連参照

IBM 著作権