Pular para o conteúdo principal

searchProduct

Busca rápida por objetos de página com saída limitada.

Descrição

Este método realiza uma busca rápida por objetos de página de produtos com base em um nome de consulta de texto. A busca é realizada no campo título do objeto localizeInfos, levando em consideração o código de idioma especificado. Ele retorna uma Promise que resolve para um array de objetos de Produto indexados IProductsEntity.

Products.searchProduct(

name*, langCode

);

Esquema de parâmetros

Esquema

name(obrigatório): string
Texto para buscar objetos de página de produtos (a busca é baseada no campo título do objeto localizeInfos com consideração de idioma)
exemplo: "laminat"

langCode: string
Código do idioma. Padrão: "en_US"
exemplo: "en_US"

Exemplos

Exemplo mínimo

const response = await Products.searchProduct('cup');

Exemplo com atributo langCode

const response = await Products.searchProduct('cup', 'en_US');

Exemplo de resposta

[
{
"id": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"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": "",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"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": 582,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 582
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]

Esquema de resposta

Esquema: IProductsEntity[]

id: number
O identificador único.
exemplo: 12345

localizeInfos: ILocalizeInfo
O nome dos produtos, levando em conta a localização.
exemplo:

{}

statusIdentifier: string | null
Identificadores de status da página do produto (pode ser nulo).
exemplo: "in_stock"

statusLocalizeInfos: ILocalizeInfo
Nome de status localizado para o produto.
exemplo:

{ "title": "Sale" }

attributeSetIdentifier: string | null
ID do conjunto de atributos.
exemplo: "set_12345"

position: number
Número do item (para ordenação).
exemplo: 1

price: number | null
O valor do preço da página do produto retirado do índice.
exemplo: 150.00

additional: object
Valor adicional do índice.
exemplo:

{
"prices": {
"min": 5,
"max": 150
}
}

sku: string | null
SKU do produto (Unidade de Manutenção de Estoque), pode ser nulo.
exemplo: "SKU_12345"

isSync: boolean
Indicação de indexação da página.
exemplo: true

attributeValues: IAttributeValues
Array de valores de atributos do índice, representados.
exemplo:

[
{
"id": "color",
"value": "red"
}
]

categories: string[]
Categorias de produtos.
exemplo:

[
1,
2,
3
]

isVisible: boolean
Um sinal de visibilidade da página.
exemplo: true

moduleFormConfigs: Array<IFormConfig>
Configurações de formulário do módulo (opcional).

rating: IRating
Dados de avaliação.

isPositionLocked: boolean
Indicador de bloqueio da posição de ordenação (opcional).
exemplo: false

relatedIds: number[]
IDs de páginas de produtos relacionadas.
exemplo:

[
12345,
67890
]

paymentStages: unknown
Dados das etapas de pagamento (pode ser nulo).
exemplo: null

distance: number
Distância de relevância da busca vetorial (semântica). Presente apenas nos resultados da busca vetorial.
exemplo: 0.42

discountConfig: Record<string, unknown>
Objeto de configuração de desconto.
exemplo:

{}

templateIdentifier: string | null
ID do usuário do template vinculado.
exemplo: "template_12345"

shortDescTemplateIdentifier: string | null
ID do usuário do template vinculado para uma descrição curta.
exemplo: "short_desc_template_12345"

signedPrice: string
O preço assinado do produto é obtido junto com os dados do produto quando signPrice está definido.
exemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

productPages: IProductPageRef[]
Array de referências de páginas de produtos ligando o produto às suas páginas.
exemplo:

[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]

productPages.id: number
Identificador único do registro de link produto-página.
exemplo: 16

productPages.pageId: number
Identificador da página à qual o produto está vinculado.
exemplo: 4

productPages.productId: number
Identificador do produto.
exemplo: 15

productPages.positionId: number
Identificador da posição de ordenação dentro da página.
exemplo: 244

productPages.categoryPath: string
Caminho da categoria da página à qual o produto pertence.
exemplo: "products"

blocks: string[]
Array de identificadores de blocos.
exemplo:

[
"block_12345",
"block_67890"
]

🔒 signedPrice é o token assinado que carrega o preço bloqueado — passe-o de volta quando você criar um pedido. Veja Preço fixo do produto (signedPrice).


Exemplos de uso

Passo a passo na documentação:

Experimente ao vivo

Execute este método interativamente no sandbox do JS SDK — conecte sua URL do Projeto e Token do App na primeira visita, depois abra: