HCL Commerce Enterprise

Paramètres de modèle d'élément de règle de tarification

Les paramètres de modèle d'élément de règle de tarification spécifient les portions de données dont une commande de tâche d'élément de règle de tarification a besoin pour effectuer sa fonction. Les services de tarification transmettent les données à la commande de tâche lorsqu'ils traitent une condition ou une action dans une règle de tarification.

Les paramètres de modèle d'élément sont spécifiés dans la définition de modèle d'élément de règle de tarification correspondante. Dans l'exemple suivant d'un élément de condition personnalisé qui vérifie quand un client s'est enregistré auprès du magasin, les deux lignes de code en gras commençant par <Argument sont des paramètres de modèle d'élément :
<FlowElementImplementation type = "RegistrationTimeCondition">
    <Implementation invocationType = "TaskCommand">
        <Class name = "com.mycompany.commerce.price.rule.commands.element.RegistrationTimeConditionElementCmd">
            <Argument name = "registrationTime" value = "PRICERULE_registrationTime"/>
            <Argument name = "registrationTimeOperator" value = "PRICERULE_registrationTimeOperator"/>
        </Class>
    </Implementation>
</FlowElementImplementation>
  • Le paramètre registrationTime représente le jour d'enregistrement qu'un professionnel spécifie pour cet élément dans l'interface utilisateur, au format YYYY/MM/DD. Ce paramètre est comparé au jour d'enregistrement réel d'un client donné.
  • Le paramètre registrationTimeOperator représente l'opérateur à utiliser lors de la comparaison de deux valeurs de jour d'enregistrement. Par exemple :
    • Le jour d'enregistrement réel est antérieur au jour d'enregistrement spécifié par le professionnel.
    • Le jour d'enregistrement réel est ultérieur au jour d'enregistrement spécifié par le professionnel.
    • Le jour d'enregistrement réel est égal au jour d'enregistrement spécifié par le professionnel.
Chaque définition de modèle peut contenir zéro, un ou plusieurs paramètres de modèle d'élément. Ces paramètres sont généralement mappés aux données qu'un professionnel saisit dans l'interface utilisateur, mais vous pouvez également spécifier les données directement dans la définition de modèle.

Format des paramètres de modèle d'élément de règle de tarification

Ce format dépend de la provenance des données. Vous disposez de deux options :

  1. Les données émanent de l'interface utilisateur.
    Si les données requises par la commande de tâche sont saisies par un utilisateur lors la définition de la condition ou de l'action, leur format est similaire à ceci :
    <Argument name="paramName" value="PRICERULE_paramName" />

    Toutes les valeurs de paramètre provenant de l'interface utilisateur sont précédées du préfixe : PRICERULE_. Voici un exemple : dans le cas présent, il concerne une condition qui détermine si le client s'est enregistré à une date spécifique, avant cette date ou après :

    <Argument name = "registrationTime" value = "PRICERULE_registrationTime"/>

    Lorsqu'un utilisateur entre des données sur une condition ou une action utilisée dans une règle de tarification, puis les sauvegarde, les paires nom-valeur de chaque paramètre de modèle d'élément de règle de tarification sont sauvegardées dans la table PRELEMENTATTR. Ci-dessous figure un exemple de ligne dans la table correspondant à une condition pour laquelle PRELEMENT_ID est égal à 1000 :

    Exemple de contenu de table DMELEMENTNVP
    PRELEMENT_ID NAME VALUE
    1000 "registrationTime" 2010-07-01 00:00:00

    Si la règle est utilisée sur la boutique en ligne pour définir la tarification :

    • Les services de tarification recherchent l'entrée paramName dans la table paramName et remplacent la valeur PRICERULE_paramName dans le XML d'exécution par la valeur correspondante.
    • Si paramName est introuvable dans la table PRELEMENTATTR, sa valeur est définie comme une chaîne vide, auquel cas ce paramètre est ignoré.
  2. Les données sont spécifiées directement dans la définition du modèle.

    Dans le cas de certaines conditions et actions, la commande de tâche requiert des données qui ne sont pas saisies par l'utilisateur professionnel. Dans ce cas, le paramètre value n'est pas précédé du préfixe PRICERULE_.

    Par exemple, si une commande de tâche doit vérifier si un utilisateur est enregistré, le paramètre suivant peut transmettre ces informations à la commande de tâche :

    <Argument name="userType" value="R" />

Paramètres des listes capturées dans les objets de grille

Pour certains éléments de règle de tarification, les professionnels peuvent spécifier des listes d'éléments, comme des catégories, des entrées de catalogue ou des groupes de membres. Par exemple, un professionnel peut spécifier plusieurs catégories pour l'élément Condition de catalogue. Dans la vue Propriétés de l'élément de règle de tarification, les listes sont capturées à l'aide d'un objet grille. Lorsque la liste est rendue persistante dans la table PRELEMENTATTR, chaque ligne de la grille correspond à une ligne de la table PRELEMENTATTR et chaque ligne se réfère au même nom de propriété. Par exemple :

Exemple de contenu de table PRELEMENTATTR pour un objet grille
PRELEMENT_ID NAME VALUE
1000 "categoryIdList" "10101"
1000 "categoryIdList" "10102"
1000 "categoryIdList" "10103"

Lorsque ce type de paramètre est inclus dans une définition de modèle d'élément de règle de tarification, le paramètre ne doit spécifier qu'un seul élément. Par exemple, le paramètre dans l'exemple précédent est similaire à ceci :

