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.
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 :
- Elle appelle d'abord la méthode protégée
composeProcessOrder()pour composer un SDOProcessOrderà partir de l'ID de commande ou du bean d'accès de commande spécifié. - 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
- 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.ProcessOrderCmdImplest appelée. - 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énementOrderSubmit. - L'écouteur d'événement de soumission de commande reçoit cet événement et appelle la commande
com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd. - L'implémentation spécifique à SOI de cette commande,
com.ibm.commerce.soi.commands.SOIProcessOrderSubmitEventCmdImpl, appelle l'instruction de tâche du client de commandecom.ibm.commerce.order.client.commands.ProcessOrderCmdavec l'actionTransferOrderpour transférer la commande vers le système externe. - Le composant order peut aussi être configuré de sorte que la commande
com.ibm.commerce.order.event.ProcessOrderSubmitEventCmdsoit appelée lorsque l'événementPaymentAuthorizationCompleteest émis, afin que la commande ne soit pas transférée tant que le paiement n'a pas été autorisé.- Ouvrez le fichier de configuration HCL Commerce.
- 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>
- 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
PaymentAuthorizationCompleteouOrderSubmit. L'événement par défaut estOrderSubmit. Par exemple,<_config:configgrouping name="TransferOrder"> <_config:property name="accessProfile" value="IBM_TransferOrder"/> <_config:property name="event" value="PaymentAuthorizationComplete"/> </_config:configgrouping>