getDiscountsByVectorSearch
Búsqueda semántica (vectorial) de descuentos.
Descripción
Este método realiza una búsqueda semántica (vectorial) de descuentos a partir de una consulta en lenguaje natural; se basa en el significado en lugar de en palabras clave exactas. Devuelve una Promesa que se resuelve en un objeto IDiscountsResponse, que es un contenedor con items (los descuentos) y total.
Descuentos.getDiscountsByVectorSearch(
body*,
langCode,
offset,
limit
);
Esquema de parámetros
Esquema
body(required): IDiscountsVectorSearch
Cuerpo de búsqueda vectorial
ejemplo:
{ queryText: "winter sale" }
body.queryText(required): string
Consulta de búsqueda en lenguaje natural.
ejemplo: "venta de invierno"
body.vectorDistanceThreshold: number
Anulación del umbral de distancia coseno (0..2).
ejemplo: 0.3
body.maxHits: number
Candidatos Top-K obtenidos antes de la paginación. Predeterminado: 100. Máx: 500.
ejemplo: 10
body.debug: boolean
Cuando es verdadero, cada elemento devuelto obtiene un campo distance.
ejemplo: false
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
offset: number
Parámetro para paginación. Predeterminado: 0
ejemplo: 0
limit: number
Parámetro para paginación. Predeterminado: 30
ejemplo: 30
Ejemplos
Ejemplo mínimo
const response = await Discounts.getDiscountsByVectorSearch({ queryText: 'winter sale' });
Ejemplo con atributos
const response = await Discounts.getDiscountsByVectorSearch(
{
queryText: 'winter sale',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);
Ejemplo de respuesta
{
"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 respuesta
Esquema: IDiscountsResponse
items: IDiscountsEntity[]
Array de entidades de descuento.
items.id: number
El identificador único del descuento.
items.attributeSetId: number | null
El identificador del conjunto de atributos vinculado al descuento, o null cuando no hay conjunto vinculado.
items.localizeInfos: ILocalizeInfo
El nombre del descuento.
items.version: number
La versión del descuento.
items.identifier: string
El identificador del descuento.
items.type: IDiscountType
El tipo de descuento.
items.startDate: string
La fecha de inicio del descuento.
items.endDate: string
La fecha de finalización del descuento.
items.discountValue: IDiscountValue
El valor del descuento, incluyendo su tipo y límites de cantidad.
items.conditionLogic: string
La lógica del descuento. Los valores posibles son "AND" | "OR".
items.conditions: IDiscountCondition[]
Las condiciones del descuento.
items.exclusions: Record<string, unknown> | null
Las exclusiones del descuento.
items.gifts: Record<string, unknown> | null
Los regalos del descuento.
items.giftsReplaceCartItems: boolean
Si los regalos reemplazan los artículos del carrito.
items.userGroups: Record<string, unknown> | null
Los grupos de usuarios del descuento.
items.userExclusions: Record<string, unknown> | null
Las exclusiones de usuarios del descuento.
items.attributeValues: IAttributeValues
Los valores de atributos del descuento.
items.attributeSetIdentifier: string
El identificador del conjunto de atributos.
items.bonusEvent: Record<string, unknown>
Configuración del evento de bonificación.
items.position: number
Número de posición para ordenación.
ejemplo: 1
items.total: number | string
Total de entradas relacionadas.
ejemplo: "1"
items.distance: number
Distancia coseno a la consulta. Devuelto solo por el punto final de búsqueda semántica (vectorial) cuando se pasa debug: true en el cuerpo de búsqueda.
ejemplo: 0.12
total: number
Número total de descuentos.
ℹ️ La búsqueda semántica se basa en el significado, no en el texto literal. Para la coincidencia de palabras clave en todos los tipos de entidades a la vez, utiliza globalSearch().