getDiscountsByVectorSearch
Recherche sémantique (vectorielle) pour les remises.
Description
Cette méthode effectue une recherche sémantique (vectorielle) pour les remises à partir d'une requête en langage naturel - elle correspond au sens plutôt qu'aux mots-clés exacts. Elle renvoie une Promesse qui se résout en un objet IDiscountsResponse - un conteneur avec items (les remises) et total.
Remises.getDiscountsByVectorSearch(
body*,
langCode,
offset,
limit
);
Schéma des paramètres
Schéma
body(obligatoire): IDiscountsVectorSearch
Corps de la recherche vectorielle
exemple :
{ queryText: "winter sale" }
body.queryText(obligatoire): string
Requête de recherche en langage naturel.
exemple : "vente d'hiver"
body.vectorDistanceThreshold: number
Remplacement du seuil de distance cosinus (0..2).
exemple : 0.3
body.maxHits: number
Top-K candidats récupérés avant la pagination. Par défaut : 100. Max : 500.
exemple : 10
body.debug: boolean
Lorsque vrai, chaque élément retourné obtient un champ distance.
exemple : false
langCode: string
Code de langue. Par défaut : "en_US"
exemple : "en_US"
offset: number
Paramètre pour la pagination. Par défaut : 0
exemple : 0
limit: number
Paramètre pour la pagination. Par défaut : 30
exemple : 30
Exemples
Exemple minimal
const response = await Discounts.getDiscountsByVectorSearch({ queryText: 'winter sale' });
Exemple avec attributs
const response = await Discounts.getDiscountsByVectorSearch(
{
queryText: 'winter sale',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);
Exemple de réponse
{
"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
}
Schéma de réponse
Schéma : IDiscountsResponse
items: IDiscountsEntity[]
Tableau des entités de remise.
items.id: number
L'identifiant unique de la remise.
items.attributeSetId: number | null
L'identifiant de l'ensemble d'attributs lié à la remise, ou null lorsqu'aucun ensemble n'est lié.
items.localizeInfos: ILocalizeInfo
Le nom de la remise.
items.version: number
La version de la remise.
items.identifier: string
L'identifiant de la remise.
items.type: IDiscountType
Le type de la remise.
items.startDate: string
La date de début de la remise.
items.endDate: string
La date de fin de la remise.
items.discountValue: IDiscountValue
La valeur de la remise, y compris son type et ses limites de montant.
items.conditionLogic: string
La logique de la remise. Les valeurs possibles sont "AND" | "OR".
items.conditions: IDiscountCondition[]
Les conditions de la remise.
items.exclusions: Record<string, unknown> | null
Les exclusions de la remise.
items.gifts: Record<string, unknown> | null
Les cadeaux de la remise.
items.giftsReplaceCartItems: boolean
Indique si les cadeaux remplacent les articles du panier.
items.userGroups: Record<string, unknown> | null
Les groupes d'utilisateurs de la remise.
items.userExclusions: Record<string, unknown> | null
Les exclusions d'utilisateurs de la remise.
items.attributeValues: IAttributeValues
Les valeurs d'attribut de la remise.
items.attributeSetIdentifier: string
L'identifiant de l'ensemble d'attributs.
items.bonusEvent: Record<string, unknown>
Configuration de l'événement bonus.
items.position: number
Numéro de position pour le tri.
exemple : 1
items.total: number | string
Nombre total d'entrées associées.
exemple : "1"
items.distance: number
Distance cosinus par rapport à la requête. Renvoie uniquement par le point de terminaison de recherche sémantique (vectorielle) lorsque debug: true est passé dans le corps de la recherche.
exemple : 0.12
total: number
Nombre total de remises.
ℹ️ La recherche sémantique correspond au sens, et non au texte littéral. Pour une correspondance de mots-clés à travers chaque type d'entité à la fois, utilisez globalSearch().