Cómo se almacenan y gestionan los datos de promoción

Si va a crear un nuevo tipo de promoción personalizado para el Management Center, debería entender cómo interactúa el Management Center con el componente de promociones, y cómo se almacenan las promociones en la base de datos.

XML de promoción

Hay dos tipos de XML de promoción:
  • El XML de promoción de autoría contiene los datos sobre una promoción que los usuarios de empresa entran en la interfaz de usuario de la herramienta Promociones al crear promociones. El XML de promoción de autoría fue introducido con el Feature Pack 4 del Management Center Versión 6 para facilitar la personalización de las promociones.
  • El XML de promoción de tiempo de ejecución lo utiliza el servidor para evaluar promociones durante el flujo de compra. El XML de promoción de tiempo de ejecución no ha cambiado desde los Feature Packs anteriores del Management Center.

Cuando un usuario de empresa activa una promoción, el proceso siguiente transforma el XML de promoción de creación en el XML de promoción de tiempo de ejecución:

  1. La lógica de activación de promoción crea el XML de promoción de autoría a partir de datos almacenados en las tablas de autoría de promociones del Management Center. Estas tablas contienen los datos que los usuarios de empresa han entrado sobre una promoción.
  2. Un conjunto de plantillas XSLT transforman el XML de promoción de autoría en el XML de promoción de tiempo de ejecución que el motor de promociones necesita para evaluar las promociones. La transformación incluye varios pasos:
    1. La plantilla XSLT transforma el XML de creación de promoción para crear cuatro secciones de XML de tiempo de ejecución de promoción: la sección basePromotion, la sección purchaseCondition, la sección customCondition y la sección targetingCondition.
    2. El proceso de transformación utiliza la interfaz fromXML para inicializar un objeto de promoción.
    3. El proceso de transformación utiliza la interfaz toXML para generar el XML de promoción de tiempo de ejecución y almacenarlo en la tabla PX_PROMOTION en la columna XMLPARAM.

El diagrama siguiente ilustra este proceso:


Transformación del XML de promoción

Tenga en cuenta que hasta que se activa una promoción, en la tabla PX_PROMOTION sólo se almacena XML de promoción marcador de posición.

Las plantillas XSLT

Para añadir un nuevo tipo de promoción, los desarrolladores pueden diseñar widgets que recopilan la entrada necesaria y guardan la entrada en las tablas de autoría de promociones. Como se muestra en el diagrama anterior, las plantillas XSLT transforman entonces el XML de promoción de autoría en el XML de promoción de tiempo de ejecución. Por lo tanto, para personalizar el soporte de tiempo de ejecución para un nuevo tipo de promoción sólo se requiere una plantilla XSLT personalizada que dé soporte a los widgets de la interfaz de usuario; los desarrolladores no necesitan realizar cambios en el código Java de fondo para crear el XML de promoción de tiempo de ejecución. Esto hace que la personalización de los tipos de promoción del Management Center resulte más sencilla que la personalización de los tipos de promoción de HCL Commerce Accelerator.

Cada tipo de promoción definido en la herramienta Promociones del Centro de gestión está configurado para trabajar con ciertas plantillas XSLT. La herramienta Promociones proporciona el conjunto de plantillas XSLT que transforman los tipos de promoción predeterminados. Cuando cree un tipo de promoción personalizado, debe crear una plantilla XSLT nueva personalizada; no obstante, puede copiar el contenido de una plantilla XSLT existente en el nuevo archivo y luego personalizar sólo las secciones que sean diferentes.

Elementos de promoción y variables

Los elementos de promoción y sus variables permiten a la herramienta Promociones del Centro de gestión gestionar los datos de autoría de la sección purchaseCondition, la sección customCondition y la sección targetingCondition del XML de promoción de tiempo de ejecución en una infraestructura genérica.

