searchProduct
Búsqueda rápida de objetos de página con salida limitada.
Descripción
Este método realiza una búsqueda rápida de objetos de página de productos basada en un nombre de consulta de texto. La búsqueda se realiza en el campo de título del objeto localizeInfos, teniendo en cuenta el código de idioma especificado. Devuelve una Promesa que se resuelve en un array de objetos de producto indexados IProductsEntity - o, con traficLimit: true, en un array de tarjetas cortas IProductSearchResult.
Lo que obtienes depende de traficLimit
El tipo de retorno declarado es IProductsEntity[] | IProductSearchResult[] | IError:
| Config | Resultado | Contiene |
|---|---|---|
traficLimit: false (predeterminado) | IProductsEntity[] | Entidades de producto completas, con attributeValues, localizeInfos, blocks, … |
traficLimit: true | IProductSearchResult[] | La tarjeta de búsqueda rápida en bruto - solo { id, title, pageId } |
En modo de ahorro de tráfico no hay attributeValues en el resultado, así que estrecha antes de leerlo - por tu propia bandera de configuración, o por el campo:
const found = await Products.searchProduct('cos');
if (Array.isArray(found) && found.length && 'attributeValues' in found[0]) {
// IProductsEntity[] — traficLimit is off
} else {
// IProductSearchResult[] — short cards
}
El comportamiento en tiempo de ejecución no ha cambiado; solo el tipo declarado ahora refleja ambos modos.
Products.searchProduct(
name*,
langCode
);
Esquema de parámetros
Esquema
name(required): string
Texto para buscar objetos de página de productos (la búsqueda se basa en el campo de título del objeto localizeInfos con consideración del idioma)
ejemplo: "laminat"
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
Ejemplos
Ejemplo mínimo
const response = await Products.searchProduct('cup');
Ejemplo con atributo langCode
const response = await Products.searchProduct('cup', 'en_US');
Ejemplo de respuesta
[
{
"id": 2957,
"localizeInfos": {
"title": "Cosmo"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"attributeValues": {
"product-name": {
"type": "string",
"value": "Cosmo",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": true
}
},
"attributeSetIdentifier": "products",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"productPages": [
{
"id": 2850,
"pageId": 10,
"productId": 2957,
"positionId": 3193,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"similar"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]
Esquema de respuesta
Esquema: IProductsEntity[] | IProductSearchResult[]
id: number
El identificador único.
ejemplo: 12345
localizeInfos: ILocalizeInfo
El nombre de los productos, teniendo en cuenta la localización.
ejemplo:
{}
statusIdentifier: string | null
Identificadores de estado de la página del producto (puede ser nulo).
ejemplo: "in_stock"
statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo:
{ "title": "Sale" }
attributeSetIdentifier: string | null
ID del conjunto de atributos.
ejemplo: "set_12345"
position: number
Número de ítem (para ordenamiento).
ejemplo: 1
price: number | null
El valor del precio de la página del producto tomado del índice.
ejemplo: 150.00
additional: object
Valor adicional del índice.
ejemplo:
{
"prices": {
"min": 5,
"max": 150
}
}
sku: string | null
SKU del producto (Unidad de Mantenimiento de Stock), puede ser nulo.
ejemplo: "SKU_12345"
isSync: boolean
Indicación de indexación de página.
ejemplo: true
attributeValues: IAttributeValues
Array de valores de atributos del índice, representados.
ejemplo:
[
{
"id": "color",
"value": "red"
}
]
categories: string[]
Categorías de productos.
ejemplo:
[
1,
2,
3
]
isVisible: boolean
Un signo de visibilidad de la página.
ejemplo: true
moduleFormConfigs: Array<IFormConfig>
Configuraciones de formularios del módulo (opcional).
rating: IRating
Datos de calificación.
isPositionLocked: boolean
Indicador de bloqueo de posición de ordenamiento (opcional).
ejemplo: false
relatedIds: number[]
IDs de páginas de productos relacionadas.
ejemplo:
[
12345,
67890
]
paymentStages: unknown
Datos de etapas de pago (puede ser nulo).
ejemplo: null
distance: number
Distancia de relevancia de búsqueda vectorial (semántica). Presente solo en resultados de búsqueda vectorial.
ejemplo: 0.42
discountConfig: Record<string, unknown>
Objeto de configuración de descuento.
ejemplo:
{}
templateIdentifier: string | null
ID de usuario de la plantilla vinculada.
ejemplo: "template_12345"
shortDescTemplateIdentifier: string | null
ID de usuario de la plantilla vinculada para una descripción corta.
ejemplo: "short_desc_template_12345"
signedPrice: string
El precio firmado del producto se obtiene junto con los datos del producto cuando signPrice está configurado.
ver: Precio fijo del producto
ejemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
productPages: IProductPageRef[]
Array de referencias de páginas de productos que vinculan el producto a sus páginas.
ejemplo:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
productPages.id: number
Identificador único del registro de enlace producto-página.
ejemplo: 16
productPages.pageId: number
Identificador de la página a la que está vinculado el producto.
ejemplo: 4
productPages.productId: number
Identificador del producto.
ejemplo: 15
productPages.positionId: number
Identificador de posición de ordenamiento dentro de la página.
ejemplo: 244
productPages.categoryPath: string
Ruta de categoría de la página a la que pertenece el producto.
ejemplo: "products"
blocks: string[]
Array de identificadores de bloques.
ejemplo:
[
"block_12345",
"block_67890"
]
🔒
signedPricees el token firmado que lleva el precio bloqueado — devuélvelo cuando crees un pedido. Ver Precio fijo del producto (signedPrice).
Ejemplos de uso
Guía paso a paso en la documentación:
- Buscar producto — busca rápidamente productos por título.
Pruébalo en vivo
Ejecuta este método de forma interactiva en el sandbox de JS SDK — conecta tu URL de proyecto y token de aplicación en la primera visita, luego abre:
- Buscar producto — busca rápidamente productos por título.