Carga de promociones con el programa de utilidad de carga de datos

Puede configurar el programa de utilidad de carga de datos para cargar datos de promociones en un archivo de entrada XML para crear o cambiar promociones en una tienda. Si se utiliza el programa de utilidad de carga de datos para cargar promociones se podrá crear o cambiar rápidamente varias promociones en una sola operación.

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

Al cargar datos de promociones con el programa de utilidad de carga de datos, el programa de utilidad utiliza la clase DOMXmlHandler para convertir los datos XML de entrada de promociones en un objeto DOM. El programa de utilidad pasará el objeto al mediador de objetos de negocio PromotionDOMMediator, que convertirá el objeto en una lista de objetos de datos de tabla. Los objetos de datos de tabla persistirán en la base de datos. Una vez que el proceso de carga finaliza, las promociones pueden estar disponibles para que los usuarios de negocio puedan verlas y gestionarlas en la herramienta Promociones.

El programa de utilidad de carga de datos no da soporte a la carga de datos de promociones en un espacio de trabajo.

Nota: No puede utilizar el programa de utilidad de carga de datos para establecer o cambiar el estado para una promoción.
  • Si crea una promoción con el programa de utilidad de carga de datos, la promoción siempre está inactiva cuando finaliza el proceso de carga. Por ejemplo, si carga una promoción extraída en un entorno de prueba, la promoción creada está inactiva incluso si la promoción estaba activa cuando se extrajo.
  • Si cambia una promoción con el programa de utilidad de carga de datos, el estado de promoción actual no cambia. Por ejemplo, si cambia una promoción activa, la promoción permanece activa una vez que finaliza el proceso de carga. Los cambios para las promociones activas pueden no visualizarse en el escaparate cuando finaliza el proceso de carga. Es necesario desactivar y volver a activar la promoción para habilitar las actualizaciones de la promoción en el escaparate.

