Stockage des données de règle de tarification et flux de processus
Si vous personnalisez des règles de tarification, vous devez savoir quelles tables de base de données stockent les données sur les règles de tarification. De plus, vous devez comprendre ce qui se produit en coulisse lorsque votre magasin affiche un prix généré par une règle de tarification. Ces connaissances vous permettront de déterminer ce qu'il vous faut créer ou modifier pour prendre en charge les conditions et les actions personnalisées dans les règles de tarification.
Emplacement de stockage des règles de tarification
Les professionnels créent une règle de tarification à l'aide du générateur de règle de tarification dans l'outil Filtre de catalogue et tarification du Management Center. L'illustration ci-dessous indique les bases de données mises à jour lorsqu'un professionnel sauvegarde une règle de tarification dans le générateur de règle de tarification :
Arrière-plan d'une règle de tarification utilisée sur la boutique en ligne
Lorsqu'un client visualise une page du magasin qui affiche des prix, HCL Commerce utilise la règle de tarification pour définir le prix dont le client peut bénéficier. Dans une règle de tarification standard, HCL Commerce évalue les conditions et effectue les actions dans la règle de tarification :- Les éléments de condition sont utilisés dans les règles de tarification pour affecter une condition à un chemin. Par exemple, un élément Condition de catalogue peut nécessiter que l'entrée de catalogue tarifée se trouve dans la catégorie Pneus. Si la condition est remplie, le chemin contenant la condition est utilisé pour définir la tarification. Les éléments Condition client et Condition de comparaison représentent d'autres exemples de condition. Pour plus d'informations sur les conditions, voir Conditions dans les règles de tarification.
- Les éléments d'action sont utilisés dans les règles de tarification pour fournir les instructions suivies par WebSphere Commerce pour définir les prix. Les actions Obtenir un prix à partir de la liste de prix et Calculer le prix en sont des exemples. Pour plus d'informations sur les actions, voir Actions dans les règles de tarification.
- Le chemin supérieur définit les prix des pneus en extrayant un prix de la liste de prix Tarifs pneumatiques et en majorant ce prix de 10 %.
- Le chemin inférieur définit les prix de toutes les autres entrées de catalogue en extrayant un prix de la liste Prix de vente.

Si le client ouvre une page du magasin qui affiche un pneu, les conditions et les éléments du chemin supérieur se présentent comme suit :
- 1 L'élément Condition de catalogue vérifie si l'entrée de catalogue correspond à un pneu. Si oui, le chemin supérieur est utilisé pour définir un prix pour le pneu.
- 2 L'action Obtenir un prix à partir de la liste de prix extrait le prix du pneu de la liste de prix Tarifs pneumatiques et transmet ce prix à l'action suivante du flux.
- 3 L'action suivante est Calculer le prix. Cette action majore le prix de 10 %. Comme il s'agit de la dernière action sur le chemin supérieur, le prix majoré est affiché pour le pneu sur la page du magasin.
Notez que si le client ouvre une page de magasin qui affiche une entrée de catalogue ne correspondant pas à un pneu, le chemin inférieur est utilisé pour la tarification.
L'illustration suivante montre ce qui se passe en arrière-plan lorsqu'une règle de tarification avec des conditions et des actions telles que celles de l'exemple précédent est utilisée sur la boutique en ligne (seul le chemin supérieur est utilisé dans cette explication) :

Pour chaque étape de l'illustration, les remarques suivantes expliquent comment le moteur de règle de tarification traite la règle de tarification pour afficher un prix pour une entrée de catalogue.
- 1 Lorsqu'un client qui effectue des achats sur la vitrine consulte une page du magasin qui affiche des prix pour une entrée de catalogue :
- Pour afficher le prix de vente (prix dont bénéficie le client), WebSphere Commerce utilise com.ibm.commerce.catalog.beans.CatalogEntryDataBean. Ce bean de données appelle l'implémentation de la classe com.ibm.commerce.price.commands.GetContractUnitPriceCmd, qui appelle le moteur de règle de tarification en :
- Transmettant les contrats éligibles.
- Extrayant la règle de tarification du prix de vente affecté à chaque contrat applicable.
- Déterminant le ou les prix finaux à afficher après l'évaluation des règles de tarification applicables.
- Pour afficher le prix catalogue (prix à des fins d'affichage uniquement), WebSphere Commerce appelle le service Get DisplayPrice, qui appelle le moteur de règle de tarification en :
- Transmettant directement le nom de la règle Prix catalogue.
- Déterminant le prix final à afficher après l'évaluation de la règle Prix catalogue.
- Pour afficher le prix de vente (prix dont bénéficie le client), WebSphere Commerce utilise com.ibm.commerce.catalog.beans.CatalogEntryDataBean. Ce bean de données appelle l'implémentation de la classe com.ibm.commerce.price.commands.GetContractUnitPriceCmd, qui appelle le moteur de règle de tarification en :
- 2 Si la règle de tarification contient un élément de condition, les services de tarification appellent la commande de tâche de condition définie dans la définition de modèle d'élément de règle de tarification associée. Les services de tarification transmettent à la commande de tâche tous les paramètres spécifiés dans le modèle d'élément de règle de tarification associé. Généralement, les professionnels définissent ces paramètres depuis l'interface utilisateur et ceux-ci sont stockés dans la table PRELEMENTATTR sous forme de paires nom-valeur ; toutefois, ces paramètres peuvent également provenir de la spécification dans le modèle d'élément de règle de tarification. Ces paramètres d'élément, ainsi que les éventuels paramètres du contexte métier, tels que storeId et la devise, sont transmis à la commande de tâche. La commande de tâche utilise ces informations pour déterminer si la condition est remplie. Si ce n'est pas le cas, la commande de tâche renvoie la valeur false et HCL Commerce ignore ce chemin et passe au chemin suivant dans la règle de tarification (prochain chemin non affiché).
- 3 Pour effectuer la première action de la règle de tarification, les services de tarification appellent la commande de tâche d'action définie dans la définition de modèle d'élément de règle de tarification associée. Les services de tarification transmettent à la commande de tâche tous les paramètres spécifiés dans la définition de modèle d'élément de règle de tarification associée. Généralement, les professionnels définissent ces paramètres depuis l'interface utilisateur et ceux-ci sont stockés dans la table PRELEMENTATTR sous forme de paires nom-valeur ; toutefois, ces paramètres peuvent également provenir de la spécification dans la définition de modèle d'élément de règle de tarification. Ces paramètres d'élément, ainsi que les éventuels paramètres du contexte métier, tels que storeId et la devise, sont transmis à la commande de tâche. La commande de tâche utilise ces informations pour effectuer l'action dans la règle de tarification.
- 4 Pour effectuer des actions supplémentaires dans la règle de tarification, les services de tarification suivent le même processus que décrit dans 3. Pour transmettre la sortie de prix de l'action précédente à l'action suivante du flux, le moteur de règle de tarification définit le prix de sortie comme une variable appelée prOutputObject. Cette variable est l'un des paramètres de la méthode
processElement. - 5
- Pour le prix de vente, HCL Commerce renvoie le prix affecté par la règle de tarification au contrat généré au service Get EntitledPrice. Ce service étant appelé à partir de CatalogEntryDataBean, le bean de données extrait le prix renvoyé et le transmet à la page JSP pour l'afficher.
- Pour le prix catalogue, WebSphere Commerce renvoie le prix généré par la règle de prix de catalogue au service HCL Commerce. Ce service étant appelé directement à partir de la page JSP, il analyse la syntaxe du prix à partir de l'objet de données logique renvoyé et affiche directement le prix sur la page.