![Deprecated feature](../../base/images/deprecated.png)
URL OrderPrepare
Prepara un pedido determinando sus precios, descuentos, costes de envío e impuestos. Si no se especifica un número de referencia de pedido, se prepararán todos los pedidos pendientes actuales para el cliente actual en la tienda especificada.
URL
OrderPrepare
Mandato de controlador
com.ibm.commerce.order.commands.OrderPrepareCmd
Clase de implementación
com.ibm.commerce.order.commands.OrderPrepareCmdImpl
Mandatos llamados
ValidateShippingAdjustmentCmd
PrepareOrderCmd
Estructura de URL
- http:// host_name/ path/
- El nombre completo de Transaction server y la vía de acceso de configuración.
Valores de parámetros
- langId
- Establece o restablece el idioma preferido durante el tiempo que dura la sesión; los idiomas soportados para una tienda se encuentran en la tabla STORELANG
- forUser
- El ID de conexión del usuario en cuyo nombre se ejecutará el mandato. Este parámetro solo lo puede especificar una persona con autorización para procesar pedidos.
- forUserId
- Igual que forUser, pero identifica al usuario mediante el ID de usuario interno que aparece en la tabla USERS.
- URL
- Se necesita: El URL al que se debe llamar cuando el mandato se completa satisfactoriamente.
- storeId
- El número de referencia de la tienda para la que se ha de preparar el pedido.
- orderId
- El número de referencia del pedido que se va a preparar. Si se omite este parámetro, este mandato toma por omisión los pedidos pendientes actuales. Consulte Abreviaturas de pedidos para obtener una descripción. Este parámetro puede repetirse.
- outOrderName
- Especifica los nombres de pares nombre-valor que se han de añadir al URL de redirección. El valor de cada par nombre-valor añadido es el número de referencia del pedido preparado. Si no se proporciona el nombre, por omisión se utilizará orderId. Este parámetro puede repetirse.
- commit
- Controla si cada pedido se procesa en una transacción de base de datos separada. El valor 0 especifica que todos los pedidos se preparen en una sola transacción; el valor 1 especifica que se inicie una nueva transacción para cada pedido que se ha de preparar. El valor predeterminado de este parámetro es 0.
- remerge
- Es una lista de los artículos de pedido que se deben fusionar con otros artículos del mismo pedido y con el mismo atributo correlationGroup, si la operación es posible. Los artículos de pedido no se fusionan a menos que su estado de inventario (InventoryStatus) sea NALC, o a menos que los especifique uno o más de los parámetros allocate, backorder y reverse. Este parámetro puede repetirse.
- merge
- Una lista de los artículos de pedido que se deben fusionar con otros artículos de pedido del mismo pedido si es posible, independientemente de sus atributos correlationGroup. Este parámetro puede repetirse.
- check
- Una lista de artículos de pedido que debe comprobar el mandato de tarea CheckInventory. Este parámetro puede repetirse.
- allocate
- Una lista de artículos de pedido que deben asignarse del inventario existente. Este parámetro puede repetirse.
- backorder
- Una lista de artículos de pedido que deben asignarse del inventario existente. Este parámetro puede repetirse.
- reverse
- Una lista de artículos de pedido cuyas asignaciones deben liberarse (es decir, desasignarse del inventario existente o esperado, según corresponda). Este parámetro puede repetirse.
- keepAutoAddedOrderItemsBeforeCalculate
- Indica si los artículos de pedido que se han añadido automáticamente al pedido se deben conservar (true) o eliminar (false) antes de calcular el pedido. El valor predeterminado es false.
remerge
, merge
, check
, allocate
,backorder
y reverse
solo son aplicables si el inventario ATP está habilitado (consulte la columna INVENTORYSYSTEM de la tabla STORE). Representan listas de artículos de pedidos que se pasan a DoInventoryActionCmd. Este mandato llama a AllocateInventory mandato de tarea, el cual llama a los mandatos de tarea com.ibm.commerce.fulfillment.commands.CheckInventoryAvailabilityCmd, com.ibm.commerce.fulfillment.commands.AllocateExistingInventoryCmd, com.ibm.commerce.fulfillment.commands.AllocateExpectedInventoryCmd, com.ibm.commerce.fulfillment.commands.DeallocateExistingInventoryCmd y com.ibm.commerce.fulfillment.commands.DeallocateExpectedInventoryCmd, GetEligibleFulfillmentCenters, ReserveInventory, AdjustInventoryReservation tal y como se especifica a continuación. Además, estos parámetros aceptan abreviaturas de artículo de pedido, las cuales se describen en la ayuda para los URL del subsistema de gestión de pedidos.Los valores predeterminados de los parámetros de ATP son los siguientes:
remerge=*
merge=*n
check=*n
allocate=*
backorder=*
reverse=*
reverse=*n
con allocate=*
.Ejemplo
El ejemplo siguiente prepara un pedido con número de referencia 1 y redirige al mandato OrderDisplay para ver este pedido.
http://myhostname/webapp/wcs/stores/servlet/OrderPrepare?orderId=1
&URL=/webapp/commerce/OrderDisplay
Comportamiento
Comprobar si el pedido está bloqueado por el CSR actual. Si el pedido no está bloqueado y ha sido llamado por un CSR, o si está bloqueado por otro CSR, se emite una excepción
Llamar a ValidateShippingAdjustmentCmd para validar que el pedido no ha cambiado desde que se añadió un ajuste de envío
Llamar a PrepareOrderCmd para realizar operaciones de fijación de precios, inventario y cálculo en el pedido
Condiciones de excepción
- Si no hay ningún pedido que coincida con los parámetros especificados, el mandato genera la excepción ECApplicationException especificando el mandato de vista de error ErrorOrderNoneCmd.
- Si alguno de los productos o artículos del pedido no se puede adquirir, el mandato genera la excepción ECApplicationException especificando el mandato de vista de error BadOrderDataErrorView. Para obtener más información sobre las condiciones de excepción de los errores de pedidos, consulte Códigos de error para vistas de error de pedidos.
- El mandato genera una excepción ECApplicationException, especificando el mandato de vista de error RetrievePriceErrorView si se cumple alguna de las condiciones siguientes:
- Los acuerdos comerciales (contratos) de entrada no son válidos o elegibles para utilizarlos.
- Los acuerdos comerciales que se utilizan en el pedido aplican métodos de pago que son incompatibles.
- No se pueden recuperar listas de precios para ninguno de los productos o artículos.
- Si alguno de los cálculos indicados por la columna USAGEFLAGS de la tabla STENCALUSG no ha podido calcular un valor para cada artículo de pedido de un pedido, y si la columna USAGEFLAGS de la tabla STENCALUSG indica que debe calcularse un valor, se genera una excepción ECApplicationException.
- Si un pedido no tiene ningún artículo de pedido, se genera una excepción ECApplicationException.