Service de prétraitement de commande
Le service de prétraitement de commande est un service Web entrant qui est chargé de valider une commande externe (par exemple, une commande ayant été transférée à un système externe de gestion de commandes) par rapport aux contrats définis dans HCL Commerce et de calculer ses prix, ses remises, ses frais de port, ses taxes, etc. en utilisant, là encore, les valeurs définies dans HCL Commerce. Ce service Web entrant est généralement appelé, dans une solution intégrée, par un système externe auquel est dévolu le traitement des commandes, mais qui sollicite HCL Commerce pour tout ce qui concerne la validation par rapport aux contrats, la tarification, le calcul des remises et des frais de port, le calcul des taxes, etc.
Quand utiliser cette
Vous devez utiliser l'interface du service de prétraitement de commande lorsque vous travaillez sur des projets ou des tâches de développement nouveaux.
Si vous travaillez sur un projet ou une tâche de développement existant, il est possible que l'interface Prétraitement de commande soit utilisée à la place.
Cas d'utilisation typiques
- Une commande a été enregistrée par HCL Commerce et transférée à un système externe de gestion des commandes pour son traitement et son exécution. La commande a déjà été validée et chiffrée par HCL Commerce avant d'être transférée, mais, à la demande du client, elle a ensuite été modifiée, si bien qu'elle doit à nouveau être validée et chiffrée.
- Une commande a été enregistrée par un canal non géré par HCL Commerce, mais elle a quand même besoin de HCL Commerce pour tout ce qui concerne sa validation par rapport aux contrats, sa tarification, le calcul des remises et des frais de port, le calcul des taxes, etc.
URL du point d'extrémité et opération du service Web
L'URL de nœud final par défaut de ce service Web entrant est https://hostname:8000/webapp/wcs/services/OrderServices. L'opération mise à disposition par ce service Web entrant est ProcessOrder, avec le BOD ProcessOrder pour la requête et le BOD AcknowledgeOrder pour la réponse.
Demande
Les requêtes adressées à ce service Web entrant ont la forme de documents BOD (Business Object Documents) ProcessOrder. Elles seront mappées à la commande SalesOrderPreprocess et devront contenir les informations suivantes :
| XPath* | Type | Mappé au paramètre de commande suivant | Description | Obligatoire |
|---|---|---|---|---|
DataArea/Process/ActionCriteria/ |
chaîne | actionCode | Le code d'action. Doit être "Preprocess". | O |
DataArea/Order/OrderHeader |
long | orderId | HCL Commerce ID de la commande, si applicable. | N |
DataArea/Order/OrderHeader |
chaîne | externalOrderId |
ID externe de la commande. Il peut s'agir d'une chaîne quelconque. | N |
DataArea/Order/OrderHeader |
int | storeId | HCL Commerce ID du magasin sous lequel la commande doit être traitée. | O |
DataArea/Order/OrderHeader/OrderReferences/ |
long | customerId | HCL Commerce ID utilisateur du client qui a passé la commande. | O |
DataArea/Order/OrderHeader/OrderPaymentInfo |
chaîne | promotionCode_i |
Codes de promotion qui doivent être appliqués à la commande. | N |
DataArea/Order/OrderItem[j]/OrderItemIdentifier/OrderItemID |
long | orderItemId_j |
ID HCL Commerce de l'article de commande j-th, le cas échéant. |
N |
DataArea/Order/OrderItem[j]/OrderItemIdentifier/ExternalOrderItemID |
chaîne | field2_j | ID externe du j-th article de commande. Sert à corréler les articles de commande entre le BOD de demande et le BOD de réponse. | N |
DataArea/Order/OrderItem[j]/ProductIdentifier/CatalogEntryID |
long | catEntryId_j | ID d'entrée de catalogue HCL Commerce du produit associé au j-th article de commande. Requis si l'article est nouveau et que la SKU du produit n'est pas spécifiée. | N |
DataArea/Order/OrderItem[j] |
chaîne | partNumber_j |
SKU du produit associé au j-th article de commande. Requis si l'article est nouveau et que l'ID d'entrée de catalogue HCL Commerce du produit n'est pas spécifié. | N |
DataArea/Order/OrderItem[j]/Quantity |
double | quantity_j | Valeur de quantité du j-th article de commande. Requis si l'article est nouveau. | N |
DataArea/Order/OrderItem[j] |
chaîne | UOM_j | Unité de mesure de la valeur de quantité ; par exemple, "C62" pour l'absence d'unité. Voir Unités de quantité. | N |
DataArea/Order/OrderItem[j]/OrderItemCharges/UnitPrice/Price |
decimal | price_j | Prix unitaire du produit associé au j-th article de commande. S'il n'est pas spécifié, il sera calculé d'après les valeurs définies dans HCL Commerce. |
N |
DataArea/Order/OrderItem[j]/OrderItemCharges/ |
chaîne | currency_j | Devise dans laquelle est exprimé le prix unitaire. Requis si le prix unitaire du produit est spécifié. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo/ShippingAddress |
chaîne | address1_j | Ligne 1 de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo/ShippingAddress |
chaîne | address2_j | Ligne 2 de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo/ShippingAddress |
chaîne | address3_j | Ligne 3 de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | city_j | Zone Ville de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo/ShippingAddress |
chaîne | state_j | Zone Etat/Province de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | country_j | Zone Pays de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | zipCode_j | Zone Code postal de l'adresse de livraison du j-th article de commande. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo/ShippingModeID |
int | shipModeId_j | ID HCL Commerce du mode d'expédition associé au j-th article de commande. A défaut d'être spécifié, il s'agira du mode par défaut du magasin. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
long | shipChargTypeId_j |
HCL Commerce du type de frais de port associé au j-th article de commande, si applicable. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | shipCarrAccntNum_j |
Le numéro de compte du transporteur du mode d'expédition, si applicable. | N |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
double | adjustmentPercentageValue |
Pourcentage d'ajustement des frais de port, si applicable. | N |
* Les préfixes d'espace de noms sont omis pour simplifier la présentation.
Exemples
- Exemple de BOD ProcessOrder 1 - validation et tarification d'une commande originaire de HCL Commerce
- Exemple de BOD ProcessOrder 2 - validation et tarification d'une commande non originaire de HCL Commerce
- Exemple de BOD ProcessOrder 3 - validation et tarification d'une commande avec prix forcés (remplacements de prix)
Réponse
Les réponses de ce service Web entrant ont la forme de documents BOD AcknowledgeOrder. Elles contiennent les informations suivantes :
| XPath* | Type | Description |
|---|---|---|
DataArea/Order/OrderHeader/OrderIdentifier/OrderID |
long | HCL Commerce ID de la commande, si applicable. |
DataArea/Order/OrderHeader/OrderIdentifier/ExternalOrderID |
chaîne | ID externe de la commande, s'il a été spécifié dans la demande. |
DataArea/Order/OrderHeader/OrderIdentifier/StoreID |
int | HCL Commerce ID du magasin sous lequel la commande a été traitée. |
DataArea/Order/OrderHeader/OrderReferences |
long | HCL Commerce ID de l'organisation acheteuse. |
DataArea/Order/OrderHeader/OrderReferences |
chaîne | Nom distinctif (DN) de l'organisation acheteuse. |
DataArea/Order/OrderHeader/OrderReferences/CustomerIdentifier/UniqueID |
long | HCL Commerce ID utilisateur du client qui a passé la commande. |
DataArea/Order/OrderHeader/OrderReferences |
chaîne | Nom distinctif (DN) du client qui a passé la commande. |
DataArea/Order/OrderHeader/OrderCharges/TotalProductPrice |
decimal | Prix total de la commande avant ajustements et application des frais de port et des taxes. |
DataArea/Order/OrderHeader/OrderCharges/TotalProductPrice/@currency |
chaîne | Devise dans laquelle est exprimé le prix total de la commande. |
DataArea/Order/OrderHeader/OrderCharges/TotalAdjustment |
decimal | Total des ajustements de la commande. |
DataArea/Order/OrderHeader/OrderCharges/TotalAdjustment/@currency |
chaîne | Devise dans laquelle est exprimé le total des ajustements. |
DataArea/Order/OrderHeader/OrderCharges/TotalShippingCharge |
decimal | Total des frais de port de la commande. |
DataArea/Order/OrderHeader/OrderCharges/TotalShippingCharge/@currency |
chaîne | Devise dans laquelle est exprimé le total des frais de port. |
DataArea/Order/OrderHeader/OrderCharges/TotalSalesTax |
decimal | Total des taxes sur la vente (ou TVA) de la commande. |
DataArea/Order/OrderHeader/OrderCharges/TotalSalesTax/@currency |
chaîne | Devise dans laquelle est exprimé le total des taxes sur la vente (ou TVA). |
DataArea/Order/OrderHeader/OrderCharges/TotalShippingTax |
decimal | Total de la taxe afférente au transport de la commande. |
DataArea/Order/OrderHeader/OrderCharges/TotalShippingTax/@currency |
chaîne | Devise dans laquelle est exprimé le total de la taxe afférente au transport. |
DataArea/Order/OrderHeader/OrderPaymentInfo/PromotionCode[i] |
chaîne | Codes de promotion qui ont été appliqués à la commande. |
DataArea/Order/OrderItem[j]/OrderItemIdentifier/OrderItemID |
long | ID HCL Commerce de l'article de commande j-th. |
DataArea/Order/OrderItem[j]/OrderItemIdentifier/ExternalOrderItemID |
chaîne | ID externe du j-th article de commande, s'il a été spécifié dans la requête. |
DataArea/Order/OrderItem[j]/ProductIdentifier/CatalogEntryID |
long | ID d'entrée de catalogue HCL Commerce du produit associé au j-th article de commande. |
DataArea/Order/OrderItem[j]/ProductIdentifier/SKU |
chaîne | SKU du produit associé au j-th article de commande. |
DataArea/Order/OrderItem[j]/Quantity |
double | Valeur de quantité du j-th article de commande. |
DataArea/Order/OrderItem[j]/Quantity/@uom |
chaîne | Unité de mesure de la valeur de quantité ; par exemple, "C62" pour l'absence d'unité. Voir Unités de quantité. |
DataArea/Order/OrderItem[j]/OrderItemCharges/UnitPrice/Price |
decimal | Prix unitaire du produit associé au j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges |
chaîne | Devise dans laquelle est exprimé le prix unitaire. |
DataArea/Order/OrderItem[j]/OrderItemCharges/UnitPrice/Quantity |
double | Valeur de quantité représentant une seule unité dans le prix unitaire. |
DataArea/Order/OrderItem[j]/OrderItemCharges |
chaîne | Unité de mesure de la valeur de quantité. |
DataArea/Order/OrderItem[j]/OrderItemCharges/PriceOverride |
boolean | True si le prix unitaire du j-th article de commande n'est pas calculé d'après les valeurs définies dans HCL Commerce, false dans le cas contraire. |
DataArea/Order/OrderItem[j]/OrderItemCharges/FreeGift |
boolean | True si le j-th article de commande est gratuit (offert en cadeau), false dans le cas contraire. |
DataArea/Order/OrderItem[j]/OrderItemCharges/OrderItemPrice |
decimal | Prix total du j-th article de commande avant ajustements et application des frais de port et des taxes. |
DataArea/Order/OrderItem[j]/OrderItemCharges |
chaîne | Devise dans laquelle est exprimé le prix de l'article de commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges/Adjustment[k]/Type |
Chaîne | Type d'ajustement du k-th ajustement appliqué au j-th article de commande ; par exemple, "Bon de réduction", "Remise", "Majoration". |
DataArea/Order/OrderItem[j]/OrderItemCharges/Adjustment[k]/Code |
Chaîne | Code d'ajustement du k-th ajustement appliqué au j-th article de commande. Correspond au nom interne du code de bon de réduction, du code de promotion, du code de majoration, etc. dans HCL Commerce. |
DataArea/Order/OrderItem[j]/OrderItemCharges |
Chaîne | Description externe du k-th ajustement appliqué au j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges/Adjustment[k] |
int | Langue de la description. |
DataArea/Order/OrderItem[j]/OrderItemCharges/Adjustment[k]/Amount |
decimal | Montant du k-th ajustement appliqué au j-th article de commande. Il est positif dans le cas d'une majoration, négatif dans le cas d'une réduction. |
DataArea/Order/OrderItem[j]/OrderItemCharges/Adjustment[k] |
chaîne | Devise dans laquelle est exprimé le montant de l'ajustement. |
DataArea/Order/OrderItem[j]/OrderItemCharges |
chaîne | Niveau d'affichage du k-th ajustement appliqué au j-th article de commande. "Order" pour un ajustement au niveau de la commande, "OrderItem" pour un ajustement au niveau d'un article de commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges/ShippingCharge |
decimal | Total des frais de port de la commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges/ShippingCharge/@currency |
chaîne | Devise dans laquelle est exprimé le total des frais de port. |
DataArea/Order/OrderItem[j]/OrderItemCharges/SalesTax |
decimal | Total des taxes sur la vente (ou TVA) de la commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges/SalesTax/@currency |
chaîne | Devise dans laquelle est exprimé le total des taxes sur la vente (ou TVA). |
DataArea/Order/OrderItem[j]/OrderItemCharges/ShippingTax |
decimal | Total de la taxe afférente au transport de la commande. |
DataArea/Order/OrderItem[j]/OrderItemCharges/ShippingTax/@currency |
chaîne | Devise dans laquelle est exprimé le total de la taxe afférente au transport. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Ligne 1 de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Ligne 2 de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Ligne 3 de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Zone Ville de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Zone Etat/Province de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Zone Pays de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Zone Code postal de l'adresse de livraison du j-th article de commande. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo/ShippingModeID |
int | ID HCL Commerce du mode d'expédition associé au j-th article de commande. A défaut d'être spécifié, il s'agira du mode par défaut du magasin. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
long | HCL Commerce du type de frais de port associé au j-th article de commande, si applicable. |
DataArea/Order/OrderItem[j]/OrderItemShippingInfo |
chaîne | Le numéro de compte du transporteur du mode d'expédition, si applicable. |
* Les préfixes d'espace de noms sont omis pour simplifier la présentation.
Exemples
- Exemple de BOD AcknowledgeOrder 1 - réponse consécutive au traitement réussi (validation et tarification) d'une commande originaire de HCL Commerce
- Exemple de BOD AcknowledgeOrder 2 - réponse consécutive au traitement réussi (validation et tarification) d'une commande non originaire de HCL Commerce
- Exemple de BOD AcknowledgeOrder 3 - réponse consécutive au traitement réussi (validation et tarification) d'une commande avec prix forcés (remplacements de prix)
Exceptions
Toutes les exceptions sont renvoyées sous forme de documents BOD AcknowledgeOrder avec un élément ResponseCriteria sous le verbe Acknowledge. Elles contiennent les informations suivantes :
| XPath* | Type | Description |
|---|---|---|
DataArea/Acknowledge/ResponseCriteria/ChangeStatus/Code |
chaîne | L'identificateur de corrélation. Peut être utilisé pour identifier de manière unique une exception dans les journaux du serveur. |
DataArea/Acknowledge/ResponseCriteria |
chaîne | Le code raison, qui est soit un code d'erreur système de HCL Commerce s'il est disponible, soit la clé de message EC plus un code d'erreur secondaire en option, si le code d'erreur système de HCL Commerce n'est pas disponible (ce qui est généralement le cas lorsque l'exception est émise par l'application). |
DataArea/Acknowledge/ResponseCriteria/ChangeStatus/Reason |
chaîne | Le message de l'exception. |
* Les préfixes d'espace de noms sont omis pour simplifier la présentation.
Exemples
- Exemple de BOD AcknowledgeOrder 4 - réponse avec exception lorsqu'il manque un paramètre obligatoire
- Exemple de BOD AcknowledgeOrder 5 - réponse avec exception lorsqu'il y a échec à la validation de l'autorisation sur un produit