Deprecated feature

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.

Este diagrama muestra la estructura para el URL Order.Prepare URL.

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.
Note for ATP inventory: Los parámetros 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=*
Nota: Si desea que todos los artículos de pedido de una tienda se asignen en el mandato OrderPrepare, pase 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.