Característica en desuso: Transferir pedido
La interfaz de servicio de salida TransferOrder se utiliza para transferir un pedido a un sistema externo.
Solicitud
Una solicitud a esta interfaz de servicio de salida tiene el formato de un documento de objeto de negocio (BOD) ProcessOrder
con el código de acción Transfer
. La definición de la BOD ProcessOrder
puede encontrarse en el archivo de esquema de XML workspace_dir/WebServicesRouter/xsd/OAGIS/9.0/Overlays/IBM/Commerce/BODs/ProcessOrder.xsd. La interfaz SDO (Service DataObject) de BOD ProcessOrder
es com.ibm.commerce.order.datatypes.ProcessOrderType
.
Respuesta
La respuesta a una solicitud satisfactoria tiene el formato de un BOD AcknowledgeOrder
sin criterios de respuesta. El esquema XML de la BOD ProcessOrder
puede encontrarse en el archivo de esquema de XML workspace_dir/WC/WebServicesRouter.war/xsd/OAGIS/9.0/Overlays/IBM/Commerce/BODs/AcknowledgeOrder.xsd. La interfaz SDO (Service DataObject) de BOD AcknowledgeOrder
es com.ibm.commerce.order.datatypes.AcknowledgeOrderType
.
Tipo de mensaje
Esta interfaz de servicio de salida se correlaciona con el tipo de mensaje com.ibm.commerce.order.TransferOrder
o com.ibm.commerce.order
si el primero no se ha definido.
Mandato de tarea de cliente
Esta interfaz de servicio de salida se puede iniciar al llamar al mandato de tarea de cliente de pedido com.ibm.commerce.order.client.commands.ProcessOrderCmd
con la acción TransferOrder
. Su implementación predeterminada, com.ibm.commerce.order.client.commands.ProcessOrderCmdImpl
, se comporta de la siguiente manera:
- Primero llama al método protegido
composeProcessOrder()
para componer un SDOProcessOrder
a partir del ID de pedido o del bean de acceso de pedido especificado. - Luego pasa la acción al SDO GetOrder a la implementación de portada de cliente de pedido para realizar la solicitud de servicio de salida.
ProcessOrder
Caso de ejemplo de utilización
- Cuando un comprador o un representante del servicio al cliente (CSR) somete un pedido, se llama al mandato
com.ibm.commerce.order.commands.ProcessOrderCmdImpl
. - Hacia el final de su ejecución, la implementación predeterminada,
com.ibm.commerce.order.commands.ProcessOrderCmdImpl
genera el sucesoOrderSubmit
. - El escucha de sucesos de envío de pedidos, que escucha al suceso, llama al mandato
com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd
. - La implementación específica de SOI de este mandato,
com.ibm.commerce.soi.commands.SOIProcessOrderSubmitEventCmdImpl
, llama al mandato de tarea de cliente de pedidocom.ibm.commerce.order.client.commands.ProcessOrderCmd
con la acciónTransferOrder
para transferir el pedido al sistema externo. - De forma alternativa, el componente de pedido puede configurarse de tal modo que se llame al mandato
com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd
cuando se genera el sucesoPaymentAuthorizationComplete
, de forma que el pedido no se transmita hasta que se haya autorizado el pago.- Abra el archivo de configuración de HCL Commerce.
- Inhabilite el suceso OrderSubmit y habilite el suceso Autorización de pago completada como se muestra en el siguiente ejemplo:
<component compClassName="com.ibm.commerce.event.impl.ECEventEnableComponent" enable="false" name="OrderSubmit Event"> <property display="false"> <event name="OrderSubmit"/> </property> </component> <component compClassName="com.ibm.commerce.event.impl.ECEventEnableComponent" enable="true" name="Payment Authorization Complete Event"> <property display="false"> <event name="PaymentAuthorizationComplete"/> </property> </component>
- En workspace_dir/WC/xml/config/com.ibm.commerce.order/wc-admin-component.xml, configure el suceso en el que desea que se lleve a cabo la transferencia de pedido. El suceso puede ser
PaymentAuthorizationComplete
oOrderSubmit
. El evento predeterminado esOrderSubmit
. Por ejemplo,<_config:configgrouping name="TransferOrder"> <_config:property name="accessProfile" value="IBM_TransferOrder"/> <_config:property name="event" value="PaymentAuthorizationComplete"/> </_config:configgrouping>