Deprecated feature

URL OrderProcess

Somete un pedido para su proceso. El pedido se debe haber bloqueado mediante el mandato OrderPrepare.

URL

OrderProcess

Mandato de controlador

com.ibm.commerce.order.commands.OrderProcessCmd

Clase de implementación

com.ibm.commerce.order.commands.OrderProcessCmdImpl

Mandatos llamados

Diagram

Descripción

Estructura de URL

http://nombre_host/vía de acceso/
El nombre completo de Transaction server y la vía de acceso de configuración.

Valores de parámetros

forUser
Especifica 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.
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.
storeId
Especifica el número de referencia de la tienda en la que se va a formalizar el pedido. Este valor se ignora, a menos que se produzca un error antes de que se resuelva el pedido. Se utiliza únicamente para llamar al manejador de excepciones de la tienda correcta.
orderId
Se necesita: Especifica el número de referencia del pedido que se ha de procesar. Este parámetro puede repetirse.
externalUserId
Especifica un ID de usuario que se ha de enviar con la petición de transferencia de pedido.
externalPassword
Especifica una contraseña para el ID de usuario especificado por el parámetro externalUserId.
transferMode
Especifica la modalidad de transferencia a un sistema externo. Un valor de 0 transfiere el pedido sin información de pago (transferencia de carro de la compra). Un valor de 1transfiere el pedido con información de pago (transferencia de orden de compra). El valor predeterminado es 0.
billtoAddressId
Especifica l número de referencia de la dirección de facturación.
field1, field2 y field3
Especifica campos personalizables.
notify_[msgtype]_transportname_attributename
Especifica los atributos de configuración que se aplican a las notificaciones de pedidos para un tipo de mensaje y un transporte de mensaje específicos. Incluya las variables siguientes para definir este parámetro:
msgtype
Opcional. Si no incluye un valor para esta variable, se aplica el atributo de configuración a todos los tipos de mensaje. Si especifica un valor msgtype para un atributo, como "asunto", especifique el mismo valor msgtype para todos los atributos que se utilizan en la petición de notificación. Los valores de esta variable se almacenan en la columna NAME de la tabla MSGTYPES.
transportname
Los valores de esta variable se almacenan en la columna NAME de la tabla TRANSPORT.
attributename
Los valores de esta variable pueden ser cualquiera de los valores siguientes:
  • recipient
  • CC
  • BCC
  • remitente
  • subject
  • replyTo
  • contentType
Lo siguiente son ejemplos de parámetros de notificación definidos:
  • El ejemplo siguiente envía la notificación de correo electrónico de "pedido recibido" para los pedidos procesados por este mandato a dos direcciones de correo electrónico, john@ibm.com y victor@ibm.com:
    notify_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.com
    
  • Este ejemplo envía todos los tipos de notificaciones de correo electrónico de pedido a una dirección de correo electrónico individual: jack@ibm.com:
    notify_EMailSender_recipient=jack@ibm.com
    
El ejemplo siguiente muestra un conjunto de parámetros que no son válidos porque los valores de msgtype son diferentes entre los atributos que se utilizan en la notificación de petición:
notify_OrderReceived_EMailSender_subject=We have received your order
notify_EMailSender_recipient=john@ibm.com,victor@ibm.com
Los ejemplos siguientes muestran conjuntos de parámetros válidos. Cada conjunto incluye parámetros que tienen el mismo valor de msgtype para los atributos en la notificación de petición:
  • notify_OrderReceived_EMailSender_subject=We have received your order
    notify_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.com
    
  • notify_EMailSender_subject=Order notification
    notify_EMailSender_recipient=john@ibm.com,victor@ibm.com
  • notify_OrderReceived_EMailSender_subject=We have received your order
    notify_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.com
    notify_EMailSender_recipient=john@ibm.com,victor@ibm.com
