Prétraitement de commande
Le service de prétraitement de commande est un service entrant, destiné aux commandes qui ont été soumises et transférées à un système externe de gestion des commandes, mais qui sont modifiées après leur transfert et nécessitent un prétraitement par HCL Commerce avant de pouvoir être traitées par le système externe.
Quand utiliser cette
Vous devez utiliser l'interface de prétraitement de commande lorsque vous travaillez sur des projets ou des tâches de développement existants.
Si vous travaillez sur un nouveau projet ou une nouvelle tâche de développement, utilisez plutôt l'interface Service de prétraitement de commande.
Ce service exécute les tâches suivantes sur une commande :
- Il valide les modalités (par exemple, l'autorisation sur un produit) des contrats référencés par les articles de la commande.
- Rafraîchir les prix de ses articles de commande
- Il calcule les ajustements (par exemple, les remises) et les frais (par exemple, les frais de port et les taxes) des articles de la commande.
Notez que la commande peut ou non être originaire de HCL Commerce. Si elle existe dans WebSphere Commerce, elle est mise à jour en fonction des informations fournies dans la demande. Si elle n'existe pas, une commande temporaire est créée sur la base des informations fournies dans la demande. Les tâches décrites plus haut sont ensuite exécutées dessus. Enfin, la commande prétraitée, avec ses prix mis à jour, ses ajustements et ses frais, est renvoyée comme réponse au système externe.
Les demandes adressées à ce service prennent la forme de documents BOD (business object documents) PreprocessSalesOrder. Les réponses de ce service ont la forme de documents BOD ShowSalesOrder ou de défauts SOAP (SOAPFaults) en cas d'émission d'exceptions.
Mappage
Ce service est mappé à la commande SalesOrderPreprocess. Le tableau suivant décrit comment le BOD PreprocessSalesOrder sera mappé aux paramètres d'entrée de cette commande.
| XPath | Paramètre d'entrée | Obligatoire | Description |
|---|---|---|---|
| DataArea/SalesOrder/SalesOrderHeader | Cet élément contient des informations à l'échelle de la commande. | ||
| DataArea/SalesOrder/SalesOrderHeader/DocumentID/ID | orderId | n | L'ID de commande HCL Commerce, si la commande provient de HCL Commerce. |
| DataArea/SalesOrder/SalesOrderHeader/CustomerParty/PartyIDs/ID | customerId | y | L'ID d'utilisateur HCL Commerce du client. |
| DataArea/SalesOrder/SalesOrderHeader/SalesOrganizationIDs/ID | storeId | y | L'ID du magasin HCL Commerce. |
| DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i] | Chacun de ces éléments représente un remplacement de frais de port. | ||
| DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/FreightTermCode | shipModeId_i | n | L'ID du mode d'expédition HCL Commerce du remplacement de frais de port. |
| DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/PolicyID | shipChargTypeId_i | n | L'ID du type de frais de port HCL Commerce du remplacement de frais de port. |
| DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/AccountNumber | shipCarrAccntNum_i | n | Le numéro de compte du transporteur du remplacement de frais de port. |
| DataArea/SalesOrder/SalesOrderHeader/TransportationTerm[i]/Discount/PaymentBasisCode | overrideReasonCode_i | n | Le code du motif de remplacement de frais de port. |
| DataArea/SalesOrder/SalesOrderHeader/TransportationTerm/Discount/DiscountPercent | adjustmentPercentageValue_i | n | La valeur du pourcentage d'ajustement du remplacement de frais de port. |
| DataArea/SalesOrder/SalesOrderLine[j] | Chacun de ces éléments représente un article de commande. | ||
| DataArea/SalesOrder/SalesOrderLine[j]/LineNumber | orderItemId_j | n | L'ID d'article de commande HCL Commerce du j-th article. |
| DataArea/SalesOrder/SalesOrderLine[j]/Item/ItemID/ID | catEntryId_j | n | L'ID d'entrée de catalogue HCL Commerce du j-th article. |
| DataArea/SalesOrder/SalesOrderLine[j]/Item/SupplierItemID/ID | partNumber_j | n | Le numéro de référence (SKU) du j-th article. |
| DataArea/SalesOrder/SalesOrderLine[j]/Item/Specification/Property/NameValue[@name="contractId"] | contractId_i | n | L'ID de contrat HCL Commerce du j-th article. |
| DataArea/SalesOrder/SalesOrderLine[j]/Item/Specification/Property/NameValue[@name="offerId"] | offerId_i | n | L'ID d'offre HCL Commerce de l'article de commande j-th. |
| DataArea/SalesOrder/SalesOrderLine[j]/Quantity | quantity_j |
y | La quantité de l'article de commande j-th. |
| DataArea/SalesOrder/SalesOrderLine[j]/Quantity/@unitCode | UOM_j | n | L'unité de mesure (UOM) de la quantité ci-dessus. |
| DataArea/SalesOrder/SalesOrderLine[j]/UnitPrice | Cet élément représente le remplacement de prix du j-th article, le cas échéant. |
||
| DataArea/SalesOrder/SalesOrderLine[j]/UnitPrice/Amount | price_j |
n | Le montant du remplacement de prix. |
| DataArea/SalesOrder/SalesOrderLine[j]/UnitPrice/Amount/@currencyID | currency_j |
n | La devise du remplacement de prix. |
| DataArea/SalesOrder/SalesOrderLine[j]/SpecialPriceAuthorizationCode | overrideReasonCode_j | n | Le code du motif de remplacement de prix. |
| DataArea/SalesOrder/SalesOrderLine[j]/TransportationTerm/FreightTermCode | shipModeId_j | n | L'ID du mode d'expédition HCL Commerce du j-th article. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address | Cet élément représente l'adresse de livraison du j-th article. |
||
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/ID | addressId_j | n | L'ID d'adresse HCL Commerce de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/LineOne | address1_j | n | Le champ Ligne 1 de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/LineTwo | address2_j | n | Le champ Ligne 2 de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/LineThree | address3_j | n | Le champ Ligne 2 de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/CityName | city_j |
n | Le champ Ville de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/ CountrySubDivisionCode[@name="state"] | state_j |
n | Le champ Etat/Province de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/CountryCode | country_j |
n | Le champ Pays de l'adresse de livraison. |
| DataArea/SalesOrder/SalesOrderLine[j]/ShipToParty/Location/Address/PostalCode | zipCode_j | n | Le champ Code postal de l'adresse de livraison. |
Exemple
Voici un exemple de demande et la réponse correspondante :
<?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>
Réponse :
<?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
Le fichier WSDL de ce service se trouve dans le fichier JAR suivant :
- workspace_dir/WebSphereCommerceWebServices.jar
Sous le chemin suivant :
- META-INF/jaxrpc/WebSphereCommerce/WebSphereCommerce-OMS.wsdl