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 - ou, com traficLimit: true, para um array de cartões curtos IProductSearchResult.

O que você obtém depende de traficLimit​

O tipo de retorno declarado é IProductsEntity[] | IProductSearchResult[] | IError:

ConfigResultadoContém
traficLimit: false (padrão)IProductsEntity[]Entidades de produto completas, com attributeValues, localizeInfos, blocks, …
traficLimit: trueIProductSearchResult[]O cartão de busca rápida bruto - apenas { id, title, pageId }

No modo de economia de tráfego, não há attributeValues no resultado, então restrinja antes de lê-lo - pelo seu próprio sinalizador de configuração ou pelo 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
}

O comportamento em tempo de execução permanece inalterado; apenas o tipo declarado agora reflete ambos os modos.

.searchProduct(

,

);

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,
"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": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]

Esquema de resposta​

Esquema: IProductsEntity[] | IProductSearchResult[]

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.
veja: Preço fixo do produto
exemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

productPages: IProductPageRef[]
Array de referências de páginas de produtos vinculando 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: