HCL Commerce Developer

Añadir un atributo de segmento de clientes al archivo de exportación de segmento de clientes

Puede personalizar la característica de exportación de segmento de clientes en el Management Center para incluir más atributos de segmentos de clientes en el archivo exportado.

Nota: Para garantizar la seguridad de la información del cliente, siga todas las reglas y regulaciones relacionadas con el manejo, el almacenamiento y el acceso a la información del cliente.

Antes de empezar

Asegúrese de que el entorno esté configurado para exportar los datos de segmento de clientes desde el entorno de producción.
Si desea probar la personalización en el entorno de desarrollo con datos de segmento de clientes del entorno de producción, realice la tarea siguiente:

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

De forma predeterminada, los usuarios de empresa pueden incluir los atributos de segmento de clientes siguientes en un archivo de exportación de segmento de clientes:
  • Dirección de correo electrónico (ADDRESS.EMAIL1)
  • ID de inicio de sesión (USERREG.LOGONID)
  • Título del cliente (ADDRESS.PERSONTITLE)
  • Nombre del cliente (ADDRESS.FIRSTNAME)
  • Apellido del cliente (ADDRESS.LASTNAME)
Los usuarios de empresa también pueden elegir si incluyen a los clientes que no se han suscrito para recibir correo electrónico de marketing.

Si los usuarios de empresa requieren más información del cliente en el archivo de exportación, puede personalizar la característica de exportación para que incluya información de cualquier tabla de base de datos, incluidas las tablas personalizadas. Sin embargo, la tabla debe tener un valor o una relación de coincidencia con la columna MEMBER_ID de la tabla ADDRESS.

Por ejemplo, puede personalizar la exportación de segmento de clientes para que incluya alguno de los siguientes tipos de información del cliente para la lista de clientes de un segmento:
  • Ciudad (ADDRESS.CITY)
  • Estado/Provincia (ADDRESS.STATE)
  • País (ADDRESS.COUNTRY)
  • Número de teléfono (ADDRESS.PHONE1)
  • Sexo (USERDEMO.GENDER)
  • Estado civil (USERDEMO.MARITALSTATUS)

Procedimiento