La información sobre un elemento de promoción y sus variables se guarda en las tablas PX_ELEMENT y PX_ELEMENTNVP. Para ilustrar esta relación, tenga en cuenta los siguientes datos de ejemplo.
Ejemplo de contenido de la tabla PX_ELEMENT
PX_ELEMENT_ID PX_PROMOTION_ID NAME TYPE SubType Padre Secuencia
1001 10101 Name1001 PurchaseCondition UI_PurchaseCondition NULL 0
1002 10101 Name1002 DiscountRange UI_DiscountRange Name1001 0
1003 10101 Name1003 DiscountRange UI_DiscountRange Name1001 1
Ejemplo de contenido de la tabla PX_ELEMENTNVP
PX_ELEMENTNVP_ID PX_ELEMENT_ID NAME VALUE Nota
1000000 1001 Currency EUR La moneda es USD
1000001 1002 LowerBound 100 Para un rango de Name1002, el lowerbound=100
1000002 1002 Percentage 10 Para un rango de Name1002, el Percentage=10
1000003 1003 LowerBound 500 Para un rango de Name1003, el lowerbound=500
1000004 1003 Percentage 50 Para un rango de Name1003, el Percentage=50
En el ejemplo anterior, el elemento de promoción se utiliza para describir una unidad de una regla de promoción. La columna TYPE de la tabla PX_ELEMENT se puede correlaciona con un concepto de promoción que se utiliza en el XML de promoción de tiempo de ejecución. Por ejemplo, un tipo de elemento PurchaseCondition se correlaciona con el nodo PurchaseConditionen en el XML de promoción de tiempo de ejecución. Asimismo, el tipo DiscountRange se correlaciona con los nodos DistributionRange en el XML de promoción de tiempo de ejecución. La columna SUBTYPE de la tabla PX_ELEMENT la utiliza la herramienta Promociones del Centro de gestión para identificar un widget específico que maneja la entrada de un usuario de empresa. La información de la relación padre-hijo en las columnas PARENT y SEQUENCE de la tabla PX_ELEMENT permite que la lógica de activación de promoción cree la estructura de árbol XML del XML de promoción de autoría. A continuación se proporciona un ejemplo:
<PurchaseCondition>
   <DiscountRange></DiscountRange>
   <DiscountRange></DiscountRange>
</PurchaseCondition>
Una variable de elemento de promoción describe el valor de datos opcionales asociados con un elemento de promoción. Cuando un usuario de empresa activa una promoción, la lógica de activación de promoción crea el XML de promoción de autoría e inserta un nodo de datos bajo el nodo de elemento de promoción adecuado, seguida de nodos de texto que se crean según el nombre y el valor de la tabla PX_ELEMENTNVP para el elemento. A continuación se proporciona un ejemplo:
<PurchaseCondition>
   <Data>
     <Currency>USD</Currency>
   </Data>
   <DiscountRange>
     <Data>
       <LowerBound>100</LowerBound>
       <Percentage>10</Percentage>
     </Data>
   </DiscountRange>
   <DiscountRange>
     <Data>
       <LowerBound>500</LowerBound>
       <Percentage>50</Percentage>
     </Data>
   </DiscountRange> 
</PurchaseCondition>

Tipos de elementos predefinidos

En el XML de promoción de tiempo de ejecución, una clave de entidad de negocio se define mediante identificadores externos. A continuación se muestra un ejemplo de una clave de perfil de cliente con destinatario:
<TargetedProfile>
   <CustomerProfileKey>
      <ProfileName>Customers who are under 40 years of age</ProfileName>
      <OwnerDN>ou=b2c,o=seller organization,o=root organization</OwnerDN> 
   </CustomerProfileKey>  
