Sucesos y escuchas de las promociones
El motor de promociones genera numerosos sucesos durante su funcionamiento normal. Los escuchas esperan a que se produzcan determinados tipos de sucesos y, a continuación, registran los sucesos.
Suceso | Cuándo se desencadena el suceso | Atributos |
---|---|---|
PromotionCreatedEvent | Cuando se crea una promoción | La promoción, el actor y la fecha y hora de la acción. |
PromotionDeployedEvent | Cuando se despliega (activa) una promoción | La promoción, el actor y la fecha y hora de la acción. |
PromotionChangedEvent | Cuando se modifica una promoción | La promoción, el actor y la fecha y hora de la acción. |
PromotionSuspendedEvent | Cuando se suspende una promoción | La promoción, el actor y la fecha y hora de la acción. |
PromotionResumedEvent | Cuando se reanuda una promoción | La promoción, el actor y la fecha y hora de la acción. |
PromotionWithdrawnEvent | Cuando se retira una promoción | La promoción, el actor y la fecha y hora de la acción. |
PromotionResetEvent | Cuando se restauran las estadísticas de una promoción. | La promoción, el actor y la fecha y hora de la acción. |
PromotionRemovedEvent | Cuando una promoción se marca para supresión | La promoción, el actor y la fecha y hora de la acción. |
PromotionAssessedEvent | Cuando una promoción se evalúa y se cumplen todas las condiciones. | El PromotionContext en el momento de la acción. |
PromotionEliminatedEvent | Cuando una promoción se elimina debido a violaciones de políticas. | PromotionExecutionRecords |
PromotionQualifiedEvent | Cuando se califica una promoción. | PromotionExecutionRecords |
PromotionRejectedEvent | Cuando un cliente rechaza una bonificación de una promoción. | PromotionExecutionRecords |
PromotionAppliedEvent | Cuando una promoción se aplica al pedido. | PromotionExecutionRecords |
PromotionErrorEvent | Cuando se produce un error. | |
PromotionTraceEvent | ||
PromotionLogEvent | Cuando el motor de promociones graba en el archivo de anotaciones. | |
PromotionDebugEvent |
Los escuchas deben implementar la interfaz com.ibm.commerce.marketing.promotion.event.PromotionEventListener, y deben registrarse en el motor de promociones. Se registran cuando se inicia el motor de promociones y se especifican como parte de la configuración del motor. Los escuchas pueden registrarse para escuchar tipos de suceso específicos, proporcionando una máscara de sucesos en el momento del registro. La lista siguiente incluye los escuchas predeterminados:
- PrintPromotionLifeCycleEventListener
- Escucha los sucesos Created, Changed, Deployed, Suspended, Resumed, Withdrawn, Reset y Removed, y anota los sucesos en la salida estándar.
- PrintPromotionExecutionEventListener
- Escucha los sucesos Assessed, Eliminated, Qualified, Rejected y Applied, y anota los sucesos en la salida estándar.
- PrintPromotionDefaultRASEventListener
- Escucha los sucesos Log, Trace y Error y anota los sucesos en la salida estándar.
- PrintPromotionDefaultDebugEventListener
- Escucha los sucesos Log, Trace, Error y Debug y anota los sucesos en un archivo según lo especificado por el atributo del sistema
promotion.debug
. Si no se especifica este atributo, todos los sucesos se anotarán en la salida estándar. - PromotionLogEventCommerceListener
- Escucha el suceso PromotionLogEvent y anota el suceso en el archivo de anotaciones cronológicas de HCL Commerce, si el registro cronológico de HCL Commerce está habilitado.
- PromotionTraceEventCommerceListener
- Escucha el suceso PromotionTraceEvent y anota el suceso en el archivo de rastreo de HCL Commerce, si el rastreo de HCL Commerce está habilitado.
- PromotionErrorEventCommerceListener
- Escucha el suceso PromotionErrorEvent y anota el suceso tanto en el archivo de anotaciones cronológicas de HCL Commerce como en el de rastreo, si el registro cronológico y el rastreo de HCL Commerce están habilitados.
El fragmento XML siguiente de la configuración del motor de promociones configura escuchas de sucesos para el motor de promociones. Tenga en cuenta que hay tres escuchas del sistema que no deben modificarse:
- Un escucha de daemon de depuración que escucha los sucesos de depuración.
- Un daemon de cupones que emite cupones siempre que se aplica un VoucherAdjustment a un pedido.
- Un escucha de ayuda para suspensión que ayuda a procesar promociones suspendidas.
<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>
Normalmente, los sucesos más interesantes a escuchar son PromotionQualifiedEvent y PromotionAppliedEvent. El primero se emite cuando una promoción se considera aplicable a un pedido, y se ha determinado que aplicar dicha promoción no viola ninguna política. Esto suele ocurrir cuando se añade un artículo de pedido al carro de la compra y ésta se vuelve a evaluar junto con las promociones aplicables. El segundo suceso se emite cuando el pedido finaliza (es decir, cuando se confirma y se somete). El motor de promociones utiliza este suceso para emitir cupones que son el resultado de ofrecer VoucherAdjustments a un comprador.