<Argument name="categoryIdList" value="PRICERULE_categoryIdList"/>

Pour extraire la liste depuis l'interface utilisateur, la commande de tâche de l'élément de règle de tarification correspondant doit appeler la méthode getElementParameters. Cette méthode renvoie une liste de toutes les valeurs, séparées par des virgules, de la table PRELEMENTATTR. Pour l'exemple précédent, le code getElementParameters().get("categoryIdList") renvoie 10101,10102,10103.

Paramètres communs utilisés dans les éléments de règle de tarification

Plusieurs paramètres sont déjà définis pour les conditions et actions livrées avec le Centre de gestion. Si vous créez une nouvelle condition ou une nouvelle action, vous pouvez utiliser les paramètres définis ici afin d'envoyer des données depuis l'interface utilisateur à la commande de tâche, ou bien créer les vôtres.

Paramètre Données qu'il spécifie ou valeurs valides
PRICERULE_priceListId ID liste de prix
PRICERULE_scope Valeurs valides :
catalogEntries
Cet élément est applicable à des entrées de catalogue spécifiques.
Catégories
Cet élément est applicable à des entrées de catalogue dans des catégories spécifiques.
catalogFilter
Cet élément est applicable à un filtre de catalogue spécifique.
PRICERULE_specifiedInTable Valeurs valides :
oui
L'entrée de catalogue tarifée doit se trouver dans une liste d'entrées de catalogue spécifiée.
non
L'entrée de catalogue tarifée ne doit pas se trouver dans une liste d'entrées de catalogue spécifiée.
PRICERULE_inCategories Valeurs valides :
oui
L'entrée de catalogue tarifée doit se trouver dans une liste de catégories spécifiée.
non
L'entrée de catalogue tarifée ne doit pas se trouver dans une liste de catégories spécifiée.
PRICERULE_catalogEntryIdList ID entrée de catalogue (par exemple, un produit ou une unité de stockage)
PRICERULE_categoryIdList ID catégorie
PRICERULE_includedInCatalogFilters Valeurs valides :
oui
L'entrée de catalogue tarifée doit se trouver dans un filtre de catalogue spécifié.
non
L'entrée de catalogue tarifée ne doit pas se trouver dans un filtre de catalogue spécifié.
PRICERULE_calculationType Valeurs valides :
markUp
Majore le prix d'entrée.
markDown
Minore le prix d'entrée.
usePriceEquation
Utilisez une équation de prix pour calculer le prix.
PRICERULE_markUpPercentage Pourcentage de majoration du prix d'entrée.
PRICERULE_markDownPercentage Pourcentage de minoration du prix d'entrée.
PRICERULE_priceEquationId ID équation de prix
PRICERULE_priceRuleId ID règle de tarification.
PRICERULE_inputOperandType Valeurs valides :
PriceConstant
Cet opérande est une constante de prix.
PriceList
Cet opérande est une liste de prix.
PriceEquation
Cet opérande est une équation de prix.
Variable
Cet opérande est le prix transmis à cet élément.
PRICERULE_inputOperandReferenceId ID référence (par exemple, ID de la constante de prix)
PRICERULE_operator Opérateur ne permettant de comparer que des nombres (par exemple, il ne peut pas être utilisé pour comparer des dates ou des heures). Valeurs valides :
=
égale à
!=
différent de
>
supérieur à
>=
supérieur ou égal à
<
less than
< =
inférieur ou égal à
PRICERULE_comparisonOperandType
PriceConstant
Cet opérande est une constante de prix.
PriceList
Cet opérande est une liste de prix.
PriceEquation
Cet opérande est une équation de prix.
Numéro
Cet opérande est un nombre entré par l'utilisateur.
PRICERULE_comparisonOperandReferenceId ID référence (par exemple, ID de la constante de prix)
PRICERULE_numericalValue Valeur du nombre entrée par l'utilisateur.
PRICERULE_coordinatorType Valeurs valides :
lowestPrice
Utilisez le chemin avec le prix le plus bas.
highestPrice
Utilisez le chemin avec le prix le plus élevé.
firstValidPath
Utilisez le premier chemin qui renvoie un prix valide.
PRICERULE_pattern Modèle d'arrondi à utiliser pour arrondir les prix.
PRICERULE_definingCurrencyCodes Devises auxquelles le modèle d'arrondi s'applique.
PRICERULE_scope Valeurs valides :
memberGroups
Cet élément est applicable à des groupes de membres spécifiques.
les organisations
Cet élément est applicable à des organisations spécifiques.
PRICERULE_targetMemberGroups
inAny
Le client doit appartenir à l'un des groupes de membres spécifiés.
inAll
Le client doit appartenir à tous les groupes de membres spécifiés.
notIn
Le client ne doit pas appartenir à l'un des groupes de membres spécifiés.
PRICERULE_targetOrganizations
inAny
Le client doit appartenir à l'une des organisations spécifiées.
inAll
Le client doit appartenir à toutes les organisations spécifiées.
notIn
Le client ne doit pas appartenir à l'une des organisations spécifiées.
PRICERULE_memberGroupIdentifier ID des groupes de membres spécifiés.
PRICERULE_organizationIdentifier ID des organisations spécifiées.
PRICERULE_inPriceLists
oui
L'entrée de catalogue tarifée doit se trouver dans une liste de prix spécifiée.
non
L'entrée de catalogue tarifée ne doit pas se trouver dans une liste de prix spécifiée.