Nota: Si desea enviar una notificación de correo electrónico a un cliente invitado, debe capturar la dirección de correo electrónico del cliente invitado.
notifyMerchant
Especifica si se notifica a la tienda cuando se completa el proceso del pedido.
notifyShopper
Especifica si se notifica al cliente cuando se completa el proceso del pedido. No se envían notificaciones de correo electrónico si PrimePaymentCmd falla. El valor 1 especifica que se notifica al cliente y el valor 0 especifica que no se notifica al cliente.
quoteExpiryPolicy
Define el comportamiento del mandato si el total del pedido caduca o el centro de despacho de un artículo de pedido cambia durante la asignación de inventario. El total del pedido caduca si la hora actual es posterior o igual a la indicación de fecha y hora de la última actualización del pedido más el número de segundos especificados en la columna QUOTEGOODFOR de la tabla STORE. Este parámetro puede tener tres valores:
alwaysProceed
Continuar siempre con el proceso del pedido después de volver a calcular el total del pedido.
stopOnBiggerTotal
Continuar con el proceso del pedido si el total del pedido recalculado es igual o inferior al total del pedido anterior. De lo contrario, redirigir a un URL especificado por el parámetro quoteExpiredUrl.
neverProceed
Redirigir siempre al URL especificado por el parámetro quoteExpiredUrl.
quoteExpiredURL
Especifica el URL al que se ha de redirigir si el total del pedido ha caducado según lo acordado por la política de caducidad especificada mediante el parámetro quoteExpiryPolicy.
notifyOrderSubmitted
Especifica si debe notificarse al cliente cuando el pedido se ha sometido satisfactoriamente para su proceso. El valor 1 especifica que se notifica al cliente y el valor 0 especifica que no se notifica al cliente. El valor predeterminado es 0.
availabilityChangeURL
Especifica el URL al que redirigirse cuando el tiempo de disponibilidad estimado, más el desplazamiento de envío de cualquier artículo de pedido se mueve al futuro (como resultado de asignar o colocar en espera el inventario), con un tiempo superior al intervalo de tiempo especificado por el parámetro maxAvailabilityChange. Se hace caso omiso de este parámetro si la asignación de inventario ATP no está habilitada.
maxAvailabilityChange
Especifica el intervalo de tiempo, en segundos, mencionado en la descripción del parámetro availabilityChangeURL. El valor predeterminado es 3600 (1 hora). Se hace caso omiso de este parámetro si el parámetro availabilityChangeURL no se especifica o si la asignación de inventario ATP no está habilitada.
noInventoryURL
Especifica el URL al que redirigirse si alguno de los artículos del pedido no se pueden asignar o poner en espera. Se hace caso omiso de este parámetro si la asignación de inventario ATP no está habilitada.
tcId
Especifica el identificador de un objeto de Términos y condiciones (consulte la tabla TERMCOND). Si este parámetro se especifica, e identifica un PaymentTC, y si ese PaymentTC especifica un ID de miembro y un apodo de dirección (consulte la correlación de PaymentTC), entonces el ID de miembro y el apodo de dirección se utilizan para determinar la dirección de facturación, en cuyo caso se hace caso omiso del parámetro billToAddressId.
Notes about order notification: Si necesita configurar la notificación de pedidos:
  1. Habilitar la mensajería de salida.
  2. Crear plantillas para componer los mensajes de notificación de pedidos.
quotationSubmission
Controla si los valores de atributo relType para objetos OrderQuotationRel "selection" que identifican el pedido que se procesa con su atributo childId deben cambiarse a "submission". El valor 0 no cambia los atributos relType de los objetos OrderQuotationRel de la lista para que indiquen "submission". El valor 1 cambia los atributos relType para que indiquen "submission". El valor predeterminado es 0.
reduceParentQuantities
Controla si las cantidades de artículos de pedido en el pedido padre de selección se reducen en las cantidades de artículos de pedido en el pedido que se procesa. El valor 0 no reduce las cantidades del pedido padre; el valor 1 reduce las cantidades del pedido padre. El valor predeterminado es 0.

El pedido padre solo se actualiza cuando el atributo de estado es P o E.

Solo se actualizan aquellos artículos de pedido que tienen los mismos valores de atributo CatalogEntryId, SpecifiedItemId y correlationGroup que los artículos del pedido que se actualizan.

