HCL Commerce Developer

Ajout d'un attribut de segment de clientèle au fichier d'exportation de segment de clientèle

Vous pouvez personnaliser la fonction d'exportation de segment de clientèle dans le Management Center pour inclure plusieurs attributs de segment de clientèle dans le fichier exporté.

Remarque : Pour garantir la sécurité des informations client, suivez toutes les règles et réglementations concernant la gestion, le stockage et l'accès aux informations client.

Avant de commencer

Vérifiez que votre environnement est configuré pour exporter les données de segment de clientèle à partir de votre environnement de production.
Pour tester la personnalisation dans votre environnement de développement avec les données de segment de clientèle de votre environnement de production, effectuez la tâche suivante :

Pourquoi et quand exécuter cette tâche

Par défaut, les utilisateurs métier peuvent inclure les attributs de segment de clientèle suivants dans un fichier d'exportation de segment de clientèle :
  • Adresse électronique (ADDRESS.EMAIL1)
  • ID de connexion (USERREG.LOGONID)
  • Titre du client (ADDRESS.PERSONTITLE)
  • Prénom du client (ADDRESS.FIRSTNAME)
  • Nom de famille du client (ADDRESS.LASTNAME)
Les professionnels peuvent également sélectionner cette option pour inclure les clients qui n'ont pas choisi de recevoir des messages marketing par courrier électronique.

Si les professionnels nécessitent davantage d'informations client dans le fichier d'exportation, vous pouvez personnaliser la fonction d'exportation pour inclure des informations extraites de toute table de base de données, y compris des tables personnalisées. Cependant, cette table doit comporter une valeur ou une relation correspondante avec la colonne MEMBER_ID de la table ADRESSE.

Par exemple, vous pouvez personnaliser l'exportation de segment de clientèle pour inclure l'un des types suivants d'informations client pour la liste de clients d'un segment :
  • Ville (ADDRESS.CITY)
  • Département/Province (ADDRESS.STATE)
  • Pays (ADDRESS.COUNTRY)
  • Numéro de téléphone (ADDRESS.PHONE1)
  • Genre (USERDEMO.GENDER)
  • Situation de famille (USERDEMO.MARITALSTATUS)

Procédure

Personnalisez l'outil Marketing pour afficher de nouvelles options d'attribut de segment de clientèle pour l'exportation
  1. Ouvrez HCL Commerce Developer. Basculez vers la vue Explorateur d'entreprise.
  2. Définissez les propriétés de texte de l'outil Marketing applicables aux options d'attribut de segment de clientèle.
    1. Accédez au répertoire LOBTools\Java Resources\src\com.mycompany.commerce.marketing.client.lobtools.properties.

      Si le package n'existe pas, créez le package com.mycompany.commerce.marketing.client.lobtools.properties.

    2. Cliquez avec le bouton droit de la souris sur le module com.mycompany.commerce.marketing.client.lobtools.properties. Cliquez sur Nouveau > Autre > Général > Fichier > Suivant. Entrez un nom pour le fichier (par exemple, customCustomerSegmentExportAttributesLOB.properties) et cliquez sur Terminer.
    3. Répétez l'étape précédente pour créer les fichiers de propriétés qui doivent contenir le texte traduisible de l'outil Marketing pour la langue par défaut.
      Par exemple, customCustomerSegmentExportAttributesLOB_en_US.properties. Si les utilisateurs accèdent à l'outil Marketing dans différentes langues, créez les fichiers de propriétés pour toutes les langues à prendre en charge.
    4. Ouvrez les fichiers customCustomerSegmentExportAttributesLOB.properties et customCustomerSegmentExportAttributesLOB_en_US.properties pour les éditer. Dans ces fichiers, ajoutez le texte des options d'attribut de segment de clientèle.
      Par exemple,
      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 vous avez créé des fichiers de propriétés pour d'autres langues prises en charge, ajoutez le texte des attributs dans les langues appropriées.
    5. Sauvegardez et fermez les fichiers.
  3. Enregistrez les nouvelles propriétés dans le regroupement de ressources.
    1. Développez LOBTools > WebContent > WEB-INF > src > xml > commerce > shell.
    2. Cliquez avec le bouton droit de la souris sur le dossier shell, puis cliquez sur Nouveau > Autre.
    3. Nommez votre nouveau fichier. Par exemple, extMarketingManagementResourceBundle.xml.
    4. Cliquez sur Terminer.
      Le fichier apparaît dans l'éditeur XML par défaut.
    5. Ajoutez les clés de regroupement de ressources pour les nouvelles options d'attribut de segment de clientèle afin de définir le regroupement de ressources personnalisé.
    6. Enregistrez et fermez le fichier.
  4. Enregistrez le fichier de regroupement de ressources là où il est utilisé.
    Par exemple :
    
    <dependency localName="extMarketingManagementResourceBundle" moduleName="cmc/MyCompany/extMarketingManagementResourceBundle"/>
    
  5. Créez la définition d'objet d'exportation de segment de clientèle pour inclure la définition des nouvelles options d'attribut de segment de clientèle. La définition d'objet permet d'utiliser l'attribut de segment de clientèle dans un objet d'exportation de segment de clientèle, dans la structure du Management Center.
    1. Accédez au répertoire LOBTools\WebContent\WEB-INF\src\xml\commerce\marketing\objectDefinitions.
    2. Ouvrez le fichier CustomerSegmentExportPrimaryObjectDefinition.xml pour l'éditer.
    3. Ajoutez la définition d'objet pour l'attribut de segment de clientèle à ajouter au fichier.
      Par exemple,
      <!- 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>
      Pour obtenir des exemples de procédure de définition d'objet, examinez les définitions existantes dans le fichier CustomerSegmentExportPrimaryObjectDefinition.xml et dans les autres fichiers de définition.
    4. Enregistrez et fermez le fichier.
  6. Créez la définition de vue présentant les propriétés d'exportation de segment de clientèle pour les nouvelles options d'attribut de segment de clientèle. Cette définition indique comment afficher l'option permettant aux utilisateurs d'inclure le nouvel attribut de segment de clientèle dans le fichier d'exportation.
    Par exemple, sous la forme d'une case à cocher pour indiquer que les informations d'attribut sont incluses dans le fichier d'exportation.
    1. Accédez au répertoire LOBTools\WebContent\WEB-INF\src\xml\commerce\marketing\propertiesViews.
    2. Ouvrez le fichier CustomerSegmentExportPropertiesView.xml pour l'éditer.
    3. Ajoutez la définition de vue de propriétés pour l'attribut de segment de clientèle à ajouter à l'outil Marketing.
      Par exemple,
      <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" />
      Pour obtenir d'autres exemples de procédure de définition de vue de propriétés, examinez les définitions existantes dans le fichier CustomerSegmentExportPropertiesView.xml et dans les autres fichiers de propriétés.
    4. Enregistrez et fermez le fichier.
