HCL Commerce Enterprise

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

Lancez une requête sur la base de données de HCL Commerce afin d'obtenir les valeurs suivantes, relatives à la règle de tarification et au contrat :
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

  1. Pour exporter le contrat auquel vous souhaitez affecter la règle de tarification, entrez l'URL suivante en utilisant les données storeId et contractId obtenues précédemment :
  2. Ouvrez le fichier XML du contrat exporté dans un éditeur.
  3. 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>
  4. 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_value par la donnée priceRuleId de la règle de tarification que vous souhaitez affecter.
    • Si vous n'avez pas trouvé les lignes de code de l'étape 3 :
      1. Localisez l'élément </BuyerContract>.
      2. Copiez et collez les trois lignes de code de l'étape 3 juste au-dessus de l'élément </BuyerContract>.
      3. Remplacez la variable priceRuleId_value par la donnée priceRuleId de la règle de tarification que vous souhaitez affecter ; par exemple, 10001.
  5. Recherchez la chaîne suivante :

    minorVersionNumber

  6. Augmentez de 1 la valeur de minorVersionNumber.
  7. 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é priceRuleBeginDate et/ou une propriété priceRuleExpiryDate dans 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 priceRuleBeginDate ne peut pas être postérieure à la valeur priceRuleExpiryDate.
    • La valeur priceRuleExpiryDate ne peut pas être antérieure à la valeur contractStartTime.
    • La valeur priceRuleExpiryDate ne peut pas être antérieure à la valeur priceRuleBeginDate.
    • La règle de tarification ne peut pas expirer, c'est-à-dire que la valeur de priceRuleExpiryDate ne 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).
  8. Enregistrez et fermez le fichier XML du contrat.
  9. Importez le contrat dans HCL Commerce en indiquant l'URL suivant :

Résultats

La règle de tarification est à présent affectée au contrat. C'est donc elle qui calcule et affiche les prix pour les clients éligibles à ce contrat.