Dans cette page (OrderDisplayPending.jsp), les clients peuvent visualiser les informations détaillées relatives à la commande, parmi
lesquelles une description de l'article acheté, sa référence SKU, la quantité, le fabricant, le prix total, l'adresse de livraison, le mode d'expédition, le contrat, les remises et les frais de port.
Si les contrats des clients indiquent un numéro de bon de commande, ce dernier doit être entré dans la zone Bon de commande. Cette zone ne s'affiche que lorsqu'un numéro est requis. S'il y a plusieurs commandes, une zone de saisie Bon de commande s'affiche pour chacune des commandes nécessitant un bon de commande. Le nombre entré dans chaque zone de saisie doit être unique ou un numéro de bon de commande global. Les clients doivent alors terminer la commande en fournissant des informations sur le paiement et en cliquant sur Commander maintenant. Avant de cliquer sur Commander maintenant, les clients peuvent choisir de planifier la commande.
Remarque : si une ligne de crédit a été choisie comme Mode de paiement dans la commande (page ShoppingCart.jsp), le numéro de compte de la ligne de crédit est extrait de la base de données. Les clients ne peuvent pas changer de mode de paiement à partir de cette page.
La page Récapitulatif de la commande du modèle de magasin utilise les fichiers JSP suivants :
Instructions
OrderDisplayPending.jsp utilise les instructions suivantes :
Beans
OrderDisplayPending.jsp utilise les instructions suivantes :
Détails d'implémentation
Remarque : pour plus d'informations sur les techniques d'implémentation communes à toutes les pages de modèle de magasin, parmi lesquelles les informations multiculturelles, reportez-vous à la rubrique Pages du modèle de magasin : techniques d'implémentation communes.
Lorsque les clients lancent la commande en cliquant sur Suivant dans la page Votre commande (ShoppingCart.jsp), ils parcourent une série de pages de règlement, l'une d'elle étant la page Récapitulatif de la commande (OrderDisplayPending.jsp).
OrderAccessBean orderABFinder = new OrderAccessBean(); //Extraction de toutes les commandes pour cette énumération d'utilisaeurs ordersABList = orderABFinder.findByStatusMemberAndStore("P", userId, new Integer(storeId)); OrderAccessBean next_order; ControllerCmdExecUnit execUnit; TypedProperty iProperties = commandContext.getRequestProperties(); String ToOrderId = ""; int counter = 0;
Les informations relatives au paiement sont incluses de façon dynamique en fonction du mode paiement choisie par les clients dans la page Votre commande. Cela apparaît dans le code suivant :
// utilisation du paramètre paymentMethod pour rechercher 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"/>
Cette page comporte une option qui permet aux clients de soumettre les informations relatives à leur carte de paiement. Le bean UsablePaymentTCListDataBean permet d'obtenir les noms de cartes de paiement disponibles à partir du gestionnaire de paiements et l'action de ce formulaire est définie sur la valeur OrderProcess.
Si les clients ont choisi de diviser leur commande, deux commandes sont affichées dans cette page. Lorsqu'ils cliquent sur Commander maintenant, l'instruction MultiOrderProcess est appelée. MultiOrderProcess est une instruction de visualisation enregistrée dans la table VIEWREG
et elle est associée à la page MultiOrderProcess.jsp.
La page MultiOrderProcess.jsp exécute OrderProcess plusieurs fois selon
le nombre de commandes dans la page Récapitulatif de la commande. Dans ToolTech,
le flux des règlements des achats n'autorise que deux commandes dans la page
Récapitulatif de la commande.
Remarque : S'il y a deux commandes, l'option permettant de planifier ces dernières n'est pas affichée.
Si les clients choisissent de planifier une commande, et qu'ils cochent la case Commande planifiée, l'instruction OrderSchedule est appelée pour effectuer la planification d'après les paramètres indiqués par les clients. Une nouvelle commande planifiée est créée à partir de la commande en cours, celle-ci demeurant intacte. Dans ce cas, l'instruction MultiOrderProcess n'est pas appelée.
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;
}
Après l'envoi du formulaire et si le processus de commande est concluant, l'instruction OrderOKView est appelée. L'instruction OrderOKView est enregistrée dans la table VIEWREG de la base de données et est associée au fichier Confirmation.jsp qui permet d'afficher des informations pour confirmer la commande.
Lorsqu'un client clique sur Précédent, il retourne à la page Shipping.jsp.
Remarque : Si les clients appartiennent à une entreprise A, lorsque le montant total de la commande est supérieur à 1000 dollars, cette dernière doit être acceptée avant d'être soumise. Seul le contrat appartenant à l'entreprise A dépend de la condition d'approbation.
Traitement d'erreurs
En cas d'erreur, l'instruction DoPaymentErrorView est appelée. DoPaymentErrorView est associée dans la base de données au fichier OrderDisplayPending.jsp. Résultat : Si une erreur se produit, la page Récapitulatif de la commande (OrderDisplayPending.jsp) se réaffiche avec un message d'erreur.
S'il existe une erreur au niveau du numéro de bon de commande, l'instruction ValidatePONumberErrorView ou DoPaymentErrorView est appelée en fonction de l'exception interceptée.
![]() |