Deprecated feature: Transfer order
The TransferOrder outbound service interface is used to transfer an order to an external system.
Request
A request to this outbound service
interface is in the form of a ProcessOrder
business
object document (BOD) with action code Transfer
.
The definition of the ProcessOrder
BOD can be found
in the XML schema file WC_eardir/WebServicesRouter.war/xsd/OAGIS/9.0/Overlays/IBM/Commerce/BODs/ProcessOrder.xsd
.
The Service DataObject (SDO) interface of the ProcessOrder
BOD
is com.ibm.commerce.order.datatypes.ProcessOrderType
.
Response
The response to a successful
request is in the form of an AcknowledgeOrder
BOD
with no response criteria. The XML schema of the ProcessOrder
BOD
can be found in the XML schema file WC_eardir/WebServicesRouter.war/xsd/OAGIS/9.0/Overlays/IBM/Commerce/BODs/AcknowledgeOrder.xsd
.
The Service DataObject (SDO) interface of the AcknowledgeOrder
BOD
is com.ibm.commerce.order.datatypes.AcknowledgeOrderType
.
Message type
This outbound service interface
is mapped to the message type com.ibm.commerce.order.TransferOrder
,
or com.ibm.commerce.order
if the former is not defined.
Client task command
This outbound service
interface can be started by calling the order client task command
com.ibm.commerce.order.client.commands.ProcessOrderCmd
with
action TransferOrder
. Its default implementation,
com.ibm.commerce.order.client.commands.ProcessOrderCmdImpl
,
behaves as follows:
- It first calls the protected method
composeProcessOrder()
to compose aProcessOrder
SDO from the order ID or order access bean specified. - It then passes the action and the
ProcessOrder
SDO to the order client facade implementation to make the outbound service request.
Usage scenario
- When an order is submitted by either a shopper or customer service
representative (CSR), the command
com.ibm.commerce.order.commands.ProcessOrderCmdImpl
is called. - Towards the end of its execution, the default implementation,
com.ibm.commerce.order.commands.ProcessOrderCmdImpl
raises the eventOrderSubmit
. - The order submit event listener, which listens to the event, calls
the command
com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd
. - The SOI-specific implementation of this command,
com.ibm.commerce.soi.commands.SOIProcessOrderSubmitEventCmdImpl
, calls the order client task commandcom.ibm.commerce.order.client.commands.ProcessOrderCmd
with actionTransferOrder
to transfer the order to the external system. - Alternatively, the order component can be configured such that
the command
com.ibm.commerce.order.event.ProcessOrderSubmitEventCmd
is called when the eventPaymentAuthorizationComplete
is raised so that the order is not transferred until payment has been authorized.- Open the WebSphere Commerce Configuration file.
- Disable the OrderSubmit Event and enable the Payment Authorization Complete
Event as shown in the following example:
<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>
- Propagate your changes to the WebSphere Commerce configuration file.
- In
WC_eardir/xml/config/com.ibm.commerce.order/wc-admin-component.xml,
configure the event on which you want the order transfer to occur. The event can be
PaymentAuthorizationComplete
orOrderSubmit
. The default event isOrderSubmit
. For example,<_config:configgrouping name="TransferOrder"> <_config:property name="accessProfile" value="IBM_TransferOrder"/> <_config:property name="event" value="PaymentAuthorizationComplete"/> </_config:configgrouping>