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é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 :
- Un programme d'écoute du démon de débogage qui écoute les événements de débogage.
- Un démon de bon de réduction qui émet un bon de réduction lorsqu'un VoucherAdjustment est appliqué à une commande.
- 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.