Personnalisation du générateur d'agenda
Vous pouvez personnaliser le générateur d'agenda si vous souhaitez modifier la logique par défaut qui sélectionne des promotions potentiellement applicables pour évaluation, ou améliorer les performances système par un filtrage des promotions avant leur évaluation afin de réduire leur nombre lors de l'exécution. Une instance HCL Commerce ne comporte qu'un seul générateur d'agenda. Les personnalisations s'appliquent à tous les magasins d'une même instance.
Pourquoi et quand exécuter cette tâche
Le générateur d'agenda recherche les promotions directement liées au contenu du panier d'achat, et non toutes les promotions disponibles dans le système. Il est utilisé dans le but d'améliorer les performances d'évaluation des promotions sur l'environnement de production, en n'évaluant que les promotions liées aux produits achetés. Ce générateur d'agenda fonctionne mieux avec un panier comportant un petit nombre d'articles, alors que le magasin dispose d'un grand nombre de promotions actives ciblant différents ensembles de produits ou de catégories. Pour cette implémentation, les tables CATENCALCD et CATGPCALCD doivent être renseignées pendant le processus de création de promotion pour indiquer le mappage entre la promotion et l'entrée de catalogue ou la catégorie. Si le magasin possède rarement des promotions de niveau catégorie, il est possible de définir un indicateur dans le fichier de configuration du moteur de promotion pour le générateur d'agenda. Cet indicateur est nommé PerformCheckForCategoryLevelPromotions et peut prendre la valeur true ou false. Si l'indicateur a pour valeur true, une recherche est lancée pour trouver toutes les promotions de niveau catégorie actives dans le magasin. Si aucune promotion n'est trouvée, aucun appel n'est effectué pour extraire les catégories d'articles de commande. Ceci améliore les performances d'évaluation des promotions de la boutique en ligne, particulièrement si le catalogue possède une structure de catégories développée. Si l'indicateur a pour valeur false, le comportement par défaut s'applique (extraction des catégories d'articles de commande).
Procédure
-
Implémentez le générateur d'agenda.
La seule exigence est que le générateur d'agenda doit implémenter l'interface com.ibm.commerce.marketing.promotion.runtime.PromotionExecutionAgendaBuilder. Cette interface est également une sous-classe de XMLizable. Par conséquent, vous devez définir les méthodes toXML et fromXML pour votre implémentation, ainsi qu'un formulaire XML sérialisé pour le générateur d'agenda.
La méthode de processus agent est la méthode buildAgenda de l'interface AgendaBuilder. Elle admet deux paramètres. L'un d'eux est PromotionArgument avec tous les attributs d'entrée définis. L'autre est PromotionEngine. Avec le paramètre PromotionEngine, vous avez accès à des services utiles, comme le registre du gestionnaire de persistance et le registre de la fabrique d'entité externe. La méthode renvoie l'interface PromotionExecutionAgenda une fois celle-ci générée.
-
Enregistrez le générateur d'agenda personnalisé dans la configuration du moteur de promotion.
Localisez le fragment XML suivant :
<PromotionExecutionAgendaBuilder impl="com.ibm.commerce.marketing.promotion.runtime.DefaultAgendaBuilder"> . . . <!-details --> . . . </PromotionExecutionAgendaBuilder>- Remplacez la valeur de l'attribut impl par le nom de classe qualifié complet de votre implémentation.
- Remplacez le contenu des éléments XML par le formulaire XML sérialisé pour le générateur d'agenda.
-
Redémarrez HCL Commerce.
Etant donné que le générateur d'agenda est initialisé pendant le démarrage du serveur HCL Commerce, un redémarrage est nécessaire pour que les modifications prennent effet.