Evénements et programmes d'écoute de promotion

En mode de fonctionnement normal, le moteur de promotion génère un certain nombre d'événements. Les programmes d'écoute attendent que certains types d'événement se produisent, puis consignent les événements.

Evénements de moteur de promotion
Evénement Condition de déclenchement Attributs
PromotionCreatedEvent Création d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionDeployedEvent Déploiement (activation) d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionChangedEvent Modification d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionSuspendedEvent Suspension d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionResumedEvent Reprise d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionWithdrawnEvent Retrait d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionResetEvent Réinitialisation des statistiques d'une promotion. Promotion, acteur et date/heure de l'action.
PromotionRemovedEvent Marquage d'une promotion pour suppression. Promotion, acteur et date/heure de l'action.
PromotionAssessedEvent Evaluation d'une promotion et satisfaction de toutes les conditions. Contexte de promotion au moment de l'action.
PromotionEliminatedEvent Elimination d'une promotion en raison de violations de stratégie. PromotionExecutionRecords
PromotionQualifiedEvent Qualification d'une promotion. PromotionExecutionRecords
PromotionRejectedEvent Rejet par le client d'une récompense de promotion. PromotionExecutionRecords
PromotionAppliedEvent Application d'une promotion à la commande. PromotionExecutionRecords
PromotionErrorEvent Erreur.
PromotionTraceEvent
PromotionLogEvent Ecriture dans le journal effectuée par le moteur de promotion.
PromotionDebugEvent

Les programmes d'écoute doivent implémenter l'interface com.ibm.commerce.marketing.promotion.event.PromotionEventListener et être enregistrés auprès du moteur de promotion. Ils sont enregistrés lors du démarrage du moteur de promotion et indiqués dans le cadre de la configuration du moteur. Les modules d'écoute peuvent être enregistrés pour se mettre en mode écoute sur des types spécifiques d'événement en fournissant un masque d'événement lors de l'enregistrement. La liste suivante inclut les programmes d'écoute par défaut :

PrintPromotionLifeCycleEventListener
Ecoute les événements créés, modifiés, déployés, suspendus, repris, retirés, réinitialisés ou supprimés et les consigne dans un fichier de sortie standard.
PrintPromotionExecutionEventListener
Ecoute les événements évalués, éliminés, qualifiés, rejetés ou appliqués et les consigne dans un fichier de sortie standard.
PrintPromotionDefaultRASEventListener
Ecoute les événements de journal, de trace ou d'erreur et les consigne dans un fichier de sortie standard.
PrintPromotionDefaultDebugEventListener
Ecoute les événements de journal, de trace, d'erreur ou de débogage et les consigne dans un fichier spécifié par l'attribut système promotion.debug. Si cet attribut n'est précisé, tous les événements sont consignés dans un fichier de sortie standard.
PromotionLogEventCommerceListener
Ecoute l'événement PromotionLogEvent et le consigne dans le fichier journal de HCL Commerce, si la journalisation HCL Commerce est activée.
PromotionTraceEventCommerceListener
Ecoute l'événement PromotionTraceEvent et le consigne dans le fichier de trace de HCL Commerce, si le traçage HCL Commerce est activé.
PromotionErrorEventCommerceListener
Ecoute l'événement PromotionErrorEvent et le consigne dans le fichier journal et le fichier de trace de HCL Commerce, si la journalisation et le traçage HCL Commerce sont activés.

Dans la configuration du moteur de promotion, le fragment XML suivant configure des programmes d'écoute pour le moteur de promotion. Notez que trois programmes d'écoute système ne sont pas modifiables :

  1. Un programme d'écoute du démon de débogage qui écoute les événements de débogage.
  2. Un démon de bon de réduction qui émet un bon de réduction lorsqu'un VoucherAdjustment est appliqué à une commande.
  3. Un programme d'écoute de l'auxiliaire de suspension qui facilite le traitement des promotions suspendues.

<PromotionEventListenerRegistry impl="com.ibm.commerce.marketing.promotion.event.ListenerRegistry">
   <!-- DO NOT MODIFY THE SECTION BELOW -->

   <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionDebugEventListener">
      <Name>[SYSTEM]DEBUGDAEMON</Name>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionDebugEvent</ListensFor>
   </Listener>
   <Listener impl="com.ibm.commerce.marketing.promotion.coupon.CouponDaemon">
      <Name>[SYSTEM]COUPONDAEMON</Name>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionAppliedEvent</ListensFor>
   </Listener>
   <Listener impl="com.ibm.commerce.marketing.promotion.event.WCSPromotionSuspendedEventListener">
      <Name>[SYSTEM]PROMOTIONSUSPENDHELPER</Name>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionSuspendedEvent</ListensFor>
   </Listener>
   <!-- DO NOT MODIFY THE SECTION ABOVE -->

   <!--

   <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionLifeCycleEventListener">
      <Name>PrintLifeCycleEventListener</Name>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionChangedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionCreatedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionDeployedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionRemovedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionResetEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionResumedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionSuspendedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionWithdrawnEvent</ListensFor>
   </Listener>
   <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionExecutionEventListener">
      <Name>PrintExecutionEventListener</Name>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionAssessedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionAppliedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionEliminatedEvent</ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionQualifiedEvent></ListensFor>
         <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionRejectedEvent</ListensFor>
   </Listener>
   <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionRASEventListener">
      <Name>PrintRASEventListener</Name>
      <StoreKey>
         <DN>ou=BlueMall B2C Organization, o=Seller Organization, o=Root Organization</DN>
         <Identifier>BlueStore 201</Identifier>
      </StoreKey>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionDebugEvent</ListensFor>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionErrorEvent</ListensFor>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionLogEvent</ListensFor>
      <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionTraceEvent</ListensFor>
   </Listener>
   -->

</PromotionEventListenerRegistry>

PromotionQualifiedEvent et PromotionAppliedEvent sont généralememnt les événements les plus intéressants à écouter. Le premier est généré lorsqu'une promotion est considérée comme applicable à une commande sans violation de stratégie. C'est généralement le cas lorsqu'un article est ajouté au panier et que celui-ci est réévalué en fonction des promotions applicables. Le second événement est émis lorsque la commande est finalisée (c'est-à-dire confirmée et soumise). Le moteur de promotion utilise cet événement pour émettre les bons de réduction résultant des bons VoucherAdjustment offerts au client.