Stockage et gestion des données de promotion
Si vous créez un nouveau type de promotion destiné au Management Center, vous devez comprendre les interactions du Management Center avec le composant de promotion et comment les promotions sont stockées dans la base de données.
Code XML de promotion
Il existe deux types de code XML de promotion :- Le code XML de création de promotion contient les données correspondantes saisies par les professionnels dans l'interface utilisateur de l'outil Promotions lors de la création de promotions. Le code XML de promotion a été fourni avec le Feature Pack 4 du Management Center Version 6 pour faciliter la personnalisation des promotions.
- Le serveur utilise code XML d'exécution de promotion afin d'évaluer les promotions pendant le flux des achats. Le code XML de promotion n'a pas été modifié par rapport aux précédents feature packs du Management Center.
Lorsqu'un utilisateur professionnel active une promotion, le processus suivant transforme le code XML de création en code XML d'exécution :
- La logique d'activation de promotion génère le code XML de création de promotion à partir des données stockées dans les tables de création de promotion du Management Center. Ces tables contiennent les saisies de l'utilisateur concernant la promotion.
- Un ensemble de modèles XSLT transforme le code XML de création de promotion en code XML d'exécution, lequel est requis par le moteur de promotion pour évaluer les promotions. La transformation implique plusieurs étapes :
- Les modèles XSLT transforment le code XML de création de promotion pour créer quatre sections du code XML d'exécution de promotion : la section basePromotion, la section purchaseCondition , la section CustomCondition et la section TargetingCondition.
- Le processus de transformation utilise l'interface fromXML afin d'initialiser un objet de promotion.
- Le processus de transformation utilise l'interface toXML afin de générer le code XML d'exécution de promotion et de le stocker dans la colonne XMLPARAM de la table PX_PROMOTION .
Le diagramme ci-dessous illustre ce processus :

