Los clientes pueden pulsar el enlace Estado de los pedidos en el menú
de la cabecera para acceder a la página Estado de los pedidos, TrackOrderStatus.jsp.
La página Estado de los pedidos muestra lo siguiente:
- Pedidos en espera de aprobación
- Pedidos procesados
- Pedidos planificados
Desde esta página los clientes pueden ver el estado y los detalles de sus pedidos, elegir si desean volver a pedir pedidos procesados y cancelar pedidos planificados.
Mandatos
TrackOrderStatus.jsp utiliza los mandatos siguientes:
- OrderDetail
- OrderCopy
- ScheduledOrderCancel (Cancela pedidos planificados)
Beans
TrackOrderStatus.jsp utiliza los beans siguientes:
- OrderAccessBean
- SchedulerOrderDataBean
- OrderDataBean
- SchedulerConfigAccessBean (Obtiene el número de referencia del trabajo para los pedidos planificados)
- AttributeValueDataBean
- AttributeDataBean
- CatalogEntryAccessBean
- ItemDataBean
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 pulsan el enlace Estado de los pedidos en el menú de la cabecera, el bean OrderAccessBean recupera todos los pedidos y las propiedades de cada pedido, incluyendo el estado, el precio total, la fecha del pedido y el número de orden de compra.
while (ordersList.hasMoreElements()) { next_order = (OrderAccessBean) ordersList.nextElement(); String orderStatusCode = next_order.getStatus();
//obtener número de orden de compra
String poNumber = orderDB.getPurchaseOrderNumber();
if (poNumber.equals("")) {
poNumber = tooltechtext.getString("Status_none");
}
Pedidos en espera de aprobación
Todos los pedidos que están en espera de aprobación tienen un estado W, tal como se muestra a continuación:
if (orderStatusCode.equals("W"))
Pedidos procesados
Si los clientes deciden pedir de nuevo un pedido procesado, pulsando el enlace Hacer nuevo pedido, el mandato OrderCopy copia el pedido y llama al mandato OrderItemDisplay, que inicia la página Su pedido, shoppingcart.jsp.
OrderCopy?fromOrderId_1=<%=nextOrderId%>&toOrderId=.**.&OrderItemId_1=*&URL=OrderItemDisplay
Los pedidos procesados pueden filtrarse para que no se visualicen dependiendo de su estado.
if (orderStatusCode.equals("N") || orderStatusCode.equals("M") || orderStatusCode.equals("B") || orderStatusCode.equals("C") || orderStatusCode.equals("R") || orderStatusCode.equals("S") ){
//obtener la fecha del pedido
String orderDateString;
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-aaaa");
Date orderDate; orderDate = next_order.getPlaceOrderTimeInEJBType(); orderDateStringNota: Para obtener más información sobre los códigos de estado del pedido, consulte el enlace Referencias relacionadas al final de esta página.
Pedidos planificados
Cuando los clientes crean pedidos planificados, éstos se recuperan utilizando el código siguiente:
CommandContext commandContext = (CommandContext) request.getAttribute(ECConstants.EC_COMMANDCONTEXT);
Long userId = commandContext.getUserId();
SchedulerOrderByMemberIdListDataBean orderABFinder = new SchedulerOrderByMemberIdListDataBean();
orderABFinder.setDataBeanKeyMemberId(userId.toString());
com.ibm.commerce.beans.DataBeanManager.activate(orderABFinder, request);
com.ibm.commerce.order.beans.SchedulerOrderDataBean bnSchOrd[] = orderABFinder.getSchedulerOrderByMemberIdListEl intervalo para cada pedido planificado se visualiza utilizando el código siguiente:
SchedulerConfigAccessBean SchConBean = new SchedulerConfigAccessBean(); SchConBean.setInitKey_jobReferenceNumber(bnSchOrd[i].getJobReferenceNumber()); String Interval = ""; String frequency = SchConBean.getInterval()+""; if(frequency.equals("0")) Interval = tooltechtext.getString("OrderSum_Interval_6"); else if(frequency.equals("86400")) Interval = tooltechtext.getString("OrderSum_Interval_1"); else if(frequency.equals("604800")) Interval = tooltechtext.getString("OrderSum_Interval_2"); else if(frequency.equals("1209600")) Interval = tooltechtext.getString("OrderSum_Interval_3"); else if(frequency.equals("1814400")) Interval = tooltechtext.getString("OrderSum_Interval_4"); else if(frequency.equals("2592000")) Interval = tooltechtext.getString("OrderSum_Interval_5");
Todos los pedidos planificados tiene un estado de pedido I. Si los clientes seleccionan Cancelar, se visualizará un mensaje javascript para preguntarles si desean realmente cancelar el pedido. Si los clientes seleccionan Sí, se cancela el pedido y los clientes regresan a la página TrackOrderStatus.jsp.
Cuando los clientes pulsan el enlace de número de pedido de cualquier pedido, se visualiza la página Detalles del pedido, OrderDetails.jsp, resultante.
Nota:
La página Detalles del pedido es similar a la página Resumen del pedido, pero sin la información sobre el pago.
![]() |