fonction obsolète : Transférer la commande

L'interface de service sortant TransferOrder est utilisée pour transférer une commande à un système externe.

Deprecated : Les interfaces de service d'intégration documentées dans ce sujet sont obsolètes. Utilise les interfaces de service Intégration de système de gestion des commandes.

Demande

Une requête adressée à cette interface de service sortant ProcessOrder a la forme d'un BOD (Business Object Document) assorti du code d'action Transfer. La définition du BOD ProcessOrder figure dans le fichier de schéma XML workspace_dir/WebServicesRouter/xsd/OAGIS/9.0/Overlays/IBM/Commerce/BODs/ProcessOrder.xsd. L'interface Service DataObject (SDO) du BOD ProcessOrder est com.ibm.commerce.order.datatypes.ProcessOrderType.

Réponse

La réponse à une requête dont l'exécution est réussie prend la forme d'un BOD AcknowledgeOrder sans critère de réponse. Le schéma XML du BOD ProcessOrder figure dans le fichier de schéma XML workspace_dir/WC/WebServicesRouter.war/xsd/OAGIS/9.0/Overlays/IBM/Commerce/BODs/AcknowledgeOrder.xsd. L'interface Service DataObject (SDO) du DBO AcknowledgeOrder est com.ibm.commerce.order.datatypes.AcknowledgeOrderType.

Type de message

Cette interface de service sortant est mappée au type de messages com.ibm.commerce.order.TransferOrder ou, s'il n'est pas défini, à com.ibm.commerce.order.

Commande de tâche de client

Cette interface de service sortant peut être lancée en appelant l'instruction de tâche de client com.ibm.commerce.order.client.commands.ProcessOrderCmd avec l'action TransferOrder. Sa mise en œuvre par défaut, com.ibm.commerce.order.client.commands.ProcessOrderCmdImpl , se comporte comme suit :

  1. Elle appelle d'abord la méthode protégée composeProcessOrder() pour composer un SDO ProcessOrder à partir de l'ID de commande ou du bean d'accès de commande spécifié.
  2. Elle passe ensuite l'action et le SDO ProcessOrder à l'implémentation de façade de client du composant order afin d'établir la requête de service sortant.

Scénario d'utilisation

  1. Lorsqu'une commande est soumise par un visiteur du magasin ou un représentant du service clientèle (RSC), la commande com.ibm.commerce.order.commands.ProcessOrderCmdImpl est appelée.
  2. Vers la fin de son exécution, la mise en œuvre par défaut, com.ibm.commerce.order.commands.ProcessOrderCmdImpl, génère l'événement OrderSubmit.
  3. L'écouteur d'événement de soumission de commande reçoit cet événement et appelle la commande com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd .
  4. L'implémentation spécifique à SOI de cette commande, com.ibm.commerce.soi.commands.SOIProcessOrderSubmitEventCmdImpl , appelle l'instruction de tâche du client de commande com.ibm.commerce.order.client.commands.ProcessOrderCmd avec l'action TransferOrder pour transférer la commande vers le système externe.
  5. Le composant order peut aussi être configuré de sorte que la commande com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd soit appelée lorsque l'événement PaymentAuthorizationComplete est émis, afin que la commande ne soit pas transférée tant que le paiement n'a pas été autorisé.
    1. Ouvrez le fichier de configuration HCL Commerce.
    2. Désactivez l'événement OrderSubmit et activez l'événement Payment Authorization Complete, comme dans l'exemple suivant :
      
      <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. Dans workspace_dir/WC/xml/config/com.ibm.commerce.order/wc-admin-component.xml, configurez l'événement sur lequel vous souhaitez que le transfert de commande se produise. L'événement peut être PaymentAuthorizationComplete ou OrderSubmit. L'événement par défaut est OrderSubmit. Par exemple,
    <_config:configgrouping name="TransferOrder">
         <_config:property name="accessProfile" value="IBM_TransferOrder"/>
         <_config:property name="event" value="PaymentAuthorizationComplete"/>
     </_config:configgrouping>
Remarque : Si vous souhaitez utiliser OrderProcessCmdImpl pour transférer la commande, vous devez utiliser le point d'extension SOIExtOrderProcessCmdImpl. Vous devez mettre à jour la table CMDREG pour l'interface ExtOrderProcessCmd afin d'utiliser la classe SOIExtOrderProcessCmdImpl.