Condiciones personalizadas

Se pueden crear y utilizar condiciones personalizadas para construir una promoción. Puede crear sus propias condiciones de promoción personalizada para asegurarse de que los tipos de promoción disponibles cumplen las necesidades de la empresa.

Cuando se crea una condición personalizada para un tipo de promoción, debe tener el formato XML previsto. Este formato es necesario para que el motor de promociones pueda utilizar su condición cuando el motor evalúa promociones en el escaparate. El código siguiente es una condición personalizada de ejemplo que puede utilizar para modelar sus propias condiciones personalizadas:
<CustomConditions> 
  <Condition impl= "com.myCompany.condition.custom.MyOtherMoreComplexCondition">
  <!-- where myCompany is a custom package name -->
    <ConfigParameter1>XXXX</ConfigParameter1>
    <ConfigParameter2>
      <CP2.1>YYYY</CP2.1>
      <CP2.2>ZZZZ</CP2.2>
    </ConfigParameter2>
  </Condition>
</CustomConditions>
Una condición personalizada debe implementar la interfaz com.ibm.commerce.marketing.promotion.condition.Condition, que es una subclase de XMLizable. El código siguiente muestra una definición de esta interfaz:
package com.ibm.commerce.marketing.promotion.condition;

import com.ibm.commerce.marketing.promotion.runtime.PromotionContext;
import com.ibm.commerce.marketing.promotion.xml.*;

public interface Condition extends XMLizable {

    /**
     * IBM copyright notice field.
     */
    public static final String COPYRIGHT =
          com.ibm.commerce.copyright.IBMCopyright.SHORT_COPYRIGHT;

    boolean evaluate(PromotionContext context)
       throws PromotionConditionEvaluationException;
}
El método evaluate devuelve true o false. Si devuelve true, se considera que la condición se cumple. Si devuelve false, se considera que la condición no se cumple y no se aplicará la promoción a la que pertenece esta condición personalizada.
Nota: Todas las condiciones personalizadas deben sser de proceso múltiple y ser re-entrantes.