Personalizar el generador de agenda

Si desea modificar la lógica predeterminada que selecciona promociones potencialmente aplicables para su evaluación, o mejorar el rendimiento del sistema filtrando las promociones antes de su evaluación a fin de reducir el número de promociones a evaluar durante la ejecución, puede personalizar el generador de agenda. Una instancia de HCL Commerce solo tiene un generador de agenda. Las personalizaciones se aplican a todas las tiendas de la misma instancia.

Por qué y cuándo se efectúa esta tarea

El generador de agenda busca promociones directamente relacionadas con el contenido del carro de la compra, en lugar de todas las promociones disponibles en el sistema. El motivo de la utilización de este generador de agenda es mejorar el rendimiento de la evaluación de las promociones en el entorno de producción evaluando únicamente las promociones relacionadas con los productos adquiridos. Este generador de agenda funciona mejor con un carro de la compra que tiene un pequeño número de artículos, mientras que la tienda tiene un gran número de promociones activas destinadas a diferentes conjuntos de productos o categorías. Esta implementación requiere que los datos se llenen en la tabla CATENCALCD y en CATGPCALCD durante el proceso de creación de promoción que indica la correlación entre la promoción y catlogEntry o a categoría. Si la tienda rara vez tiene promociones a nivel de categoría, entonces se puede establecer un distintivo en el archivo de configuración del motor de promociones para el generador de agenda. El nombre del distintivo es PerformCheckForCategoryLevelPromotions y puede tener un valor de true o false. Si el distintivo se establece en true, la búsqueda se realiza para cualquier categoría activa a nivel de las promociones en la tienda. Si no se encuentra ninguna, entonces no se realiza ninguna llamada para obtener las categorías de los artículos del pedido. Esto puede mejorar el rendimiento de la evaluación de promociones en el escaparate especialmente si el catálogo tiene una estructura de categorías profunda. Si el distintivo se establece en false, se ejecuta el comportamiento predeterminado de obtener las categorías de los artículos de pedido.

Procedimiento

  1. Implementación del generador de agenda.
    El único requisito es que su generador de agenda debe implementar la interfaz com.ibm.commerce.marketing.promotion.runtime.PromotionExecutionAgendaBuilder. Esta interfaz es también una subclase de la interfaz XMLizable. Como consecuencia, debe definir los métodos toXML y fromXML para su implementación, así como un formulario XML serializado para el generador de agenda.

    El método worker de la interfaz AgendaBuilder es el método buildAgenda. Utiliza dos parámetros. Uno es PromotionArgument, con todos los atributos de entrada establecidos. El otro es PromotionEngine. Mediante el parámetro PromotionEngine, dispone de acceso a los servicios útiles como el registro del gestor de persistencia y el registro de fábrica de entidad externa. Este método devuelve PromotionExecutionAgenda una vez que se ha creado.

  2. Cómo registrar el generador de agenda en la configuración del motor de promociones.
    Localice el fragmento XML siguiente:
    
    <PromotionExecutionAgendaBuilder impl="com.ibm.commerce.marketing.promotion.runtime.DefaultAgendaBuilder">
    .
    .
    .
       <!-details -->
    .
    .
    .
    </PromotionExecutionAgendaBuilder>
    
    1. Sustituya el valor del atributo impl por el nombre de clase totalmente calificado de su propia implementación.
    2. Sustituya el contenido de los elementos XML por el XML serializado de su generador de agenda.
  3. Reinicie HCL Commerce.
    Puesto que el generador de agenda se inicializa durante el arranque de HCL Commerce, es necesario un reinicio para que los cambios entren en vigor.