En la página Resumen del pedido (OrderDisplayPending.jsp), los clientes
pueden revisar la información detallada sobre su pedido, que incluye una descripción de
los artículos adquiridos, así como la cantidad, código de artículo, fabricante, precio total,
dirección de envío, método de envío, contrato, importe de los descuentos y gastos de envío.
Si los contratos de los clientes especifican un número de orden de compra (PO), los clientes deben entrar el número en el campo Orden de compra. El campo de entrada para el número de PO sólo se visualiza si el número es obligatorio. Si hay más de un pedido, habrá un recuadro de entrada Orden de compra para cada pedido que requiera una PO. El número que se entre en cada recuadro debe ser exclusivo o debe ser la PO abierta. A continuación, los clientes deben completar el pedido proporcionando la información de pago y pulsando Realizar pedido ahora. Antes de pulsar Realizar pedido ahora, los clientes pueden elegir si desean que el pedido se convierta en un pedido planificado.
Nota: Si se ha elegido línea de crédito como el método de pago en la página Su pedido, ShoppingCart.jsp, el número de cuenta de la línea de crédito se recupera desde la base de datos. Los clientes no pueden cambiar el método de pago, de línea de crédito a otra opción, en esta página.
La página Resumen del pedido de la tienda de ejemplo utiliza los siguientes archivos JSP:
Mandatos
OrderDisplayPending.jsp utiliza los mandatos siguientes:
Beans
OrderDisplayPending.jsp utiliza los beans siguientes:
Detalles sobre implementación
Nota: Para obtener información sobre las técnicas de implementación comunes a todas las páginas de la tienda de ejemplo, incluida la información multicultural, consulte Páginas de la tienda de ejemplo: técnicas de implementación comunes.
Cuando los clientes inician el proceso de pedido , pulsando Siguiente en la página Su pedido, ShoppingCart.jsp, se desplazan por una serie de páginas de pasar por caja, una de las cuales es la página Resumen del pedido (OrderDisplayPending.jsp).
OrderAccessBean orderABFinder = new OrderAccessBean(); //Recuperar todos los pedidos de este usuario Enumeration ordersABList = orderABFinder.findByStatusMemberAndStore("P", userId, new Integer(storeId)); OrderAccessBean next_order; ControllerCmdExecUnit execUnit; TypedProperty iProperties = commandContext.getRequestProperties(); String ToOrderId = ""; int counter = 0;
La información sobre el pago se incluye dinámicamente basándose en el método de pago que hayan seleccionado los clientes en la página Su pedido. Esto se muestra en el código siguiente:
// utilizar el parámetro paymentMethod para buscar la info de TC de pago seleccionada
<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"/>
Esta página incluye una opción que permite a los clientes someter la información de su tarjeta de crédito. El bean UsablePaymentTCListDataBean se utiliza para obtener de Payment Manager los nombres de las tarjetas de crédito disponibles, y la acción para el formulario se establece en OrderProcess.
Si los clientes han elegido dividir su pedido, se mostrarán dos pedidos
en la página. Cuando pulsen Realizar pedido ahora, se llamará al
mandato MultiOrderProcess. MultiOrderProcess es un mandato de vista que está registrado en la tabla
VIEWREG y está asociado con MultiOrderProcess.jsp.
MultiOrderProcess.jsp ejecuta OrderProcess varias veces
dependiendo del número de pedidos en la página de resumen de pedidos. En ToolTech,
el flujo de pasar por caja sólo permite un máximo de dos pedidos en la página
de resumen de pedidos.
Nota: Si hay dos pedidos, la opción para planificar los pedidos no se visualiza.
Si los clientes deciden hacer que el pedido sea un pedido planificado, y seleccionan el recuadro de selección Pedido planificado, se llama al mandato OrderSchedule para planificar el pedido de acuerdo con los parámetros especificados por los clientes. Planificar el pedido crea un nuevo pedido planificado basado en el pedido actual y deja el pedido actual intacto. En este caso, no se llama a 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"+"¬ifyShopper=1¬ifyMerchant=1"+"&poNumber="+form.poNumber.value;
return payInfo;
}
Una vez sometido el formulario, y si el proceso del pedido se realiza satisfactoriamente, se llama al mandato OrderOKView. El mandato OrderOKView está registrado en la tabla VIEWREG de la base de datos y está asociado con la página Confirmation.jsp, que muestra información para confirmar el pedido.
Cuando los clientes pulsan Anterior, se les dirige a la página Shipping.jsp.
Nota: Si los clientes pertenecen a la Organización A, cuando el importe total del pedido es superior a 1000 euros, el pedido debe aprobarse antes de poder someterlo. Sólo el contrato que pertenece a la Organización A tiene la condición de aprobación.
Manejo de errores
Si se produce un error, se llama a DoPaymentErrorView. DoPaymentErrorView está asociado en la base de datos con OrderDisplayPending.jsp. Como resultado, cuando se produce un error, la página Resumen del pedido (OrderDisplayPending.jsp) se vuelve a visualizar con un mensaje de error.
Si se produce un error con el número de orden de compra (PO), se llamará a ValidatePONumberErrorView o DoPaymentErrorView, en función de la excepción detectada.
![]() |