Affectation d'une règle de tarification par modification du code XML du contrat
La base du contrat par défaut du magasin de ressources de vitrine d'un site de commerce B2C n'est pas consultable dans HCL Commerce Accelerator. Vous devez donc éditer le code XML du contrat si vous souhaitez changer le nom de la règle de tarification affectée. Vous pouvez appliquer cette procédure pour affecter des règles de tarification à d'autres types de contrat sans passer par HCL Commerce Accelerator. Vous pouvez également l'utiliser pour spécifier les dates d'entrée en vigueur et d'expiration des règles de tarification, ainsi que pour affecter différentes règles à différentes périodes de date à date.
Au besoin, faites-vous aider par un administrateur du site, car cette procédure nécessite d'interroger des tables de la base de données et d'éditer des fichiers XML.
Avant de commencer
- priceRuleId
- L'ID de la règle de tarification que vous souhaitez affecter. Cette règle doit appartenir au magasin dont fait partie le contrat ou au magasin de ressources de vitrine associé (dans le cas d'un site étendu).Pour obtenir la donnée
priceRuleId, exécutez l'instruction SQL suivante :select * from pricerule; - storeId
- L'ID du magasin dont fait partie le contrat. Pour obtenir la donnée
storeId, exécutez l'instruction SQL suivante :select * from storeent; - contractId
- L'ID du contrat que vous souhaitez exporter.Pour obtenir la donnée
contractId, exécutez l'instruction SQL suivante :select * from contract;
Procédure
-
Pour exporter le contrat auquel vous souhaitez affecter la règle de tarification, entrez l'URL suivante en utilisant les données
storeIdetcontractIdobtenues précédemment : - Ouvrez le fichier XML du contrat exporté dans un éditeur.
-
Pour déterminer si une règle de tarification est déjà affectée au contrat, recherchez des lignes de code similaires aux suivantes :
<TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "priceRuleId_value"/> </TermCondition> -
Effectuez l'une des étapes suivantes, selon les résultats de l'étape précédente :
- Si vous avez trouvé les lignes de code présentées à l'étape 3, remplacez la variable
priceRuleId_valuepar la donnéepriceRuleIdde la règle de tarification que vous souhaitez affecter. - Si vous n'avez pas trouvé les lignes de code de l'étape 3 :
- Localisez l'élément
</BuyerContract>. - Copiez et collez les trois lignes de code de l'étape 3 juste au-dessus de l'élément
</BuyerContract>. - Remplacez la variable
priceRuleId_valuepar la donnéepriceRuleIdde la règle de tarification que vous souhaitez affecter ; par exemple,10001.
- Localisez l'élément
- Si vous avez trouvé les lignes de code présentées à l'étape 3, remplacez la variable
-
Recherchez la chaîne suivante :
minorVersionNumber -
Augmentez de 1 la valeur de
minorVersionNumber. - Facultatif :
Lorsque vous éditez le code XML d'un contrat, vous pouvez en profiter pour associer des dates d'entrée en vigueur et d'expiration aux règles de tarification. Pour cela, ajoutez une propriété
priceRuleBeginDateet/ou une propriétépriceRuleExpiryDatedans l'élément XML<TermCondition>de la règle concernée, comme dans l'exemple suivant :<TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "11111" /> <Property name = "priceRuleBeginDate" value = "2010-12-01 00:00:00.0" /> <Property name = "priceRuleExpiryDate" value = "2010-12-31 00:00:00.0" /> </TermCondition>Vous pouvez aussi affecter plusieurs règles de tarification au même contrat en spécifiant des dates d'entrée en vigueur et d'expiration adaptées. Veillez, dans ce cas, à définir des périodes sans chevauchement, car à tout moment, il ne doit exister qu'une seule règle de tarification en vigueur dans un contrat. L'exemple suivant illustre cette technique en associant trois règles différentes à trois périodes différentes :
<TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "11111" /> <Property name = "priceRuleExpiryDate" value = "2011-01-01 00:00:00.0" /> </TermCondition> <TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "22222" /> <Property name = "priceRuleBeginDate" value = "2011-01-01 00:00:00.0" /> <Property name = "priceRuleExpiryDate" value = "2011-02-01 00:00:00.0" /> </TermCondition> <TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "33333" /> <Property name = "priceRuleBeginDate" value = "2011-02-01 00:00:00.0" /> </TermCondition>Dans l'exemple précédent :
- La règle de tarification dont l'ID est
"11111"expire le 1er janvier 2011. - La règle de tarification dont l'ID est
"22222"entre en vigueur le 1er janvier 2011 et expire le 1er février 2011. - La règle de tarification dont l'ID est
"33333"entre en vigueur le 1er février 2011 et n'a pas de date d'expiration.
Assurez-vous que votre code XML répond aux exigences suivantes, sous peine d'échec à la réimportation du contrat :- La valeur
priceRuleBeginDatene peut pas être postérieure à la valeurpriceRuleExpiryDate. - La valeur
priceRuleExpiryDatene peut pas être antérieure à la valeurcontractStartTime. - La valeur
priceRuleExpiryDatene peut pas être antérieure à la valeurpriceRuleBeginDate. - La règle de tarification ne peut pas expirer, c'est-à-dire que la valeur de
priceRuleExpiryDatene peut pas être postérieure à la date courante. - Si vous spécifiez plusieurs règles de tarification, comme dans l'exemple qui précède, les périodes définies ne doivent pas se chevaucher. Des écarts peuvent exister entre les périodes, mais dans ce cas, aucune information de prix ne sera disponible et les entrées de catalogue ne pourront pas être achetées par les clients (sauf si, durant ces écarts, le contrat hérite d'une règle de tarification appliquée à un autre contrat).
- La règle de tarification dont l'ID est
- Enregistrez et fermez le fichier XML du contrat.
- Importez le contrat dans HCL Commerce en indiquant l'URL suivant :