Personalice la herramienta Marketing para mostrar nuevas opciones de atributo de segmento de clientes para exportar
  1. Abra HCL Commerce Developer. Vaya a la vista Explorador de empresa.
  2. Defina las propiedades de texto de la herramienta Marketing para las opciones de atributo de segmento de clientes.
    1. Vaya al directorio LOBTools\Java Resources\src\com.mycompany.commerce.marketing.client.lobtools.properties.

      Si el paquete no existe, cree el paquete com.mycompany.commerce.marketing.client.lobtools.properties.

    2. Pulse el botón derecho del ratón en el paquete com.mycompany.commerce.marketing.client.lobtools.properties. Pulse Nuevo > Otro > General > Archivo > Siguiente. Escriba un nombre para el archivo, como por ejemplo, customCustomerSegmentExportAttributesLOB.properties y pulse Finalizar.
    3. Repita el paso anterior para crear los archivos de propiedades que contengan el texto traducible de la herramienta Marketing para el idioma predeterminado.
      Por ejemplo, customCustomerSegmentExportAttributesLOB_en_US.properties. Si los usuarios acceden a la herramienta Marketing en diferentes idiomas, cree los archivos de propiedades para cualquier idioma que tenga que estar soportado.
    4. Abra los archivos customCustomerSegmentExportAttributesLOB.properties y customCustomerSegmentExportAttributesLOB_en_US.properties para editarlos. Añada el texto para las opciones de atributo de segmento de clientes a los archivos.
      Por ejemplo,
      customerSegmentExport_Customized_ADDRESS_column=Customer segment BUSINESSTITLE and CITY
      customerSegmentExport_Customized_USERDEMO_column=Customer segment GENDER and AGE
      customerSegmentExport_Customized_column=Customer segment REGISTRATIONUPDATE
      Si ha creado archivos de propiedades para otros idiomas soportados, añada el texto para los atributos en el idioma adecuado a los archivos.
    5. Guarde y cierre los archivos.
  3. Registre las nuevas propiedades en el paquete de recursos.
    1. Expanda LOBTools > WebContent > WEB-INF > src > xml > commerce > shell.
    2. Pulse el botón derecho del ratón en la carpeta shell y luego pulse Nuevo > Otros.
    3. Asigne un nombre al archivo nuevo. Por ejemplo, extMarketingManagementResourceBundle.xml.
    4. Pulse Finalizar.
      Se abre el archivo en el editor XML predeterminado.
    5. Añada las claves del paquete compuesto de recursos para las nuevas opciones de atributo de segmento de clientes para definir un paquete de recursos para las series de texto personalizadas.
    6. Guarde y cierre el archivo.
  4. Registre el archivo de paquete de recursos dondequiera que se utilice.
    Por ejemplo:
    
    <dependency localName="extMarketingManagementResourceBundle" moduleName="cmc/MyCompany/extMarketingManagementResourceBundle"/>
    
  5. Cree la definición de objeto de exportación de segmento de clientes para incluir la definición para las nuevas opciones de atributo de segmento de clientes. La definición de objeto añade soporte para el atributo de segmento de clientes que se utilizará en un objeto de exportación de segmento de clientes dentro de la infraestructura del Management Center.
    1. Vaya al directorio LOBTools\WebContent\WEB-INF\src\xml\commerce\marketing\objectDefinitions.
    2. Abra el archivo CustomerSegmentExportPrimaryObjectDefinition.xml para editarlo.
    3. Añada la definición de objeto para el atributo de segmento de clientes que desea añadir al archivo.
      Por ejemplo,
      <!- The property for specifying whether or not to include customer Customized column. ->
      <PropertyDefinition displayName="Customized ADDRESS column"
        propertyName="Customized_ADDRESS_column" type="integer">
      </PropertyDefinition>
      
      <!- The property for specifying whether or not to include customer Customized column. ->
      <PropertyDefinition displayName="Customized USERDEMO column"
        propertyName="Customized_USERDEMO_column" type="integer">
      </PropertyDefinition>
      
      <!- The property for specifying whether or not to include customer Customized column. ->
      <PropertyDefinition displayName="Customized column"
        propertyName="Customized_column" type="integer">
      </PropertyDefinition>
      Para obtener ejemplos de cómo definir una definición de objeto, revise las definiciones existentes en el archivo CustomerSegmentExportPrimaryObjectDefinition.xml y otros archivos de definición.
    4. Guarde y cierre el archivo.
  6. Cree la definición de vista de propiedades de exportación de segmento del cliente para las nuevas opciones de atributo de segmento de clientes. La definición indica cómo representar la opción para que los usuarios incluyan el nuevo atributo de segmento de clientes en el archivo de exportación.
    Por ejemplo, un recuadro de selección para indicar que la información del atributo se incluye en el archivo de exportación.
    1. Vaya al directorio LOBTools\WebContent\WEB-INF\src\xml\commerce\marketing\propertiesViews.
    2. Abra el archivo CustomerSegmentExportPropertiesView.xml para editarlo.
    3. Añada la definición de vista de propiedad para el atributo de segmento de clientes que desea añadir a la herramienta Marketing.
      Por ejemplo,
      <PropertyCheckbox
        helpText="Customized_ADDRESS_column_helpText"
        name="Customized_ADDRESS_column_CheckBox"
        promptText="${mktMarketingResources.customerSegmentExport_Customized_ADDRESS_column}"
        trueValue="1" falseValue="0"
        propertyName="Customized_ADDRESS_column" />
      <PropertyCheckbox
        helpText="Customized_USERDEMO_column_helpText"
        name="Customized_USERDEMO_column_CheckBox" 
        promptText="${mktMarketingResources.customerSegment_Customized_USERDEMO_column}"
        trueValue="1" falseValue="0"
        propertyName="Customized_USERDEMO_column" />
      <PropertyCheckbox
        helpText="Customized_column_helpText"
        name="Customized_column_CheckBox" 
        promptText="${mktMarketingResources.customerSegmentExport_Customized_column}"
        trueValue="1" falseValue="0"
        propertyName="Customized_column" />
      Para obtener más ejemplos sobre cómo crear una definición de vista de propiedades, revise las definiciones existentes en el archivo CustomerSegmentExportPropertiesView.xml y en otros archivos de propiedades.
    4. Guarde y cierre el archivo.
