Detalles del desarrollo de la secuencia de evaluación de promociones

El motor de promociones utiliza una construcción que se denomina agenda de ejecución de promociones (Promotion Execution Agenda) para determinar qué promociones se deben evaluar y la secuencia de evaluación. La agenda de ejecución de promociones también determina qué políticas rigen cada promoción durante la evaluación.

La tabla siguiente muestra un ejemplo de datos en una agenda de ejecución de promociones:

La tabla siguiente muestra un ejemplo de datos en una agenda de ejecución de promociones.

Promociones Políticas
Políticas globales Grupo G1 Grupo G2
Política 1 Política 2 Política 3 Política 4 Política 5 Política 6 Política 7
Grupo G1 Promoción A X X X X
Promoción B X X X X
Promoción C X X X X
Promoción D X X X X
Promoción E X X X X
Grupo G2 Promoción F X X X X X
Promoción G X X X X X

La tabla contiene las promociones y las políticas que las rigen. La tabla también muestra cómo se agrupan las promociones, y a qué grupos se aplica cada política. El motor de promociones crea una agenda de ejecución de promociones, basada en la información contenida en la invocation template. La plantilla de invocación se especifica en la llamada al motor de promociones. De forma predeterminada, una plantilla es una lista preconfigurada de grupos de promociones que se evaluarán durante la llamada al motor de promociones.

Cuando se identifica una promoción para evaluación, se evalúan todas las restricciones y condiciones asociadas con la promoción. Se calculan las bonificaciones si la promoción es aplicable al pedido actual. Cuando la evaluación de una promoción se ha completado, se crean uno o más registros de ejecución de promoción (PromotionExecutionRecords), dependiendo de la cantidad de veces que esta promoción se pueda aplicar a este pedido. El motor de promociones, determina si se infringen las políticas de promoción al aplicar esta promoción al pedido encima de otras promociones que ya se han aplicado. Si no se encuentran violaciones de políticas, se añade el registro de ejecución de promociones al resultado y el motor de promociones evalúa la promoción siguiente. Este proceso continúa hasta que se han evaluado todas las promociones de la secuencia. La mayoría de métodos de la clase PromotionContext están definidos para dar soporte a este proceso.