Personalización de la correlación de nombres de la propiedad UserData y de la configuración de búsqueda

En esta lección, modificará la correlación de nombres de campo de UserData para correlacionar las nuevas columnas con el campo UserData del nombre CatalogEntryView. También se crea un perfil de búsqueda para devolver los datos de margen de beneficio. Como consecuencia, los resultados de la búsqueda de la tienda pueden incluir los datos de margen de beneficio.

Procedimiento

  1. Modifique la correlación de nombres de campo de datos de usuario para correlacionar el campo de datos de margen de beneficio con los datos de un usuario.
    1. Abra HCL Commerce Developer y vaya a la vista Explorador de empresa.
    2. Expanda Search > xml > config > com.ibm.commerce.catalog-ext. Si este directorio no existe, debe crearlo.
    3. Abra el archivo wc-component.xml para editarlo.
      Si este archivo no existe, deberá crearlo. Para obtener más información, consulte Cambio de propiedades en el archivo de configuración de HCL Commerce (wc-component.xml).
    4. Añada la correlación siguiente en su archivo antes del final del elemento </_config:valuemappingservice>.
      
      <_config:valuemapping externalName="CatalogEntryUserDataFieldNameMapping" internalName="CatalogEntryUserDataFieldNameMapping">
        <_config:valuemap externalValue="ProfitMargin" internalValue="profitMargin" />
      </_config:valuemapping>
      
      Si ha creado el archivo como parte de la ejecución de esta guía de aprendizaje, el archivo completo puede parecerse al siguiente código.
      
      <?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. Guarde los cambios y cierre el archivo.
  2. Modifique el archivo de configuración de búsqueda para que el valor del campo de margen de beneficio pueda volver en un nuevo perfil de búsqueda.
    1. En el directorio com.ibm.commerce.catalog-ext, abra el archivo wc-search.xml para editarlo.
      Si este archivo no existe, deberá crearlo. Para obtener más información, consulte HCL Commerce Search archivo de configuración (wc-search.xml).
    2. Añada el código siguiente para configurar el nuevo perfil de búsqueda para el margen de beneficio antes de la etiqueta final del archivo, </_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>
      
      • Este código define un nuevo perfil de búsqueda que se llama X_findCatalogEntryProfitMargin. El prefijo 'X_' indica que este perfil es un perfil de búsqueda personalizada.
      • Este nuevo perfil amplía un perfil de búsqueda existente, IBM_findProductByIds_Summary. Este perfil se utiliza en el archivo JSP de la tienda para recuperar los datos de precios. Este perfil se define en el siguiente archivo: Stores\WebContent\widgetdir\com.ibm.commerce.store.widgets.CatalogEntryRecommendation\CatalogEntryRecommendation_Data.jspf. En la lección siguiente modificará este archivo para utilizar su nuevo perfil.
      • Este código añade el com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCatalogEntryViewUserDataQueryPostprocessor postprocesador al perfil de búsqueda especificado. La finalidad de este postprocesador es rellenar y correlacionar los datos de usuario definidos en el archivo wc-componemt.xml en la respuesta REST de entrada de catálogo final.
      • En el perfil que se acaba de definir, X_findCatalogEntryProfitMargin, también se añade el campo profitMargin en el resultado para que se devuelva el margen de beneficio.
      Nota: profitMargin es el ​​Campo de índice​ Nombre​ de ejemplo que se utiliza en esta guía de aprendizaje. Asegúrese de añadir el ​​Campo de índice​ Nombre​ que definió cuando actualizó el archivo x-schema.xml de búsqueda.
    3. Guarde y cierre el archivo.
  3. Añada el perfil personalizado al servicio byIds, en productview.
    Cada servicio REST toma una lista predefinida de perfiles de búsqueda. Puesto que el widget de recomendación de productos utiliza el servicio byIds, deberá añadir el perfil personalizado al servicio byIds originalmente definido en el archivo Search-Rest\WebContent\WEB-INF\config\com.ibm.commerce.rest\wc-rest-resourceconfig.xml.
    1. Vaya al directorio Search-Rest\WebContent\WEB-INF\config\com.ibm.commerce.rest-ext. Debe crear el directorio si no existe.
    2. Abra el archivo wc-rest-resourceconfig.xml. Si este archivo no existe, deberá crearlo. En el recurso productview, añada el perfil personalizado al final de la lista searchProfile, para ambos servicios 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 no tiene el archivo wc-rest-resourceconfig.xml debajo del directorio com.ibm.commerce.rest-ext, puede crearlo para que tenga un código parecido al siguiente:
      
      <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. Guarde los cambios y cierre el archivo.
  4. Reinicie el Servidor de prueba de HCL Commerce.
    Para asegurarse de que HCL Commerce recoge los cambios que se hayan realizado en esta lección, y en lecciones anteriores, deberá reiniciar el servidor de prueba.