Notez que tant qu'une promotion n'est pas activée, seul du code XML de marqueur d'espace réservé à cet effet est stocké dans la table PX_PROMOTION.
XSLT modèles
Pour ajouter un nouveau type de promotion, les développeurs peuvent concevoir des widgets destinés à recueillir les entrées utilisateur requises et à enregistrer ces données dans les tables de création de promotion. Comme illustré dans le diagramme précédent, les modèles XSLT transforment ensuite le code XML de création de promotion en code XML d'exécution de promotion. Par conséquent, la personnalisation de la prise en charge par le contexte d'exécution d'un nouveau type de promotion requiert uniquement un modèle XSLT personnalisé gérant les widgets de l'interface utilisateur ; les développeurs n'ont pas besoin de modifier le code Java principal pour composer le code XML d'exécution de promotion. De la sorte, il est plus simple de personnaliser les types de promotion du Management Center que de personnaliser ceux de HCL Commerce Accelerator.
Chaque type de promotion défini dans l'outil Promotions du Centre de gestion est configuré pour opérer avec certains modèles XSLT. L'outil Promotions fournit le jeu de modèles XSLT permettant de transformer les types de promotions par défaut. Lorsque vous créez un type de promotion personnalisé, vous devez créer un modèle XSLT personnalisé ; toutefois, vous pouvez copier le contenu d'un modèle XSLT existant dans votre nouveau fichier, puis personnaliser uniquement certaines sections.
Eléments de promotion et variables
Les éléments de promotion et leurs variables permettent à l'outil Promotions du Centre de gestion de gérer les données de création des sections purchaseCondition, customCondition et targetingCondition du code XML d'exécution de promotion dans un cadre générique.
| PX_ELEMENT_ID | PX_PROMOTION_ID | NAME | TYPE | SubType | Parent | Séquence |
|---|---|---|---|---|---|---|
| 1001 | 10101 | Name1001 | PurchaseCondition | UI_PurchaseCondition | NULL | 0 |
| 1002 | 10101 | Name1002 | DiscountRange | UI_DiscountRange | Name1001 | 0 |
| 1003 | 10101 | Name1003 | DiscountRange | UI_DiscountRange | Name1001 | 1 |
| PX_ELEMENTNVP_ID | PX_ELEMENT_ID | NAME | VALUE | Remarque |
|---|---|---|---|---|
| 1000000 | 1001 | Monnaie |
USD |
La devise est USD |
| 1000001 | 1002 | LowerBound |
100 |
Pour la gamme Name1002, le lowerbound=100 |
| 1000002 | 1002 | Percentage |
10 |
Pour la gamme Name1002, le Percentage=10 |
| 1000003 | 1003 | LowerBound |
500 |
Pour la gamme Name1003, le lowerbound=500 |
| 1000004 | 1003 | Percentage |
50 |
Pour la gamme Name1003, le Percentage=50 |
<PurchaseCondition>
<DiscountRange></DiscountRange>
<DiscountRange></DiscountRange>
</PurchaseCondition>Une variable d'élément de promotion décrit la valeur de données facultative associée à un élément de promotion. Lorsqu'un professionnel active une promotion, la logique d'activation de promotion construit le code XML de création de promotion et insère un noeud de données sous le noeud d'élément de promotion approprié, suivi de noeuds de texte construits conformément au nom et à la valeur figurant dans la table PX_ELEMENTNVP pour l'élément. Voici un exemple :<PurchaseCondition>
<Data>
<Currency>USD</Currency>
</Data>
<DiscountRange>
<Data>
<LowerBound>100</LowerBound>
<Percentage>10</Percentage>
</Data>
</DiscountRange>
<DiscountRange>
<Data>
<LowerBound>500</LowerBound>
<Percentage>50</Percentage>
</Data>
</DiscountRange>
</PurchaseCondition>
Types d'éléments prédéfinis
<TargetedProfile>
<CustomerProfileKey>
<ProfileName>Customers who are under 40 years of age</ProfileName>
<OwnerDN>ou=b2c,o=seller organization,o=root organization</OwnerDN>
</CustomerProfileKey>
</TargetedProfile>Afin de simplifier la conception de l'outil Promotions du Centre de gestion et pour améliorer les performances, plusieurs types d'élément prédéfinis permettent la gestion d'entités métier de ce type uniquement à l'aide de la clé primaire (ID). Le service d'activation de promotion utilise ensuite cet ID pour convertir les informations sur l'identificateur externe requises dans le code XML d'exécution de promotion, puis pour ajouter ces informations au code XML de création de promotion comme si elles étaient collectées à partir de l'interface utilisateur. Ces informations d'identificateur externe converties sont insérées dans le noeud de données de l'élément afin d'être disponibles pour une transformation. <TargetingCondition>
<IncludeMemberGroupIdentifier>
<Data>
<Id>8000000000000000551</Id>
<DN>ou=b2c,o=seller organization,o=root organization</DN>
<Name>Registered Customers</Name>
</Data>
</IncludeMemberGroupIdentifier>
<ExcludeMemberGroupIdentifier>
<Data>
<Id>8000000000000000555</Id>
<DN>ou=b2c,o=seller organization,o=root organization</DN>
<Name>Female Customers</Name>
</Data>
</ExcludeMemberGroupIdentifier>
<ExcludeMemberGroupIdentifier>
<Data>
<Id>8000000000000000553</Id>
<DN>ou=b2c,o=seller organization,o=root organization</DN>
<Name>Guest Shoppers</Name>
</Data>
</ExcludeMemberGroupIdentifier>
<IncludeMemberGroupIdentifier>
<Data>
<Id>8000000000000000554</Id>
<DN>ou=b2c,o=seller organization,o=root organization</DN>
<Name>Male Customers</Name>
</Data>
</IncludeMemberGroupIdentifier>
</TargetingCondition>La liste des types d'élément prédéfinis inclut les entrées suivantes. Bien que certains de ces éléments prédéfinis ne soient pas utilisés par les types de promotion par défaut, ils sont fournis pour prendre en charge la personnalisation.- IncludeMemberGroupIdentifier
- Groupe de membres faisant partie d'une condition d'inclusion dans la règle.
- ExcludeMemberGroupIdentifier
- Groupe de membres faisant partie d'une condition d'exclusion dans la règle.
- IncludeCategoryIdentifier
- Catégorie faisant partie d'une condition d'inclusion dans la règle.
- ExcludeCategoryIdentifier
- Catégorie faisant partie d'une condition d'exclusion dans la règle.
- IncludeCatalogEntryIdentifier
- Entrée de catalogue faisant partie d'une condition d'inclusion dans la règle.
- ExcludeCatalogEntryIdentifier
- Entrée de catalogue faisant partie d'une condition d'exclusion dans la règle.
- GiftCatalogEntryIdentifier
- Entrée de catalogue faisant fonction de cadeau offert dans la règle.
- IncludePromotionIdentifier
- Promotion faisant partie d'une condition d'inclusion dans la règle.
- ExcludePromotionIdentifier
- Promotion faisant partie d'une condition d'exclusion dans la règle.
- IncludeShipModeIdentifier
- Mode d'expédition faisant partie d'une condition d'inclusion dans la règle.
- ExcludeShipModeIdentifier
- Mode d'expédition faisant partie d'une condition d'exclusion dans la règle.
- IncludeStoreIdentifier
- Magasin faisant partie d'une condition d'inclusion dans la règle.
- ExcludeStoreIdentifier
- Magasin faisant partie d'une condition d'exclusion dans la règle.
- IncludeUserIdentifier
- Utilisateur faisant partie d'une condition d'inclusion dans la règle. .
- ExcludeUserIdentifier
- Utilisateur faisant partie d'une condition d'exclusion dans la règle.
Idet la valeur appropriée en tant que clé primaire. Dans la mesure du possible, vous devriez utiliser ce type d'éléments prédéfinis. Lorsqu'une promotion est activée, les valeurs d'ID sont aussi utilisées pour compléter les tables CATENCALCD et CATGPCALCD afin de prendre en charge ShopcartDrivenAgendaBuilder.