Détails sur la détermination de l'ordre d'évaluation des promotions

Le moteur de promotion utilise une construction appelée "agenda d'exécution de promotion" pour déterminer les promotions à évaluer et l'ordre de leur évaluation. L'agenda d'exécution de promotion détermine également les stratégies qui régissent chaque promotion pendant l'évaluation.

Le tableau suivant montre un exemple de données d'un agenda d'exécution de promotion :

Le tableau suivant montre un exemple de données d'un agenda d'exécution de promotion.

promotions Règles
Stratégies globales Groupe G1 Groupe G2
Stratégie 1 Stratégie 2 Stratégie 3 Stratégie 4 Stratégie 5 Stratégie 6 Stratégie 7
Groupe G1 Promotion A X X X X
Promotion B X X X X
Promotion C X X X X
Promotion D X X X X
Promotion E X X X X
Groupe G2 Promotion F X X X X X
Promotion G X X X X X

Ce tableau contient les promotions et les stratégies qui les régissent. Il présente également le mode de regroupement des promotions et les groupes auxquels chaque stratégie s'applique. Le moteur de promotion crée un agenda d'exécution de promotion d'après les informations contenues dans le invocation template. Le modèle d'appel est indiqué dans l'appel du moteur de promotion. Par défaut, un modèle d'appel est une liste préconfigurée de groupes de promotions qui seront évalués lors de l'appel du moteur de promotion.

Lorsqu'une promotion est identifiée pour évaluation, les contraintes et les conditions associées à cette promotion sont évaluées. Des récompenses sont calculées si la promotion est applicable à la commande en cours. Lorsque l'évaluation d'une promotion est terminée, un ou plusieurs enregistrements PromotionExecutionRecord sont créés, selon le nombre d'applications possibles de cette promotion à la commande. Ensuite, le moteur de promotion détermine si des violations de stratégie de promotion sont provoquées par l'application de la promotion à la commande par dessus d'autres promotions déjà appliquées. Si aucune violation de stratégie n'est détectée, l'enregistrement PromotionExecutionRecord est ajouté au résultat et le moteur de promotion évalue la promotion suivante. Ce processus continue jusqu'à ce que toutes les promotions de la séquence soient évaluées. La plupart des méthodes sur la classe PromotionContext sont définies pour prendre en charge ce processus.