Procedimiento

  1. Cree el archivo XML de entrada.
    Solamente puede cargar datos de promoción que estén en un archivo con formato XML. Para obtener un ejemplo del formato XML soportado, vea el archivo de entrada Promotion.xml de ejemplo que está en el siguiente directorio.
    • HCL Commerce DeveloperWCDE_installdir\samples\DataLoad\Promotion
    • Linuxutilities_root/samples/DataLoad/Promotion
    Si crea el archivo de entrada manualmente, copie y edite el archivo de ejemplo Promotion.xml como ayuda para crear el archivo de entrada.
    Consejo: Puede utilizar el programa de utilidad de extracción de datos como ayuda para generar el archivo de entrada. Si crea la misma promoción en varios entornos, como por ejemplo para la realización de pruebas, cree la promoción en un entorno con la herramienta Promociones. A continuación, extraiga esa promoción y utilice el archivo de salida generado como archivo de entrada para que el programa de utilidad de carga de datos cargue la promoción en los otros entornos. Para obtener más información, consulte Extracción de datos de promoción con el programa de utilidad de extracción de datos.
    En el archivo de entrada, incluya la siguiente información para cada promoción:
    • Las propiedades de identificación y generales para una promoción dentro de un elemento XML que se denomina <Base>. Esta información incluye los datos acerca de los códigos de promoción para las promociones, como el tipo de códigos de promociones para la promoción. Puede especificar un código de promoción público o patrón para generar códigos de promoción exclusivos avanzados, pero no incluya ningún código de promoción exclusivo. No puede cargar códigos de promociones exclusivos con el programa de utilidad de carga de datos. El programa de utilidad de carga de datos carga los datos del elemento <Base> en las siguientes tablas de base de datos:
    • La información de descripción de promoción dentro de un elemento XML que se denomina <Description>. Incluya un elemento <Description> distinto por cada idioma definido al que la tienda da soporte para la promoción. El programa de utilidad de carga de datos carga estos datos en la tabla de base de datosPX_DESCRIPTION.
    • La información de bonificación y condición de compra de promoción dentro de un elemento XML que se denomina <Elements>. El programa de utilidad de carga de datos carga estos datos en las tablas de base de datos PX_ELEMENT y PX_ELEMENTNVP. Incluya cada par nombre-valor que deba cargarse en la tabla PX_ELEMENTNVP como un elemento XML distinto dentro de un elemento padre, que se va a cargar en la tabla PX_ELEMENT.
      Por ejemplo, el siguiente código muestra la estructura para el elemento <Elements> en un archivo de entrada.
      <Elements>
        <Type>
          <SubType>...</SubType>
          <Sequence>...</Sequence>
          <Data> 
            <name>value</name>
            <name>value</name>
          </Data>
          <Type>
      	      <SubType>...</SubType>
            <Sequence>...</Sequence>
            <Data> 
              <name>value</name>
              <name>value</name>
            </Data>
          </Type>
          ...
        </Type>
      <Elements>
      Donde
      Elementos
      Indica que los elementos XML hijo son información de bonificación y condición de compra. Cada elemento secundario directo en el elemento <Elements> es un tipo separado de condición o bonificación. No está correlacionado con ninguna columna. Este elemento lo utiliza el programa de utilidad de carga de datos para leer el XML de archivo de entrada de promoción.
      Tipo
      El nombre de una bonificación o condición de promoción. El XML de entrada puede incluir varios elementos <Type>. Un elemento <Type> se puede anidar dentro de otro elemento <Type>. Por ejemplo, el siguiente código incluye un elemento <Type> que se denomina <IncludePaymentTypeIdentifier>, que está anidado dentro de un elemento <Type> que se denomina <PurchaseCondition>.
      <Elements>
        <PurchaseCondition>
          ...
          <IncludePaymentTypeIdentifier>
      	  ...
          </IncludePaymentTypeIdentifier>
        </PurchaseCondition>
        ...
        <Elements>
      Se correlaciona con PX_ELEMENT.TYPE.
      SubType
      El subtipo de un elemento de promoción <Type>. Cada <Type> puede tener un <SubType>. Por ejemplo, un elemento <Type> que se denomina <PurchasingCondition> puede tener un elemento <SubType> que se llama <OrderLevelPercentDiscountPurchaseCondition>. Se correlaciona con PX_ELEMENT.SUBTYPE
      Secuencia
      La secuencia que el elemento de bonificación o de condición de compra de promoción, <Type>, visualiza para una promoción. Cada elemento <Type> puede incluir un elemento <Sequence>. Se correlaciona con PX_ELEMENT.SEQUENCE
      Data
      Indica que los elementos XML hijo son información de par nombre-valor para un elemento padre (bonificación o condición de compra). Incluya cada par nombre-valor como un elemento distinto dentro de un elemento <Data>. Cada elemento <Type> puede incluir un elemento <Data>. No está correlacionado con ninguna columna. Este elemento lo utiliza el programa de utilidad de carga de datos para leer el XML de archivo de entrada de promoción.
      name
      El nombre de un par nombre-valor. Se correlaciona con PX_ELEMENTNVP.NAME
      value
      El valor para un par nombre-valor. Se correlaciona con PX_ELEMENTNVP.VALUE
    Importante: Los nombres de los elementos XML en el archivo de entrada, que no sea el elemento raíz o los elementos para pares nombre-valor, deben utilizar nombres específicos. Para obtener una lista de los elementos XML que se pueden incluir en el archivo de entrada y los nombres específicos para que los utilice para los elementos, consulte Archivo de entrada XML de promociones.

    Si desea cargar datos para cambiar datos para una promoción, debe configurar el archivo de entrada de modo que incluya el ID exclusivo para la promoción. Incluya el ID como valor para un elemento que se denomina <PromotionId>. El programa de utilidad compara el ID del archivo de entrada con los valores de ID de promoción en la base de datos. Si el ID existe en la base de datos, el programa de utilidad actualiza la promoción existente con la información del archivo de entrada. Por ejemplo, el siguiente fragmento de código establece el ID exclusivo, "10001", para una promoción que se denomina "Free Ground Shipping":

    <?xml version="1.0" encoding="UTF-8"?>
    <Promotions>
    <PromotionData>
      <Base>
        <PromotionId>10001</PromotionId>
        <AdministrativeName>Free Ground Shipping</AdministrativeName>
        ...
      </Base>
        ...
      <Elements>
        <PurchaseCondition>
          <SubType>OrderLevelFixedShippingDiscountPurchaseCondition</SubType>
          <Sequence>0.0</Sequence>
          <Data>
            <Currency>USD</Currency>
            <MinimumPurchase>70</MinimumPurchase>
            <FixedCost>0</FixedCost>
            <AdjustmentType>IndividualAffectedItems</AdjustmentType>
          </Data>
        </PurchaseCondition>
      </Elements>
    </PromotionData>
    </Promotions>
  2. Cree los archivos de configuración del programa de utilidad de carga de datos que necesita para cargar los datos de promoción.
    1. Vaya al siguiente directorio, que contiene los archivos de configuración de ejemplo para cargar datos de promoción:
      • HCL Commerce DeveloperEn una línea de mandatos, vaya al directorio WCDE_installdir\samples\DataLoad\Promotion.
      • LinuxAbra una línea de mandatos en el contenedor Utility Docker. Vaya al directorio utilities_root/samples/DataLoad/Promotion. Para obtener información sobre cómo entrar y salir de contenedores, consulte Ejecución de programas de utilidad desde Utility server Docker container.
    2. Cree una copia de seguridad de los siguientes archivos de configuración en el directorio de ejemplo Promotion.
      wc-loader-xml-promotion.xml
      El archivo de configuración de objeto de negocio.
      wc-dataload-env.xml
      El archivo de configuración de entorno.
      wc-dataload.xml
      El archivo de configuración de orden de carga de datos.
  3. Opcional: Abra el archivo de configuración de objeto de negocio (wc-loader-xml-promotion.xml) para su edición y configure los valores para cargar los datos de promoción.
    1. Configure el programa de utilidad de carga de datos para permitir que el proceso de carga cree una promoción que tenga un nombre administrativo que sea un duplicado de un nombre de promoción existente.
      Para configurar este comportamiento, incluya la siguiente propiedad en la configuración del elemento <_config:BusinessObjectMediator>.
      allowDuplicateAdministrativeName
      Esta propiedad configura el programa de utilidad de carga de datos para crear una promoción en lugar de omitir la promoción cuando la promoción tiene el mismo nombre administrativo que una promoción existente. Puede establecer los siguientes valores para esta propiedad.
      true
      El programa de utilidad de carga de datos crea una promoción en la tienda para cada promoción en el archivo de entrada independientemente de si existe un nombre administrativo duplicado. Al establecer este valor, el programa de utilidad de carga de datos crea todas las promociones que estén en el archivo de entrada. Si se habilita esta propiedad, el proceso de carga puede crear promociones duplicadas en una tienda.
      false
      El valor predeterminado. Si se encuentra un nombre administrativo duplicados durante la operación de carga, el programa de utilidad de carga de datos no carga la promoción con el nombre duplicado. El informe de resumen de la carga de datos notifica que no se ha cargado una promoción.
      Por ejemplo, el siguiente fragmento de código configura la habilitación de esta propiedad:
      <_config:BusinessObjectMediator className="com.ibm.commerce.promotion.dataload.mediator.PromotionDOMMediator" >
        ...
        <_config:property name="allowDuplicateAdministrativeName" value="true" >
      </_config:BusinessObjectMediator>
    2. Configure el programa de utilidad de carga de datos para que utilice un script XSLT personalizado para convertir el XML de archivo de entrada. Si el archivo de entrada está en un formato XML distinto del formato soportado, cree un script XSLT para que el programa de utilidad lo utilice para convertir el XML de entrada.
      Incluya el atributo xslt en la configuración del elemento <_config:DataReader> y especifique el script XSLT como el valor para el atributo. Por ejemplo, la siguiente configuración especifica que el programa de utilidad debe utilizar el script XSLT customPromotion.xsl para convertir el XML de archivo de entrada.
      <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XmlReader" xslt="customPromotion.xsl" >
        <_config:XmlHandler className="com.ibm.commerce.foundation.dataload.xmlhandler.DOMXmlHandler" />
      </_config:DataReader>
    3. Guarde y cierre el archivo de configuración.
  4. Abra el archivo de configuración de entorno de carga de datos (wc-dataload-env.xml) para editarlo y actualice los valores configurados de modo que coincidan con los valores del entorno.
  5. Abra el archivo de configuración de orden de carga de datos (wc-dataload.xml) para editarlo y configure los valores para cargar los datos de promoción.
    1. En el elemento <_config:DataLoadEnvironment>, asegúrese de que el valor del atributo configFile identifica el archivo de configuración de entorno. Si el archivo no está en el mismo directorio que el archivo de configuración de orden de carga de datos, incluya la vía de acceso relativa al archivo.
    2. En el elemento <_config:LoadItem>, asegúrese de que el valor para el atributo name es PromotionXml y que el valor para el atributo businessObjectConfigFile identifica el archivo de configuración de objeto de negocio. Si el archivo no está en el mismo directorio que el archivo de configuración de orden de carga de datos, incluya la vía de acceso relativa al archivo.
    3. En el elemento <_config:DataSourceLocation> asegúrese de que el valor del atributo location identifica el archivo XML de entrada que está cargando. Si el archivo no está en el mismo directorio que el archivo de configuración de orden de carga de datos, incluya la vía de acceso relativa al archivo.
    4. Guarde y cierre el archivo de configuración.
  6. Ejecute el programa de utilidad de carga de datos.
  7. Verifique que los datos de promoción se han cargado revisando el informe de resumen de carga de datos.
    Para obtener más información sobre la ubicación y el contenido de este informe de resumen, consulte Verificar que el programa de utilidad de carga de datos ha cargado satisfactoriamente los datos de promoción.
    • También puede verificar que los datos de promoción se hayan cargado ejecutando las sentencias SQL siguientes en la base de datos de HCL Commerce:
      select * from PX_PROMOTION;
      Asegúrese de que los datos de los archivos de entrada de ejemplo existen en las tablas de base de datos adecuadas.
    • En el Management Center, verifique que puede ver las promociones o cambios de promociones que se han cargado recientemente en la herramienta Promociones.