HCL Commerce Version 9.1.8.0 or later

Campos de inventario y personalizados en un perfil de búsqueda personalizado

Puede añadir campos personalizados en el perfil de búsqueda editando la configuración de ZooKeeper.

Before you begin

ZooKeeper almacena los perfiles con nombre en uno de sus nodos. Puede crear, actualizar, eliminar y obtener perfiles utilizando el punto final de los perfiles del servicio de consulta. El punto final del perfil es:
https://data_environment_hostname:30921/search/resources/api/v2/documents/profiles/profileName
No es necesario reiniciar ningún contenedor después de añadir un perfil utilizando este punto final.
Asegúrese de que ha correlacionado el nombre de campo en el componente ZooKeeper nodo, como en el ejemplo siguiente. Para comprender cómo se gestionan los perfiles de búsqueda en ZooKeeper, consulte Configuración de servicios de consulta en ZooKeeper. Para más información sobre los perfiles de búsqueda predeterminado, consulte Perfiles de búsqueda.
{
    "valuemappingservice": {
        "valuemapping": [
            {
                "internalName": "CatalogEntryUserDataFieldNameMapping",
                "externalName": "CatalogEntryUserDataFieldNameMapping",
                "valuemap": [
                    {
                        "externalValue": "inventories.*.quantity",
                        "internalValue": "inventories.*.quantity"
                    },
     {
                        "externalValue": "workspace",
                        "internalValue": "workspaceName"
                    }
                ]
            }
        ]
    }
}
Para campos de inventario, busque parámetros de acuerdo con el patrón inventories.*.quantity. Esta búsqueda devuelve todos los artículos de inventario numerados; por ejemplo, inventories.10501.quantity.

Procedure

  1. Utilice el procedimiento siguiente para añadir búsquedas de términos.
    1. i) Cree un perfil de personalizado.
      Para encontrar todos los elementos del inventario encontrados utilizando el comodín*, busque en el término central, en Perfil personalizado añada el campo de respuesta inventories.*.quantity.
      {
      	"parentProfileName": "HCL_findProductsBySearchTerm",
      	"profileName": "X_findProductsBySearchTerm",
      	"lookupProfileName": "X_findCatalogEntryById",
      	"query": {
      		"responseFields": [
      			"inventories.*.quantity",
      			“workspaceName”
      		]
      	}
      }
      
      Si desea encontrar un artículo de inventario específico, agregue un campo de respuesta en el Perfil personalizado que especifique el número de inventario. Por ejemplo, inventories.10501.quantity.
       {
      		"parentProfileName": "HCL_findProductsBySearchTerm",
      		"profileName": "X_findProductsBySearchTerm",
      "lookupProfileName" : "X_findCatalogEntryById",
      		"query": {
      			"responseFields": [
      				"inventories.10501.quantity",
      				“workspaceName”
      			]
      		}
                  		}
      
    2. Cree un perfil de búsqueda.
      {
      			"parentProfileName": "HCL_findCatalogEntryById",
      			"profileName": "X_findCatalogEntryById",
      			"query": {
      				"responseFields": [
      					"inventories.10501.quantity"
      				]
      			}
      }
      
      Note: Si la característica de imagen principal del producto está habilitada, cree el perfil de búsqueda personalizado con todos los cambios añadidos dentro de X_findProductsBySearchTerm. HCL_findCatalogEntryById es el perfil interno de HCL que se utiliza para la búsqueda, este perfil no se puede alterar temporalmente como perfil personalizado. Solo puede crear el perfil de extensión a partir del perfil HCL_findCatalogEntryById. Si la imagen del producto principal está deshabilitada, el perfil de búsqueda no está en uso.
  2. 2) Para la exploración de categorías
    1. Cree un perfil de cliente.
      Para encontrar todos los artículos del inventario según su término central, agregue el campo de respuesta inventories.*.quantity en Perfil personalizado.
      {
      		"parentProfileName": "HCL_findProductsByCategory",
      		"profileName": "X_findProductsByCategory",
      		"lookupProfileName": "X_findCatalogEntryByIdForBrowse",
      		"query": {
      			"responseFields": [
      				"inventories.*.quantity",
      				"workspaceName"
      			]
      		}
      }
      
      Si desea encontrar un artículo de inventario específico, agregue un campo de respuesta en el Perfil personalizado que especifique el número de inventario. Por ejemplo, inventory.10501.quantity.
    2. Cree un perfil de búsqueda.
      {
      			"parentProfileName": "HCL_findCatalogEntryByIdForBrowse",
      			"profileName": "X_findCatalogEntryByIdForBrowse",
      			"query": {
      				"responseFields": [
      					"inventories.*.quantity",
      					"workspaceName"
      				]
      			}
      }
      
      Note: Si la característica de imagen principal del producto está habilitada, cree el perfil de búsqueda personalizado con todos los cambios añadidos dentro de X_findProductsByCategory. HCL_findCatalogEntryByIdForBrowse es el perfil interno de HCL que se utiliza para la búsqueda, este perfil no se puede alterar temporalmente como perfil personalizado. El usuario solo puede crear el perfil de extensión a partir del perfil HCL_findCatalogEntryByIdForBrowse. If hero product image is disabled, the lookup profile is not in use.

Formateo de campos con nombres que acaban en *

Para formatear campos que terminan con * en el servicio de mapeo de valores en json, establezca formatUserData en el valor true en la sección de correlaciones de valores SearchConfiguration. De forma predeterminada, el valor es true para este distintivo.

Example

A continuación se muestra un perfil de ejemplo.
{
	"parentProfileName": "HCL_findProductsBySearchTerm",
	"profileName": "X_findProductsBySearchTerm",
	"lookupProfileName": "X_findCatalogEntryById",
	"query": {
		"responseFields": [
			"test.list",
			"test1.list1",
			"category.10001-10001.*"
		]
	}
}

{
	"parentProfileName": "HCL_findCatalogEntryById",
	"profileName": "X_findCatalogEntryById",
	"query": {
		"responseFields": [
			"test.list",
			"test1.list1",
			"category.10001-10001.*"
		]
	}
}
Correlación de ejemplo para campos personalizados:
	{
		"valuemappingservice": {
			"valuemapping": [
				{
					"internalName": "CatalogEntryUserDataFieldNameMapping",
					"externalName": "CatalogEntryUserDataFieldNameMapping",
					"valuemap": [
						{
							"externalValue": "List",
							"internalValue": "test.*"
						},
						{
							"externalValue": "List1",
							"internalValue": "test1.list1"
						},
						{
							"externalValue": "CategoryDetails",
							"internalValue": "category.*"
						}
					]
				}
			]
		}
}
Después de ejecutar el término API de búsqueda, se devuelve en la respuesta la sección Datos de usuario con campos personalizados.
"UserData": [
	{
		"List1": [
			"10",
			"20"
		],
		"CategoryDetails": [
			{
				"10001-10001": {
					"id": "10001",
					"name": "dresses",
					"sequence": "1.0"
				}
			}
		],
		"List": [
			{
				"list": "10"
			},
			{
				"list": "20"
			}
		]
	}
]

Para List y List1 la estructura de respuestas es diferente, porque hay distintas correlaciones en la sección de correlación de valores. Si se especifica la vía de acceso de campo completa, se devolverá una lista similar a List1. Si el comodín * se utiliza en la correlación de campos, se formateará como un objeto json similar al objeto List de ejemplo.

Note: No anule los siguientes perfiles. Son solo para uso interno de HCL.
  • HCL_findCatalogEntryByIdForBrowse
  • HCL_findCatalogEntryById