Amplíe la clase CustomerSegmentExtractCmdImpl para personalizar la característica de exportación de segmento de clientes para incluir los atributos de segmento de clientes nuevos.
  1. Cree una clase Java de implementación para que maneje las nuevas opciones de atributo.
    Por ejemplo, puede denominar esta clase personalizada com.mycompany.marketing.segment.CustomizedCustomerSegmentExtractCmdImpl, donde mycompany es el nombre de su empresa.

    Debe utilizar esta clase de implementación personalizada para ampliar la clase de implementación predeterminada CustomerSegmentExtractCmdImpl para la clase de mandato CustomerSegmentExtractCmd.

    En la nueva clase, amplíe la clase de mandato com.ibm.commerce.marketing.segment.commands.CustomerSegmentExtractCmdImpl. Para ampliar esta clase, añada código en el archivo nuevo para llamar a los métodos de establecimiento para recuperar los atributos de segmento de clientes para añadirlos al archivo de exportación. Puede utilizar los siguientes métodos de establecimiento como ayuda para construir la clase:
    setInclude1stAdditionalADDRESScolumns(String)
    Este método añade columnas para la información de la tabla ADDRESS. Puede incluir varias columnas utilizando el formato:
    setInclude1stAdditionalADDRESScolumns("Column1, Column2, Column3");
    setInclude2ndAdditionalUSERDEMOcolumns(String)
    Este método añade columnas para la información de la tabla USERDEMO. Puede incluir varias columnas utilizando el formato:
    setInclude2ndAdditionalUSERDEMOcolumns("Column1, Column2, Column3");
    setIncludeLastAdditionalCustomTableColumns(String, String, String)
    Este método añade columnas para la información de tablas personalizadas. Cuando establezca este método, identifique la tabla, las columnas y el valor o relación de coincidencia de la tabla personalizada a la columna ADDRESS.MEMBER_ID. Utilice el siguiente formato para definir este método:
    setIncludeLastAdditionalCustomTableColumns("Table", "column1, column2", "relationship to ADDRESS.MEMBER_ID")
    Por ejemplo, el código siguiente llama a estos métodos de establecimiento para recuperar la información del cliente de las tablas ADDRESS, USERDEMO y USERS. La relación entre la tabla USERS y la columna ADDRESS.MEMBER_ID es a través de la columna USERS.USERS_ID.
    public class CustomizedCustomerSegmentExtractCmdImpl extends CustomerSegmentExtractCmdImpl implements CustomerSegmentExtractCmd{
    ...
      public void performExecute() throws ECException
      {
        ..
        setInclude1stAdditionalADDRESScolumns("CITY, STATE, COUNTRY");
        setInclude2ndAdditionalUSERDEMOcolumns("GENDER,AGE");
        setIncludeLastAdditionalCustomTableColumns("USERS","PROFILETYPE, LANGUAGE_ID", "USERS_ID");
        super.performExecute();
        ...
      }
    ...
    }
    Nota: Si la personalización es más compleja, puede utilizar los siguientes métodos de establecimiento para alterar temporalmente el SQL predeterminado que la característica de exportación utiliza para recuperar información del cliente. Alterando temporalmente el SQL predeterminado, puede definir y utilizar el SQL personalizado para recuperar información del cliente. Cuando se utilizan los siguientes métodos de establecimiento para definir el SQL personalizado, los anteriores métodos de establecimiento que personalizan el SQL predeterminado se ignoran, ya que el SQL deja de utilizarse. Cuando vaya a crear la clase de implementación personalizada, llame a los métodos de establecimiento siguientes para utilizar el SQL personalizado. Estos métodos de establecimiento se definen en la clase de mandato CustomerSegmentExtractCmd.
    setSQLSelect(String)
    Este método sustituye la sentencia select de SQL que la característica de exportación de segmento de clientes utiliza para recuperar información. Defina el valor de la sentencia SQL en el formato siguiente
    "SELECT TABLE_<n>.COLUMN_1, ...CLOUMN_N FROM TABLE_1, TABLE_2, ...TABLE_N WHERE TABLE_<m>.MEMBER_ID IN (<QUERY>)"
    Donde (<Query>) es la lista de valores MEMBER.MEMBER_ID para los clientes registrados en el segmento de clientes. La función de exportación de segmento de clientes utiliza el mandato com.ibm.commerce.membergroup.commands.ListUsersInStoreMemberGroupCmd para generar la lista de valores de ID de miembro para el segmento de clientes que un usuario selecciona en la herramienta Marketing. No puede personalizar la recuperación de esta lista para la característica de exportación de segmento de clientes.
    setSQLOrderBy(String)
    Este método altera temporalmente la sentencia ORDER BY SQL de SQL que define cómo se clasifica la información del cliente. Defina el valor de la sentencia SQL con el formato siguiente
    "ORDER BY TABLE_<x>.COLUMN_<y> ASC"
    setFileHeader(String)
    Este método altera temporalmente la cabecera de archivo del archivo de exportación. Siempre que utilice el método de establecimiento setSQLSelect(String), debe utilizar el método de establecimiento setFileHeader(String) para cambiar la secuencia de las cabeceras de columna para que coincidan con el orden de clasificación para el SQL. La cabecera de archivo puede tener el formato siguiente:
    "EMAIL,LOGONID,GENDER,AGE,CITY"
    La característica de exportación utiliza los métodos de establecimiento anteriores siempre que establezca los métodos para tener valores no nulo. Los métodos de establecimiento se combinan para crear una sentencia de SQL que recupera la información de atributo de segmento de clientes. La sentencia SQL completa utiliza el formato de SQL siguiente:
    SELECT T1.C1, T2.C2, T3.C3 
    FROM T1, T2, T3 
    WHERE T1.C2=T2.C3 AND T1.C3=T3.C4 AND T1.MEMBER_ID 
    IN (<Query>) 
    ORDER BY T1.MEMBER_ID ASC 
    Como ejemplo, la siguiente sentencia SQL sustituye el SQL predeterminado para recuperar información para la dirección de correo electrónico del cliente, título, nombre, apellido e ID de inicio de sesión
    SELECT LOWER(T1.EMAIL1) AS LOWER_EMAIL1, T1.PERSONTITLE, T1.FIRSTNAME, T1.LASTNAME, T2.LOGONID
    FROM ADDRESS T1, USERREG T2
    WHERE T1.MEMBER_ID=T2.USERS_ID AND T1.STATUS='P' AND T1.SELFADDRESS=1 AND T1.MEMBER_ID 
    IN (<QUERY>)
    ORDER BY LOWER_EMAIL1 ASC
    El archivo CustomizedCustomerSegmentExtractCmdImpl.java puede incluir el código siguiente para alterar temporalmente el SQL que la característica de exportación utiliza para recuperar información del cliente:
    //Customize SQL query to overrides the SQL select statement 
    //that the customer segment export feature uses to retrieve information.
    		
    String customOrderby = "ORDER BY LOWER_EMAIL1 DESC";
    String customHeader = "EMAIL, PHONE1, ADDRESS1 ";
    StringBuilder sb = new StringBuilder("SELECT ");
    sb.append(
      "LOWER(T1.EMAIL1) AS LOWER_EMAIL1, T1.PHONE1, T1.ADDRESS1, T3.PASSWORDCREATION 
       FROM ADDRESS T1, USERDEMO T2, USERREG T3 ")
      .append("WHERE T1.MEMBER_ID=T2.USERS_ID")
      .append(" AND T1.MEMBER_ID=T3.USERS_ID ")
      .append("AND T1.MEMBER_ID ").append("IN ").append("(<QUERY>)");
    
    String customSQL = sb.toString();
    setSQLSelect(customSQL);
    
    //Override the ORDER BY SQL statement that defines how customer information is sorted
    setSQLOrderBy(customOrderby);
    
    //Override the file header of the export file.
    setFileHeader(customHeader);
  2. Actualice los mandatos de exportación de segmento de clientes para incluir los atributos de segmento de clientes nuevos.
    1. Abra una conexión con la base de datos.
    2. Ejecute la siguiente sentencia SQL para actualizar la clase de implementación de la clase CustomerSegmentExtractCmd en la tabla de base de datos CMDREG y convertirla en la nueva clase de implementación personalizada:
      INSERT INTO cmdreg (STOREENT_ID, INTERFACENAME, DESCRIPTION, CLASSNAME) 
      VALUES (0, 'com.ibm.commerce.marketing.segment.commands.CustomerSegmentExtractCmd', 
      'customized controller command to create Customer Segment Export', 
      'com.mycompany.marketing.segment.commands.CustomizedCustomerSegmentExtractCmdImpl');
      
  3. Vuelva a publicar la aplicación para recoger los cambios de LOBTools.
  4. Inicie o reinicie el servidor de pruebas de HCL Commerce para que los cambios entren en vigor. Pulse con el botón derecho del ratón en el servidor y seleccione Iniciar o Reiniciar.
  5. Verifique si los atributos de segmento de clientes pueden incluirse cuando un segmento de clientes se exporta con la herramienta Marketing.
    1. Inicie la sesión en el Management Center como Director de marketing.
    2. Abra la herramienta Marketing y seleccione la tienda.
    3. En la vista de explorador, pulse Segmentos de clientes. Se muestra la lista de todos los segmentos de clientes de la tienda.
    4. Pulse con el botón derecho del ratón en un segmento de clientes. Pulse Exportar segmento de clientes.
    5. En la pestaña Exportar segmento de clientes, especifique el nombre del archivo CSV de exportación.
    6. Seleccione la opción de atributo que ha añadido y seleccione cualquier otra información de cliente que desee incluir en el archivo.
    7. Pulse Guardar para comenzar el proceso de exportación.
      Los segmentos de clientes pueden incluir muchos clientes, por lo tanto, el proceso de exportación de segmento de clientes puede tardar tiempo.
    8. En la vista de explorador, pulse Exportaciones de segmentos de clientes.
    9. Pulse con el botón derecho del ratón en la exportación del segmento de clientes. Pulse Descargar segmento de clientes. Guarde el archivo en el sistema de archivos local. Abra el archivo y verifique si la información para el atributo que ha añadido se ha incluido en el archivo.