Nella pagina Riepilogo ordine (OrderDisplayPending.jsp), è possibile esaminare le informazioni dettagliate dell'ordine, compresa una descrizione degli articoli acquistati, come ad esempio il numero SKU, la quantità, il produttore, il prezzo totale, l'indirizzo e il metodo di spedizione, il contratto, lo sconto e i costi di spedizione.
Se i contratti specificano un numero di ordine di acquisto, è necessario immettere tale numero nel campo Ordine di acquisto. Questo campo di immissione viene visualizzato solo se il numero è obbligatorio. Se è presente più di un ordine, verrà riportata una casella di input di ordine di acquisto per ogni ordine che lo richiede. Il numero immesso in ciascuna casella deve essere univoco o deve essere l'ordine di acquisto vuoto. I clienti devono quindi completare l'ordine fornendo le informazioni sul pagamento e facendo clic su Ordina ora. Prima di selezionare Ordina ora, è possibile rendere l'ordine un ordine pianificato.
Nota: se nella pagina dell'ordine, ShoppingCart.jsp, è stato scelto il metodo di pagamento Linea di credito, il numero di account della linea di credito viene richiamato dal database. In questa pagina non è possibile modificare il metodo di pagamento da linea di credito in un'altra opzione.
La pagina del riepilogo dell'ordine del negozio di esempio utilizza i seguenti file JSP:
Comandi
OrderDisplayPending.jsp utilizza i seguenti comandi:
Bean
OrderDisplayPending.jsp utilizza i seguenti bean:
Dettagli sull'implementazione
Nota: Per informazioni sulle tecniche di implementazione comuni a tutte le pagine del negozio di esempio, incluse le informazioni multi-culturali, consultare Pagine del negozio di esempio: tecniche di implementazioni comuni.
Quando un cliente inizia il processo dell'ordine facendo clic su Avanti nella pagina dell'ordine, ShoppingCart.jsp, viene visualizzata una serie di pagine di verifica, tra queste una è la pagina Riepilogo ordine, 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;
Le informazioni sul pagamento vengono incluse in modo dinamico sulla base del metodo di pagamento selezionato dai clienti nella pagina dell'ordine. Questa operazione viene illustrata nel seguente codice:
// 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"/>
Questa pagina include un'opzione che consente ai clienti di inoltrare le informazioni sulla propria carta di credito. Per ottenere i nomi delle carte di credito disponibili con Payment Manager, viene utilizzato UsablePaymentTCListDataBean e l'azione per il modulo è impostata su OrderProcess.
Se i clienti decidono di suddividere l'ordine, i due ordini verranno visualizzati nella pagina. Quando si fa clic su Ordina ora, viene richiamato il comando MultiOrderProcess. MultiOrderProcess è un comando di visualizzazione registrato nella tabella VIEWREG ed è associato a MultiOrderProcess.jsp.
MultiOrderProcess.jsp esegue OrderProcess più volte, a seconda del numero di ordini nella pagina di riepilogo degli ordini. In ToolTech, soltanto il flusso di verifica consente sino a due ordini nella pagina di riepilogo degli ordini.
Nota: se nella pagina sono contenuti due ordini, l'opzione di pianificazioni degli ordini non è visualizzata.
Se i clienti desiderano rendere l'ordine un ordine pianificato e si seleziona la casella di spunta Ordine pianificato, viene richiamato il comando OrderSchedule per pianificare l'ordine sulla base dei parametri specificati dai clienti. La pianificazione dell'ordine crea un nuovo ordine pianificato sulla base dell'ordine corrente e lascia l'ordine corrente invariato. In questo caso, MultiOrderProcess non viene richiamato.
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"+"¬ifyShopper=1¬ifyMerchant=1"+"&poNumber="+form.poNumber.value;
return payInfo;
}
Una volta inoltrato il modulo e se l'elaborazione dell'ordine è corretta, viene richiamato OrderOKView. Il comando OrderOKView è registrato nella tabella VIEWREG nel database ed è associato a Confirmation.jsp che visualizza le informazioni per confermare l'ordine.
Quando i clienti fanno clic su Precedente, essi vengono indirizzati alla pagina Shipping.jsp.
Nota: se i clienti appartengono all'organizzazione A, quando la quantità totale dell'ordine è superiore a 1000 euro, l'ordine deve essere approvato prima di essere inoltrato. Solo il contratto dell'organizzazione A presenta le condizioni per l'approvazione.
Gestione degli errori
In caso di errore, viene richiamato DoPaymentErrorView. DoPaymentErrorView è associato al database con OrderDisplayPending.jsp. Di conseguenza, quando si verifica un errore, viene visualizzata nuovamente la pagina Riepilogo ordine (OrderDisplayPending.jsp) con un messaggio di errore.
In caso di errore con numero di ordine di acquisto, verrà richiamato ValidatePONumberErrorView o DoPaymentErrorView in base all'eccezione verificatasi.
![]() |