Pular para o conteúdo principal

getDiscountsByVectorSearch

Busca semântica (vetorial) por descontos.

Descrição

Este método realiza uma busca semântica (vetorial) por descontos a partir de uma consulta em linguagem natural - ele corresponde ao significado em vez de palavras-chave exatas. Retorna uma Promise que resolve para um objeto IDiscountsResponse - um contêiner com items (os descontos) e total.

Descontos.getDiscountsByVectorSearch(

body*, langCode, offset, limit

);

Esquema de parâmetros

Esquema

body(obrigatório): IDiscountsVectorSearch
Corpo da busca vetorial
exemplo:

{ queryText: "winter sale" }

body.queryText(obrigatório): string
Consulta de busca em linguagem natural.
exemplo: "promoção de inverno"

body.vectorDistanceThreshold: number
Substituição do limite de distância cosseno (0..2).
exemplo: 0.3

body.maxHits: number
Candidatos Top-K buscados antes da paginação. Padrão: 100. Máx: 500.
exemplo: 10

body.debug: boolean
Quando verdadeiro, cada item retornado recebe um campo distance.
exemplo: false

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

offset: number
Parâmetro para paginação. Padrão: 0
exemplo: 0

limit: number
Parâmetro para paginação. Padrão: 30
exemplo: 30

Exemplos

Exemplo mínimo

const response = await Discounts.getDiscountsByVectorSearch({ queryText: 'winter sale' });

Exemplo com atributos

const response = await Discounts.getDiscountsByVectorSearch(
{
queryText: 'winter sale',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);

Exemplo de resposta

{
"items": [
{
"id": 1,
"type": "DISCOUNT",
"attributeSetId": 31,
"conditionLogic": "AND",
"discountValue": {
"value": 10,
"maxAmount": 5,
"discountType": "FIXED_AMOUNT",
"applicability": "TO_PRODUCT"
},
"exclusions": null,
"gifts": null,
"giftsReplaceCartItems": false,
"userGroups": null,
"userExclusions": null,
"localizeInfos": {
"title": "Example discount"
},
"version": 0,
"identifier": "example_discount",
"startDate": "2026-03-14T14:55:19.928Z",
"endDate": "2026-07-31T13:55:24.647Z",
"attributeValues": {
"example_discount": {
"type": "string",
"value": "test value",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
}
},
"conditions": [],
"bonusEvent": null,
"position": 1
}
],
"total": 1
}

Esquema de resposta

Esquema: IDiscountsResponse

items: IDiscountsEntity[]
Array de entidades de desconto.

items.id: number
O identificador único do desconto.

items.attributeSetId: number | null
O identificador do conjunto de atributos vinculado ao desconto, ou null quando nenhum conjunto está vinculado.

items.localizeInfos: ILocalizeInfo
O nome do desconto.

items.version: number
A versão do desconto.

items.identifier: string
O identificador do desconto.

items.type: IDiscountType
O tipo do desconto.

items.startDate: string
A data de início do desconto.

items.endDate: string
A data de término do desconto.

items.discountValue: IDiscountValue
O valor do desconto, incluindo seu tipo e limites de quantia.

items.conditionLogic: string
A lógica do desconto. Os valores possíveis são "AND" | "OR".

items.conditions: IDiscountCondition[]
As condições do desconto.

items.exclusions: Record<string, unknown> | null
As exclusões do desconto.

items.gifts: Record<string, unknown> | null
Os presentes do desconto.

items.giftsReplaceCartItems: boolean
Se os presentes substituem os itens do carrinho.

items.userGroups: Record<string, unknown> | null
Os grupos de usuários do desconto.

items.userExclusions: Record<string, unknown> | null
As exclusões de usuários do desconto.

items.attributeValues: IAttributeValues
Os valores dos atributos do desconto.

items.attributeSetIdentifier: string
O identificador do conjunto de atributos.

items.bonusEvent: Record<string, unknown>
Configuração do evento bônus.

items.position: number
Número da posição para ordenação.
exemplo: 1

items.total: number | string
Contagem total de entradas relacionadas.
exemplo: "1"

items.distance: number
Distância cosseno em relação à consulta. Retornado apenas pelo endpoint de busca semântica (vetorial) quando debug: true é passado no corpo da busca.
exemplo: 0.12

total: number
Total de descontos.

ℹ️ A busca semântica corresponde ao significado, não ao texto literal. Para correspondência de palavras-chave em todos os tipos de entidades de uma vez, use globalSearch().