Característica en desuso: Transferir pedido

La interfaz de servicio de salida TransferOrder se utiliza para transferir un pedido a un sistema externo.

Deprecated: Las interfaces de servicio de integración que se describen en este tema están en desuso. Utilice las interfaces de servicio Integración de sistemas de gestión de pedidos.

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:

  1. Primero llama al método protegido composeProcessOrder() para componer un SDO ProcessOrder a partir del ID de pedido o del bean de acceso de pedido especificado.
  2. 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

  1. Cuando un comprador o un representante del servicio al cliente (CSR) somete un pedido, se llama al mandato com.ibm.commerce.order.commands.ProcessOrderCmdImpl.
  2. Hacia el final de su ejecución, la implementación predeterminada, com.ibm.commerce.order.commands.ProcessOrderCmdImpl genera el suceso OrderSubmit.
  3. El escucha de sucesos de envío de pedidos, que escucha al suceso, llama al mandato com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd .
  4. La implementación específica de SOI de este mandato, com.ibm.commerce.soi.commands.SOIProcessOrderSubmitEventCmdImpl , llama al mandato de tarea de cliente de pedido com.ibm.commerce.order.client.commands.ProcessOrderCmd con la acción TransferOrder para transferir el pedido al sistema externo.
  5. 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 suceso PaymentAuthorizationComplete, de forma que el pedido no se transmita hasta que se haya autorizado el pago.
    1. Abra el archivo de configuración de HCL Commerce.
    2. 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> 
      
  6. 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 o OrderSubmit. El evento predeterminado es OrderSubmit. Por ejemplo,
    <_config:configgrouping name="TransferOrder">
         <_config:property name="accessProfile" value="IBM_TransferOrder"/>
         <_config:property name="event" value="PaymentAuthorizationComplete"/>
     </_config:configgrouping>
Nota: Si desea utilizar OrderProcessCmdImpl para transferir el pedido, debe utilizar el punto de extensión SOIExtOrderProcessCmdImpl. Debe actualizar la tabla CMDREG para que la interfaz ExtOrderProcessCmd utilice la clase SOIExtOrderProcessCmdImpl.