Order preprocessing
The order preprocessing service is an inbound service for orders that have been submitted and transferred to an external order management system (OMS) but are modified post-transfer and require preprocessing by WebSphere Commerce before they can be processed by the external OMS.
When to use this interface
You should use the order preprocessing interface when working with existing projects or development tasks.
If you are working on a new project or development task, use the Order preprocessing service interface instead.
This service will perform the following tasks on an order:
- Validate the terms and conditions (for example product entitlement) of the contracts referenced by its orderitems
- Refresh the prices of its orderitems
- Calculate the adjustments (for example discounts) and charges (for example shipping and tax) of its orderitems
Note that the order may or may not have originated from WebSphere Commerce. If the order does exist, it will be updated based on the information provided in the request. If the order does not exist, a temporary order will be created based on the information provided in the request. Then the tasks described above will be performed. Finally, the order, with updated prices, adjustments and charges, will be returned as the response.
Requests to this service are in the form of PreprocessSalesOrder business object documents (BODs). Responses of this service are in the form of ShowSalesOrder BODs, or SOAPFaults in case of exceptions.
Mapping
This service is mapped to the SalesOrderPreprocess command. The following table describes how the PreprocessSalesOrder BOD will be mapped to the input parameters of this command
XPath | Input Parameter | Mandatory | Description |
---|---|---|---|
DataArea/SalesOrder/SalesOrderHeader | this element contains the order level information | ||
DataArea/SalesOrder/SalesOrderHeader/DocumentID/ID | orderId | n | the WebSphere Commerce order ID, if the order originates from WebSphere Commerce |
DataArea/SalesOrder/SalesOrderHeader/CustomerParty/PartyIDs/ID | customerId | y | the customer's WebSphere Commerce user ID |
DataArea/SalesOrder/SalesOrderHeader/SalesOrganizationIDs/ID | storeId | y | the WebSphere Commerce store ID |
DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i] | each of these elements represent a shipping charge override | ||
DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/FreightTermCode | shipModeId_i | n | the WebSphere Commerce shipping mode ID of the shipping charge override |
DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/PolicyID | shipChargTypeId_i | n | the WebSphere Commerce shipping charge type ID of the shipping charge override |
DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/AccountNumber | shipCarrAccntNum_i | n | the shipping carrier account number of the shipping charge override |
DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/Discount/PaymentBasisCode | overrideReasonCode_i | n | the override reason code of the shipping charge override |
DataArea/SalesOrder/SalesOrderHeader/TransportationTerm/Discount/DiscountPercent | adjustmentPercentageValue_i | n | the adjustment percentage value of the shipping charge override |
DataArea/SalesOrder/SalesOrderLine[j] | each of these elements represent an orderitem | ||
DataArea/SalesOrder/SalesOrderLine[j]/LineNumber | orderItemId_j | n | the WebSphere Commerce orderitem ID of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/Item/ItemID/ID | catEntryId_j | n | the WebSphere Commerce catalog entry ID of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/Item/SupplierItemID/ID | partNumber_j | n | the part number (SKU) of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/Item/Specification/Property/NameValue[@name="contractId"] | contractId_i | n | the WebSphere Commerce contract ID of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/Item/Specification/Property/NameValue[@name="offerId"] | offerId_i | n | the WebSphere Commerce offer ID of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/Quantity | quantity_j | y | the quantity of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/Quantity/@unitCode | UOM_j | n | the unit of measure (UOM) of the quantity above |
DataArea/SalesOrder/SalesOrderLine[j]/UnitPrice | this element represents the price override of the j-th orderitem, if any | ||
DataArea/SalesOrder/SalesOrderLine[j]/UnitPrice/Amount | price_j | n | the price of the price override |
DataArea/SalesOrder/SalesOrderLine[j]/UnitPrice/Amount/@currencyID | currency_j | n | the currency of the price override |
DataArea/SalesOrder/SalesOrderLine[j]/SpecialPriceAuthorizationCode | overrideReasonCode_j | n | the override reason code of the price override |
DataArea/SalesOrder/SalesOrderLine[j]/TransportationTerm/FreightTermCode | shipModeId_j | n | the WebSphere Commerce shipping mode ID of the j-th orderitem |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address | this element represents the shipping address of the j-th orderitem | ||
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/ID | addressId_j | n | the WebSphere Commerce address ID of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/LineOne | address1_j | n | the line 1 field of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/LineTwo | address2_j | n | the line 2 field of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/LineThree | address3_j | n | the line 2 field of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/CityName | city_j | n | the city field of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/ CountrySubDivisionCode[@name="state"] | state_j | n | the state field of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/CountryCode | country_j | n | the country field of the shipping address |
DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/PostalCode | zipCode_j | n | the zip code field of the shipping address |
Example
The following is a sample request and its corresponding response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<wsse:Security
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>wcsadmin</wsse:Username>
<wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssusername-token-profile-1.0#PasswordText">*********</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<wc:PreprocessSalesOrder releaseID="9.0" version="9.1"
versionID="9.1"
xmlns:oa="http://www.openapplications.org/oagis/9"
xmlns:wc="http://www.ibm.com/xmlns/prod/WebSphereCommerce"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/xmlns/prod/WebSphereCommerce
../BODs/PreprocessSalesOrder.xsd ">
<oa:ApplicationArea>
<oa:CreationDateTime>2001-12-31T12:00:00</oa:CreationDateTime>
<oa:BODID>2001-12-31T12:00:00[wcsadmin]localhost</oa:BODID>
</oa:ApplicationArea>
<wc:DataArea>
<wc:Preprocess/>
<oa:SalesOrder>
<oa:SalesOrderHeader>
<oa:CustomerParty>
<oa:PartyIDs>
<oa:ID>2</oa:ID>
</oa:PartyIDs>
</oa:CustomerParty>
<oa:SalesOrganizationIDs>
<oa:ID>10001</oa:ID>
</oa:SalesOrganizationIDs>
</oa:SalesOrderHeader>
<oa:SalesOrderLine>
<oa:Item>
<oa:SupplierItemID>
<oa:ID>FULO-0101</oa:ID>
</oa:SupplierItemID>
</oa:Item>
<oa:Quantity
unitCode="C62">1</oa:Quantity>
<oa:ShipToParty>
<oa:Location>
<oa:Address>
<oa:LineOne>234 Main
Street</oa:LineOne>
<oa:CityName>Toronto</oa:CityName>
<oa:CountrySubDivisionCode
name="state">ON</oa:CountrySubDivisionCode>
<oa:CountryCode>CA</oa:CountryCode>
<oa:PostalCode>M1M1M1</oa:PostalCode>
</oa:Address>
</oa:Location>
</oa:ShipToParty>
</oa:SalesOrderLine>
</oa:SalesOrder>
</wc:DataArea>
</wc:PreprocessSalesOrder>
</soapenv:Body>
</soapenv:Envelope>
Response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<oa:ShowSalesOrder releaseID="9.0" versionID="9.1"
xmlns:oa="http://www.openapplications.org/oagis/9">
<oa:ApplicationArea>
<oa:CreationDateTime>2005-12-15T16:14:43</oa:CreationDateTime>
<oa:BODID>2005-12-15T16:14:43[wcsadmin]</oa:BODID>
</oa:ApplicationArea>
<oa:DataArea>
<oa:Show/>
<oa:SalesOrder>
<oa:SalesOrderHeader>
<oa:DocumentID>
<oa:ID>24001</oa:ID>
</oa:DocumentID>
<oa:Status>
<oa:Code>T</oa:Code>
</oa:Status>
<oa:CustomerParty>
<oa:PartyIDs>
<oa:ID>2</oa:ID>
</oa:PartyIDs>
</oa:CustomerParty>
<oa:TotalAmount
currencyID="USD">359.99000</oa:TotalAmount>
<oa:PaymentTerm/>
<oa:DistributedCharge type="-6">
<oa:ID>1234</oa:ID>
<oa:Description/>
<oa:Amount
currencyID="USD">5.00</oa:Amount>
</oa:DistributedCharge>
<oa:DistributedCharge type="-2">
<oa:Amount
currencyID="USD">0</oa:Amount>
</oa:DistributedCharge>
<oa:SalesOrganizationIDs>
<oa:ID>10001</oa:ID>
</oa:SalesOrganizationIDs>
</oa:SalesOrderHeader>
<oa:SalesOrderLine>
<oa:LineNumber>150001</oa:LineNumber>
<oa:Item>
<oa:ItemID>
<oa:ID>10002</oa:ID>
</oa:ItemID>
<oa:SupplierItemID>
<oa:ID>FULO-0101</oa:ID>
</oa:SupplierItemID>
<oa:Specification>
<oa:Property>
<oa:NameValue
name="contractId">10001</oa:NameValue>
</oa:Property>
<oa:Property>
<oa:NameValue
name="offerId">10002</oa:NameValue>
</oa:Property>
</oa:Specification>
</oa:Item>
<oa:Quantity unitCode="C62">1.0</oa:Quantity>
<oa:UnitPrice>
<oa:Amount
currencyID="USD">449.99</oa:Amount>
<oa:PerQuantity
unitCode="C62">1.0</oa:PerQuantity>
</oa:UnitPrice>
<oa:TotalAmount
currencyID="USD">359.99</oa:TotalAmount>
<oa:ShipToParty>
<oa:Location>
<oa:Address>
<oa:LineOne>234 Main
Street</oa:LineOne>
<oa:LineTwo/>
<oa:LineThree/>
<oa:CityName>Toronto</oa:CityName>
<oa:CountrySubDivisionCode
name="state">ON</oa:CountrySubDivisionCode>
<oa:CountryCode>CA</oa:CountryCode>
<oa:PostalCode>M1M1M1</oa:PostalCode>
</oa:Address>
</oa:Location>
</oa:ShipToParty>
<oa:TransportationTerm>
<oa:FreightTermCode>10001</oa:FreightTermCode>
</oa:TransportationTerm>
<oa:PaymentTerm>
<oa:Discount type="-1">
<oa:ID>10005</oa:ID>
<oa:Description>Save 20% on
Furniture!</oa:Description>
<oa:Amount
currencyID="USD">90.0</oa:Amount>
</oa:Discount>
<oa:Discount type="-1">
<oa:ID>10008</oa:ID>
<oa:Description>Repeat
customers save $5.00
USD</oa:Description>
<oa:Amount
currencyID="USD">5.0</oa:Amount>
</oa:Discount>
</oa:PaymentTerm>
<oa:DistributedCharge type="-6">
<oa:ID>1234</oa:ID>
<oa:Description/>
<oa:Amount
currencyID="USD">5.00000</oa:Amount>
</oa:DistributedCharge>
<oa:DistributedCharge type="-2">
<oa:Amount
currencyID="USD">0</oa:Amount>
</oa:DistributedCharge>
<oa:DistributionCenterCode>10001</oa:DistributionCenterCode>
</oa:SalesOrderLine>
</oa:SalesOrder>
</oa:DataArea>
</oa:ShowSalesOrder>
</soapenv:Body>
</soapenv:Envelope>
WSDL
The WSDL file of this service can be found in the following JAR file:
- WC_eardir/WebSphereCommerceWebServices.jar
Under the following path:
- META-INF/jaxrpc/WebSphereCommerce/WebSphereCommerce-OMS.wsdl