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