continue
Controla si continúa el proceso de pedidos en el pedido siguiente cuando se produce un error al procesar uno de varios pedidos. El valor 0 especifica que no debe continuarse el proceso y el valor 1 especifica que debe continuarse con el proceso. El valor predeterminado es 0.
isPIAddNeeded
Si no se pasa, el valor predeterminado es true. Si es true, se llama a PIAdd para añadir una instrucción de pago. De lo contrario, no se añade ninguna instrucción de pago. Si isPIAddNeeded no se pasa o si isPIAddNeeded=Y, policyId es obligatorio.
payMethodId
El significado del parámetro payMethodId ha cambiado de la versión 5.x a la versión 6.x. Las versiones anteriores utilizaban payMethodId para establecer el ID de método de pago para añadir la instrucción de pago. Esto ha dejado de utilizarse durante más de 2 releases y se ha eliminado de la versión 6. Ahora, payMethodId significa el ID del método de pago de la instrucción de pago que hay que añadir. Corresponde a la columna POLICYNAME del registro en la tabla POLICY que utilizaba esta instrucción de pago.
policyId
Establece el ID de política de pago. Si no se ha establecido, utilice el ID de política predeterminado. Se utiliza únicamente para modalidad compatible.
valueFromProfileOrder
Si este parámetro no se pasa, el valor 'N'. Este parámetro indica que si isPIAddNeeded es Y o no se pasa, la información de pago para el perfil se consulta y se utiliza en los datos de protocolo de pago. Esto se utiliza en la caja rápida.
billing_address_id
Si isPIAddNeeded es verdadero, establece el ID de dirección de facturación de la instrucción de pago. Si este parámetro no se establece, utiliza la dirección de facturación del pedido.
PONumber_i
Establece el número de orden de compra para este pedido del grupo i. Si se especifica purchaseorder_id, se sustituye este valor.
purchaseorder_id
Establece el número de orden de compra para este pedido del grupo i.
paymentInstructionId
Utilice este parámetro para pasar información de pago sensible para instrucciones de pago.

Por ejemplo, un comprador añade dos instrucciones de pago (10001 y 10002). El comprador escribe información de pago para una tercera instrucción de pago. El comprador pulse el botón para someter el pedido y se le solicita que especifique la información de verificación de tarjeta de crédito para las tres instrucciones de pago. A continuación, el pedido se somete y se llama al mandato OrderProcess. En este ejemplo, los parámetros relevantes son los siguientes:

paymentInstructionId_1=10001&paymentInstructionId_2=10002&pay_data_cc_cvc_1=1111&pay_data_cc_cvc_2=2222&pay_data_cc_cvc_0=3333

Esta información se pasa al correspondiente plug-in de pago como datos ampliados para la instrucción de pago. Estos datos no persisten.

Para utilizar el parámetro paymentInstructionId, debe configurar el plug-in de pago para que utilice el proceso de sucesos síncronos.

Ejemplo 1

El mandato siguiente procesa la formalización de un pedido cuyo número de referencia es 3:

http://myhostname/webapp/wcs/stores/servlet/OrderProcess?orderId=3

Comportamiento

Llamar a OrderCommentRecordContrlCmd para procesar los comentarios del pedido del CSR

Si el distintivo updateChannelId está establecido:
  • Actualizar el ID de canal del pedido

Llamar a PIAddCmd para añadir instrucciones de pago si el importe restante es mayor que cero y si isPIAddNeeded = Y

Llamar a ValidatePaymentMethodCmd para validar cualquier instrucción de pago existente para el pedido actual (no está vinculado a "Si el distintivo updateChannelId está establecido")

Si Unified Business Flow está habilitado:
  • Llamar a BusinessFlowUrlEventCmd (mandato UBF) para procesar el pedido en Unified Business Flow:
    • Inicializar BusinessFlowEvent
    • En BusinessFlowEventListener
      • Ejecutar OrderProcessPreApprovalCmd, que invoca PreProcessOrderCmd
      • Ejecutar OrderProcessCheckApprovalCmd para comprobar si se requiere aprobación
      • Ejecutar OrderProcessPostApprovalCmd, que invoca ProcessOrderCmd
De lo contrario:
  • Llamar directamente a ProcessOrderCmd para procesar el pedido sin Unified Business Flow

Llamar a RaiseOrderEventCmd para generar ORDER_SUBMISSION_EVENT (no está vinculado a "De lo contrario")

Condiciones de excepción

  • Si el pedido no está bloqueado, el mandato genera la excepción ECApplicationException especificando el mandato OrderUnlockErrorView.
  • Si el cliente ha escrito datos incorrectos, el mandato genera ECApplicationException especificando el mandato de vista de error BadOrderDataErrorView para notificárselo al cliente.
  • Si el pedido no está pendiente, el mandato genera la excepción ECApplicationException especificando el mandato OrderNoneErrorView.
  • Si alguno de los contratos utilizados por el pedido no es válido, el mandato emite una excepción ECApplicationException.