Los clientes pueden ver y editar los artículos que han seleccionado en el carro de la compra (shoppingcart.jsp), como se describe en el Ejemplo de uso de Visualizar carro de la compra.
Mandatos
shoppingcart.jsp utiliza los mandatos siguientes:
Beans
shoppingcart.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 un cliente pulsa CARRO DE LA COMPRA en la cabecera o en el pie de página, se llama al mandato OrderItemDisplay, el cual devuelve el mandato de vista OrderItemDisplayViewShiptoAssoc. El mandato de vista OrderItemDisplayViewShiptoAssoc está registrado con OrderItemDisplay.jsp en la base de datos. OrderItemDisplay.jsp incluye diferentes archivos JSP según el parámetro page. Si no se proporciona un valor para page, se carga la página Carro de la compra, (shoppingcart.jsp).
Nota: OrderItemDisplay.jsp ejecuta OrderPrepare, que vuelve a calcular el total del pedido y convierte la moneda por omisión en la moneda que está utilizando el cliente. Las tiendas con una sola moneda no necesitan ejecutar OrderPrepare.
La página Carro de la compra incluye un botón Actualizar totales y un botón Pasar por caja. Al pulsar Actualizar totales, se actualiza la cantidad de artículos solicitados y luego se vuelve a visualizar la página Carro de la compra. Al pulsar Pasar por caja, se actualiza la cantidad de artículos solicitados y, a continuación, se visualiza la página Pasar por caja 1: Seleccionar dirección de facturación.
Los botones Pasar por caja y Actualizar totales utilizan el mismo formulario HTML. Sin embargo, cuando un cliente pulsa Pasar por caja antes de que se someta el formulario, se utiliza JavaScript para añadir un parámetro page adicional con el valor establecido en billingaddress.
El mandato que se utiliza para completar la opción de caja rápida es QuickCheckoutView, que es un mandato de vista registrado en VIEWREG y asociado con QuickCheckout.jsp. QuickCheckout.jsp ejecuta los siguientes mandatos de servidor:
QuickCheckout.jsp recupera las direcciones de envío y facturación, el método de envío y la información sobre el pago del perfil de caja rápida del cliente utilizando OrderAccessBean. A continuación, asigna esta información al pedido especificado en el parámetro orderId y ejecuta el mandato OrderPrepare.
Una vez completado el proceso de caja rápida, el mandato se redirige a una vista especificada en el URL. WebFashion especifica QuickCheckoutSummaryView como el URL para el mandato QuickCheckout. De este modo, cuando se completa el proceso de caja rápida, se visualiza la página Resumen del pedido de caja rápida.
Manejo de errores
Si la tienda no tiene un centro de despacho de pedidos asociado, o si no hay existencias del producto en el almacén, el mandato OrderItemAdd/OrderItemUpdate llama a la vista de error ResolveFulfillmentCenterErrorView, que está registrada con shoppingcart.jsp en la base de datos. Si los clientes entran un carácter no válido en el campo de cantidad, se llama a la vista de error InvalidInputErrorView. InvalidInputErrorView también está registrada con shoppingcart.jsp en la base de datos.
Puesto que los errores los puede ocasionar tanto el mandato OrderItemUpdate como el
mandato OrderItemAdd, shoppingcart.jsp comprueba qué mandato ha originado
el problema y muestra un error según el caso. Si el último mandato es
OrderItemUpdate, se vuelve a visualizar la página Carro de la compra con un mensaje de error.
De lo contrario, se visualiza un página de error separada con un mensaje de error. Esto se muestra en el código siguiente:
String lastCmdName = cmdcontext.getCommandName().trim();
shoppingcart.jsp se utiliza tanto en condiciones normales como en condiciones de error. El bean ErrorDataBean y la comprobación de errores determinan bajo qué condición se muestra shoppingcart.jsp. Si existe un error, shoppingcart.jsp muestra un mensaje de error adecuado.
Si QuickCheckout.jsp( QuickCheckoutView) no puede encontrar el perfil de caja rápida, llama a QuickCheckoutError.jsp para que muestre un mensaje de error. Como resultado, se visualiza quickcheckouterrorview.jsp.
quickcheckouterrorview.jsp comprueba si el cliente está registrado. Si el cliente está registrado, el sistema muestra un mensaje para solicitar al cliente que cree un perfil de caja rápida. Si no está registrado, el sistema solicita al cliente que se registre primero y que luego cree un perfil de caja rápida.
![]() |