</TargetedProfile>
Para simplificar el diseño de la herramienta de promociones del Centro de gestión y para mejorar el rendimiento, existen varios tipos de elementos predefinidos que permiten que se gestionen estos tipos de entidades de negocio con únicamente la clave primaria (ID). El servicio de activación de promoción utiliza a continuación este ID para resolver la información de identificador externa que es necesaria en el XML de promoción de tiempo de ejecución y, a continuación, añadir dicha información al XML de promoción de autoría como si la información se recopilara de la interfaz de usuario. Esta información de identificador externo resuelta se inserta en el nodo de datos del elemento de forma que está disponible para su transformación.
El ejemplo siguiente es una parte del XML de promoción de autoría, que se basa en datos de elementos con los identificadores externos resueltos (el XML de promoción de autoría completo se utiliza para el proceso de transformación XSL):
<TargetingCondition>
   <IncludeMemberGroupIdentifier>
      <Data>
         <Id>8000000000000000551</Id>
         <DN>ou=b2c,o=seller organization,o=root organization</DN>
         <Name>Registered Customers</Name>
      </Data>
   </IncludeMemberGroupIdentifier>
   <ExcludeMemberGroupIdentifier>
      <Data>
         <Id>8000000000000000555</Id>
         <DN>ou=b2c,o=seller organization,o=root organization</DN>
         <Name>Female Customers</Name>
      </Data>
   </ExcludeMemberGroupIdentifier>
   <ExcludeMemberGroupIdentifier>
      <Data>
         <Id>8000000000000000553</Id>
         <DN>ou=b2c,o=seller organization,o=root organization</DN>
         <Name>Guest Shoppers</Name>
      </Data>
   </ExcludeMemberGroupIdentifier>
   <IncludeMemberGroupIdentifier>
      <Data>
         <Id>8000000000000000554</Id>
         <DN>ou=b2c,o=seller organization,o=root organization</DN>
         <Name>Male Customers</Name>
      </Data>
   </IncludeMemberGroupIdentifier> 
</TargetingCondition>
La lista de tipos de elementos predefinidos incluye los elementos siguientes. Aunque los tipos de promoción predeterminados no utilizan actualmente todos estos elementos predefinidos, se proporcionan para dar soporte a la personalización.
IncludeMemberGroupIdentifier
Grupo de miembros que forma parte de una condición de inclusión en la regla.
ExcludeMemberGroupIdentifier
Grupo de miembros que forma parte de una condición de exclusión en la regla.
IncludeCategoryIdentifier
Una categoría que forma parte de una condición de inclusión en la norma.
ExcludeCategoryIdentifier
Categoría que forma parte de una condición de exclusión en la regla.
IncludeCatalogEntryIdentifier
Una entrada de catálogo que forma parte de una condición de inclusión en la norma.
ExcludeCatalogEntryIdentifier
Entrada de catálogo que forma parte de una condición de exclusión en la regla.
GiftCatalogEntryIdentifier
Entrada de catálogo que es un regalo gratis en la regla.
IncludePromotionIdentifier
Promoción que forma parte de una condición de inclusión en la regla.
ExcludePromotionIdentifier
Promoción que forma parte de una condición de exclusión en la regla.
IncludeShipModeIdentifier
Modalidad de envío que forma parte de una condición de inclusión en la regla.
ExcludeShipModeIdentifier
Una modalidad de envío que forma parte de una condición de exclusión en la norma.
IncludeStoreIdentifier
Una tienda que forma parte de una condición de inclusión en la norma.
ExcludeStoreIdentifier
Tienda que forma parte de una condición de exclusión en la regla.
IncludeUserIdentifier
Un usuario que forma parte de una condición de inclusión en la regla.
ExcludeUserIdentifier
Un usuario que forma parte de una condición de exclusión en la regla.
Para utilizar estos tipos de elementos predefinidos, utilice un par nombre-valor del elemento utilizando el nombre Id y el valor adecuado como clave primaria. Siempre que sea posible utilice estos tipos de elementos predefinidos. Cuando una promoción está activada, los valores Id también se utilizan para incluir las tablas CATENCALCD y CATGPCALCD como soporte a ShopcartDrivenAgendaBuilder.