getProductsByVectorSearch
Recherche sémantique (vectorielle) pour les produits.
Description
Cette méthode effectue une recherche sémantique (vectorielle) pour les produits à 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 tableau d'objets IProductsEntity.
Produits.getProductsByVectorSearch(
body*,
langCode,
offset,
limit
);
Schéma des paramètres
Schéma
body(obligatoire): IVectorSearchProducts
Corps de la recherche vectorielle
exemple:
{ queryText: "red running shoes" }
body.queryText(obligatoire): string
Requête de recherche en langage naturel.
exemple: "chaussures de course rouges"
body.vectorDistanceThreshold: number
Distance vectorielle maximale pour un résultat.
exemple: 0.5
body.maxHits: number
Nombre maximal de résultats à retourner.
exemple: 50
body.debug: boolean
Inclure des informations de débogage dans la réponse.
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 Products.getProductsByVectorSearch({ queryText: 'red running shoes' });
Exemple avec des attributs
const response = await Products.getProductsByVectorSearch(
{
queryText: 'red running shoes',
vectorDistanceThreshold: 0.5,
maxHits: 50,
},
'en_US',
0,
30,
);
Exemple de réponse
{
"items": [
{
"id": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"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
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 538,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 538
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {},
"isPositionLocked": false
}
],
"total": 1
}
Schéma de réponse
Schéma : IProductsEntity[]
id: number
L'identifiant unique.
exemple: 12345
localizeInfos: ILocalizeInfo
Le nom des produits, en tenant compte de la localisation.
exemple:
{}
statusIdentifier: string | null
Identifiants de statut de la page produit (peut être nul).
exemple: "en_stock"
statusLocalizeInfos: ILocalizeInfo
Nom de statut localisé pour le produit.
exemple:
{ "title": "Sale" }
attributeSetIdentifier: string | null
Identifiant de l'ensemble d'attributs.
exemple: "set_12345"
position: number
Numéro de l'élément (pour le tri).
exemple: 1
price: number | null
La valeur du prix de la page produit tirée de l'index.
exemple: 150.00
additional: object
Valeur supplémentaire de l'index.
exemple:
{
"prices": {
"min": 5,
"max": 150
}
}
sku: string | null
SKU du produit (Stock Keeping Unit), peut être nul.
exemple: "SKU_12345"
isSync: boolean
Indication de l'indexation de la page.
exemple: true
attributeValues: IAttributeValues
Tableau des valeurs d'attributs de l'index, représentées.
exemple:
[
{
"id": "color",
"value": "red"
}
]
categories: string[]
Catégories de produits.
exemple:
[
1,
2,
3
]
isVisible: boolean
Indication de la visibilité de la page.
exemple: true
moduleFormConfigs: Array<IFormConfig>
Configurations de formulaire du module (optionnel).
rating: IRating
Données d'évaluation.
isPositionLocked: boolean
Indicateur de verrouillage de la position de tri (optionnel).
exemple: false
relatedIds: number[]
Identifiants des pages de produits connexes.
exemple:
[
12345,
67890
]
paymentStages: unknown
Données des étapes de paiement (peut être nul).
exemple: null
distance: number
Distance de pertinence de la recherche vectorielle (sémantique). Présente uniquement dans les résultats de la recherche vectorielle.
exemple: 0.42
discountConfig: Record<string, unknown>
Objet de configuration de remise.
exemple:
{}
templateIdentifier: string | null
Identifiant utilisateur du modèle lié.
exemple: "template_12345"
shortDescTemplateIdentifier: string | null
Identifiant utilisateur du modèle lié pour une courte description.
exemple: "short_desc_template_12345"
signedPrice: string
Le prix signé du produit est obtenu avec les données du produit lorsque signPrice est défini.
exemple: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
productPages: IProductPageRef[]
Tableau de références de pages de produits liant le produit à ses pages.
exemple:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
productPages.id: number
Identifiant unique de l'enregistrement de lien produit-page.
exemple: 16
productPages.pageId: number
Identifiant de la page à laquelle le produit est lié.
exemple: 4
productPages.productId: number
Identifiant du produit.
exemple: 15
productPages.positionId: number
Identifiant de la position de tri au sein de la page.
exemple: 244
productPages.categoryPath: string
Chemin de catégorie de la page à laquelle appartient le produit.
exemple: "produits"
blocks: string[]
Tableau d'identifiants de blocs.
exemple:
[
"block_12345",
"block_67890"
]
🔒
signedPriceest le jeton signé qui porte le prix verrouillé — renvoyez-le lorsque vous créez une commande. Voir Prix fixe du produit (signedPrice).