Personnalisation du mappage du nom de propriété UserData et de la configuration de la recherche

Dans cette leçon, vous modifierez le mappage du nom de la zone UserData pour mapper les nouvelles colonnes à la zone UserData du nom CatalogEntryView. Vous créez également un profil de recherche pour renvoyer les données de marge bénéficiaire. Par conséquent, les résultats de recherche dans votre magasin peuvent inclure les données de marge bénéficiaire.

Procédure

  1. Modifiez le mappage du nom de la zone de données utilisateur pour mapper la zone de marge bénéficiaire à une donnée utilisateur.
    1. Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
    2. Développez Search > xml > config > com.ibm.commerce.catalog-ext. Si ce répertoire n'existe pas, créez-le.
    3. Ouvrez le fichier wc-component.xml pour l'éditer.
      Si le fichier n'existe pas, vous devez le créer. Pour plus d'informations, voir Modification des propriétés dans le fichier de configuration du HCL Commerce (wc-component.xml).
    4. Ajoutez le mappage suivant dans votre fichier avant la fin de l'élément </_config:valuemappingservice>.
      
      <_config:valuemapping externalName="CatalogEntryUserDataFieldNameMapping" internalName="CatalogEntryUserDataFieldNameMapping">
        <_config:valuemap externalValue="ProfitMargin" internalValue="profitMargin" />
      </_config:valuemapping>
      
      Si vous avez créé le fichier dans le cadre de la réalisation de ce tutoriel, votre fichier complet peut ressembler au code suivant.
      
      <?xml version="1.0" encoding="UTF-8"?>
      <_config:DevelopmentComponentConfiguration
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-component.xsd "
        xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config">
      
        <_config:valuemappingservice>
          <_config:valuemapping externalName="CatalogEntryUserDataFieldNameMapping"
            internalName="CatalogEntryUserDataFieldNameMapping">
            <_config:valuemap externalValue="ProfitMargin" internalValue="profitMargin" />
          </_config:valuemapping>
        </_config:valuemappingservice>
      </_config:DevelopmentComponentConfiguration>
    5. Enregistrez vos modifications et fermez le fichier.
  2. Modifiez le fichier de configuration de recherche afin que la valeur de la zone de marge bénéficiaire puisse être renvoyée dans un nouveau profil de recherche.
    1. Dans le répertoire com.ibm.commerce.catalog-ext, ouvrez le fichier wc-search.xml pour l'éditer.
      Si le fichier n'existe pas, vous devez le créer. Pour plus d'informations, voir HCL Commerce Search fichier de configuration (wc-search.xml).
    2. Ajoutez le code suivant pour configurer le nouveau profil de recherche de la marge bénéficiaire avant la balise de fin du fichier, </_config:search-config>.
      
      <_config:profile name="X_findCatalogEntryProfitMargin" extends="IBM_findProductByIds_Summary">
        <_config:query inherits="true">
          <_config:postprocessor 
          classname="com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCatalogEntryViewUserDataQueryPostprocessor"/>         
        </_config:query>
        <_config:result inherits="true">
          <_config:field name="profitMargin"/>
        </_config:result> 	
      </_config:profile>
      
      • Ce code définit un nouveau profil de recherche appelé X_findCatalogEntryProfitMargin. Le préfixe "X_" indique que ce profil est un profil de recherche personnalisé.
      • Ce nouveau profil étend un profil de recherche IBM_findProductByIds_Summary existant. Ce profil est utilisé dans le fichier JSP de votre magasin pour récupérer les données de prix. Ce profil est défini dans le fichier suivant : Stores\WebContent\widgetdir\com.ibm.commerce.store.widgets.CatalogEntryRecommendation\CatalogEntryRecommendation_Data.jspf. Vous modifiez ce fichier pour utiliser votre nouveau profil dans la leçon suivante.
      • Ce code ajoute le post-processeur com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCatalogEntryViewUserDataQueryPostprocessor dans le profil de recherche spécifié. Le but de ce post-processeur est de remplir et de mapper les données utilisateur définies dans le fichier wc-componemt.xml dans la réponse REST d'entrée de catalogue finale.
      • Dans votre profil X_findCatalogEntryProfitMargin nouvellement défini, vous ajoutez également la zone profitMargin dans le résultat afin que la marge bénéficiaire soit renvoyée.
      Remarque : profitMargin est l'exemple de nom de zone d'index utilisé dans ce didacticiel. Assurez-vous d'ajouter le nom de zone d'index que vous avez défini lorsque vous avez mis à jour votre fichier de x-schema.xml recherche.
    3. Enregistrez et fermez le fichier.
  3. Ajoutez votre profil personnalisé au service byIds sous productview.
    Chaque service REST prend une liste prédéfinie de profils de recherche. Etant donné que le widget de recommandation de produit utilise le service byIds, vous devez ajouter le profil personnalisé au service byIds défini à l'origine dans le fichier Search-Rest\WebContent\WEB-INF\config\com.ibm.commerce.rest\wc-rest-resourceconfig.xml.
    1. Accédez au répertoire Search-Rest\WebContent\WEB-INF\config\com.ibm.commerce.rest-ext. Vous devez créer le répertoire s'il n'existe pas.
    2. Ouvrez le fichier wc-rest-resourceconfig.xml. Si ce fichier n'existe pas, vous devez le créer. Sous la ressource productview, ajoutez le profil personnalisé à la fin de la liste searchProfile pour les deux services byId :
      
        <GetUri uri="store/{storeId}/productview/byId/{productId}" 
            description="Get product by unique ID" 
            searchProfile="IBM_IBfindProductByIds_Details,IBM_findProductByIdsWithAttributesAndAttachments,
            IBM_findProductByIds_Summary_WithNoEntitlementCheck,IBM_Admin_findProductByIds, X_findCatalogEntryProfitMargin"/>
      
        <GetUri uri="store/{storeId}/productview/byIds" 
            description="Get products by unique IDs"         
            searchProfile="IBM_IBfindProductByIds_Details,IBM_findProductByIdsWithAttributesAndAttachments,
            IBM_findProductByIds_Summary_WithNoEntitlementCheck,IBM_Admin_findProductByIds, X_findCatalogEntryProfitMargin"/>
      Si vous n'avez pas de fichier wc-rest-resourceconfig.xml sous le répertoire com.ibm.commerce.rest-ext, vous pouvez créer le fichier pour qu'il ressemble au code suivant :
      
      <ResourceConfig>
      <Resource name="productview">
        <GetUri uri="store/{storeId}/productview/byId/{productId}" 
            description="Get product by unique ID" 
            searchProfile="IBM_IBfindProductByIds_Details,IBM_findProductByIdsWithAttributesAndAttachments,
            IBM_findProductByIds_Summary_WithNoEntitlementCheck,IBM_Admin_findProductByIds, X_findCatalogEntryProfitMargin"/>
      
        <GetUri uri="store/{storeId}/productview/byIds" 
            description="Get products by unique IDs"         
            searchProfile="IBM_IBfindProductByIds_Details,IBM_findProductByIdsWithAttributesAndAttachments,
            IBM_findProductByIds_Summary_WithNoEntitlementCheck,IBM_Admin_findProductByIds, X_findCatalogEntryProfitMargin"/>
      </Resource>
      </ResourceConfig>
    3. Enregistrez vos modifications et fermez le fichier.
  4. Redémarrez le serveur de test HCL Commerce.
    Pour vous assurer que HCL Commerce reprend les modifications que vous avez apportées dans cette leçon et les leçons antérieures, vous devez redémarrer le serveur de test.