Etendez la classe de commande CustomerSegmentExtractCmdImpl afin de personnaliser la fonction d'exportation de segment de clientèle pour inclure les nouveaux attributs de segment de clientèle.
  1. Créez une classe Java d'implémentation pour gérer les nouvelles options d'attribut.
    Par exemple, vous pouvez nommer cette classe com.mycompany.marketing.segment.CustomizedCustomerSegmentExtractCmdImpl personnalisée, où mycompany est le nom de votre entreprise.

    Vous devez utiliser cette classe d'implémentation personnalisée pour étendre la classe d'implémentation par défaut CustomerSegmentExtractCmdImpl de la classe de commande CustomerSegmentExtractCmd.

    Dans votre nouvelle classe, étendez la classe de commande com.ibm.commerce.marketing.segment.commands.CustomerSegmentExtractCmdImpl. Pour étendre cette classe, ajoutez du code dans le nouveau fichier afin d'appeler des méthodes d'accès set pour extraire les attributs de segment de clientèle à ajouter au fichier d'exportation. Vous pouvez utiliser les méthodes d'accès set suivantes pour vous aider à construire votre classe :
    setInclude1stAdditionalADDRESScolumns(String)
    Cette méthode ajoute des colonnes d'informations extraites de la table ADDRESS. Vous pouvez inclure plusieurs colonnes en respectant le format suivant :
    setInclude1stAdditionalADDRESScolumns("Column1, Column2, Column3");
    setInclude2ndAdditionalUSERDEMOcolumns(String)
    Cette méthode ajoute des colonnes d'informations extraites de la table USERDEMO. Vous pouvez inclure plusieurs colonnes en respectant le format suivant :
    setInclude2ndAdditionalUSERDEMOcolumns("Column1, Column2, Column3");
    setIncludeLastAdditionalCustomTableColumns(String, String, String)
    Cette méthode ajoute des colonnes d'informations extraites de tables personnalisées. Lorsque vous définissez cette méthode, identifiez la table, les colonnes ainsi que la valeur ou la relation correspondante entre la table personnalisée et la colonne ADDRESS.MEMBER_ID. Respectez le format suivant pour définir cette méthode :
    setIncludeLastAdditionalCustomTableColumns("Table", "column1, column2", "relationship to ADDRESS.MEMBER_ID")
    Par exemple, le code suivant appelle les méthodes d'accès set ci-après pour extraire des informations client à partir des tables ADDRESS, USERDEMO et USERS. La relation entre la table USERS et la colonne ADDRESS.MEMBER_ID passe par la colonne 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();
        ...
      }
    ...
    }
    Remarque : Si la personnalisation est plus complexe, vous pouvez employer les méthodes d'accès set suivantes pour remplacer l'instruction SQL par défaut que la fonction d'exportation utilise pour extraire des informations client. En remplaçant l'instruction SQL par défaut, vous pouvez définir et utiliser une instruction SQL personnalisée pour extraire des informations client. Lorsque vous employez les méthodes d'accès set suivantes pour définir une instruction SQL personnalisée, les méthodes d'accès set précédentes personnalisant l'instruction SQL par défaut sont ignorées puisque celle-ci n'est plus utilisée. Lorsque vous créez une classe d'implémentation personnalisée, appelez les méthodes d'accès set suivantes pour utiliser l'instruction SQL personnalisée. Ces méthodes d'accès set sont définies dans la classe de commande CustomerSegmentExtractCmd.
    setSQLSelect(String)
    Cette méthode remplace l'instruction SQL select que la fonction d'exportation de segment de clientèle utilise pour extraire des informations. Définissez la valeur de l'instruction SQL en respectant le format suivant :
    "SELECT TABLE_<n>.COLUMN_1, ...CLOUMN_N FROM TABLE_1, TABLE_2, ...TABLE_N WHERE TABLE_<m>.MEMBER_ID IN (<QUERY>)"
    (<Query>) est la liste des valeurs MEMBER.MEMBER_ID des clients enregistrés dans le segment de clientèle. La fonction d'exportation de segment de clientèle utilise la commande com.ibm.commerce.membergroup.commands.ListUsersInStoreMemberGroupCmd pour générer la liste des valeurs d'ID membre du segment de clientèle sélectionné par l'utilisateur dans l'outil Marketing. Vous ne pouvez pas personnaliser l'extraction de cette liste pour la fonction d'exportation de segment de clientèle.
    setSQLOrderBy(String)
    Cette méthode remplace l'instruction ORDER BY SQL qui définit le mode de tri des informations client. Définissez la valeur de l'instruction SQL en respectant le format suivant :
    "ORDER BY TABLE_<x>.COLUMN_<y> ASC"
    setFileHeader(String)
    Cette méthode remplace l'en-tête du fichier d'exportation. Lorsque vous employez la méthode d'accès set setSQLSelect(String), vous devez utiliser la méthode d'accès set setFileHeader(String) pour changer la séquence des en-têtes de colonne selon l'ordre de tri de votre instruction SQL. Le format de l'en-tête de fichier peut se présenter comme suit :
    "EMAIL,LOGONID,GENDER,AGE,CITY"
    La fonction d'exportation utilise les méthodes d'accès set précédentes lorsque vous définissez les méthodes pour qu'elles disposent de valeurs non nulles. Les méthodes d'accès set sont combinées pour créer une instruction SQL qui extrait des informations sur les attributs de segment de clientèle. L'instruction SQL complète respecte le format SQL suivant :
    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 
    Par exemple, l'instruction SQL suivante remplace l'instruction SQL par défaut pour extraire l'adresse électronique, le titre, le prénom, le nom de famille et l'ID de connexion du client
    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
    Le fichier CustomizedCustomerSegmentExtractCmdImpl.java peut inclure le code suivant pour remplacer l'instruction SQL que la fonction d'exportation utilise pour extraire des informations client.
    //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. Mettez à jour les commandes d'exportation de segment de clientèle pour inclure les nouveaux attributs de segment de clientèle.
    1. Ouvrez une connexion à votre base de données.
    2. Exécutez l'instruction SQL suivante pour mettre à jour, dans la table de base de données CustomerSegmentExtractCmd, la classe d'implémentation de la classe CMDREG pour qu'elle devienne la nouvelle classe d'implémentation personnalisée :
      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. Republiez l'application pour récupérer les modifications LOBTools.
  4. Démarrez ou redémarrez le serveur de test HCL Commerce pour que les modifications prennent effet. Cliquez avec le bouton droit de la souris sur le serveur et sélectionnez Démarrer ou Redémarrer.
  5. Vérifiez que les attributs de segment de clientèle peuvent être inclus lorsqu'un segment de clientèle est exporté à l'aide de l'outil Marketing.
    1. Connectez-vous au Management Center en tant que Directeur marketing.
    2. Ouvrez l'outil Marketing et sélectionnez votre magasin.
    3. Dans la vue Explorateur, cliquez sur Segments de clientèle. La liste répertoriant l'ensemble des segments de clientèle pour votre magasin s'affiche.
    4. Cliquez avec le bouton droit de la souris sur un segment de clientèle. Cliquez sur Exporter un segment de clientèle.
    5. Sur l'onglet Exporter un segment de clientèle, entrez le nom du fichier CSV d'exportation.
    6. Sélectionnez l'option d'attribut que vous avez ajoutée et sélectionnez les informations client à inclure dans le fichier.
    7. Cliquez sur Sauvegarder pour commencer le processus d'exportation.
      Les segments de clientèle pouvant comporter de nombreux clients, le processus d'exportation peut durer un certain temps.
    8. Dans la vue de l'explorateur, cliquez sur Exportations de segments de clientèle.
    9. Cliquez avec le bouton droit de la souris sur l'exportation de segment de clientèle. Cliquez sur Télécharger un segment de clientèle. Sauvegardez le fichier dans votre système de fichiers local. Ouvrez le fichier et vérifiez qu'il contient les informations sur l'attribut que vous avez ajouté.