Aller au contenu principal

getRelatedProductsById

Rechercher tous les produits liés par ID de produit.

Description​

Récupère les produits liés au produit ayant l'id donné. Le paramètre facultatif userQuery accepte la pagination et le tri (offset, limit, sortOrder, sortKey), statusMarker, templateMarker, relationMode et signPrice. Se résout en un IProductsResponse : les produits sont dans items, le nombre total dans total.

.getRelatedProductsById( , , );

Schéma des paramètres​

Schema

id: number
ID du produit pour lequel trouver des produits associés.
exemple : 12345

langCode: string
Code de langue. Par défaut : le langCode passé à defineOneEntry ("en_US" s'il n'y en a pas).
exemple : "en_US"

userQuery: IProductsRelatedQuery
Paramètres de requête facultatifs.
exemple :

{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"statusMarker": "in_stock",
"templateMarker": "template_12345"
}

userQuery.offset(required): number
Nombre d'enregistrements à ignorer. Par défaut : 0. offset + limit ne doit pas dépasser 200 ; une fenêtre plus grande est rejetée avec 400.

userQuery.limit(required): number
Nombre maximal d'enregistrements à renvoyer. Par défaut : 30.

userQuery.sortOrder(required): string
Ordre de tri : "DESC" ou "ASC". Par défaut : "DESC".

userQuery.sortKey(required): string
Champ de tri : "id", "position", "title", "date", "price" ou "status". Par défaut : "position".

userQuery.signPrice: string
Marqueur du stockage des commandes pour lequel fixer les prix. S'il est défini, chaque produit est accompagné d'un signedPrice qui garantit le prix pendant une durée limitée.
voir : Fixer le prix

userQuery.statusMarker: string | null
Marqueur du statut de produit. Par défaut : null.
exemple : "in_stock"

userQuery.templateMarker: string | null
Marqueur du modèle de produit. Par défaut : null.
exemple : "template_12345"

userQuery.relationMode: string
Mode de calcul des relations : "global" (par défaut) exécute la chaîne de conditions du modèle telle quelle ; "local" exige en plus que la valeur d'attribut du produit id satisfasse la condition du modèle (même opérateur, même opérande stocké) avant de conserver les produits de cette étape.
exemple : "local"

Limite d’enregistrements. Si la permission du groupe d’utilisateurs pour cette méthode n’autorise qu’une lecture restreinte, l’API renvoie au plus le nombre d’enregistrements défini dans les paramètres du projet (10 par défaut), quelle que soit la valeur de limit. Avec un accès complet en lecture, limit fonctionne normalement. Voir Module permissions (ouvre dans un nouvel onglet).

signPrice verrouille le prix renvoyé pour une durée limitée. Indiquez le marqueur de votre stockage de commandes. Voir Fixer le prix (signPrice).

Exemples​

Exemple minimal​

const response = await Products.getRelatedProductsById(2954);

Exemple avec userQuery​


const = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};

const response = await Products.getRelatedProductsById(2954, 'en_US', userQuery);

Exemple de réponse​

L'exemple montre la forme d'un élément, tel que renvoyé par getProducts().

{
"total": 1,
"items": [
{
"id": 2954,
"localizeInfos": {
"title": "Box"
},
"isVisible": true,
"isSync": false,
"sku": null,
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"product-name": {
"type": "string",
"value": "product-name",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 51,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "products",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 823,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 823
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]
}

Schéma de réponse​

Schéma : IProductsResponse

total: number
Nombre total de produits trouvés.
exemple : 100

items: IProductsEntity[]
Produits de cette réponse.
exemple :

[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]

items.id: number
ID du produit.
exemple : 12345

items.localizeInfos: ILocalizeInfo
Données localisées du produit, comme le titre.
exemple :

{}

items.statusIdentifier: string | null
Marqueur du statut de produit, ou null.
exemple : "in_stock"

items.statusLocalizeInfos: ILocalizeInfo
Nom localisé du statut du produit.
exemple :

{ "title": "Sale" }

items.attributeSetIdentifier: string | null
Marqueur de l'ensemble d'attributs, ou null si aucun n'est attribué.
exemple : "set_12345"

items.position: number
Position utilisée pour le tri.
exemple : 1

items.price: number | null
Prix du produit issu de l'index de recherche.
exemple : 150.00

items.additional: object
Valeurs supplémentaires calculées par l'index de recherche, comme la fourchette de prix dans prices.min et prices.max.
exemple :

{
"prices": {
"min": 5,
"max": 150
}
}

items.sku: string | null
SKU du produit issu de l'index de recherche, ou null.
exemple : "SKU_12345"

items.isSync: boolean
Indique si l'index des attributs du produit est à jour pour la langue demandée. Avec false, un attributeValues vide ou partiel signifie que les valeurs ne sont pas encore publiées, et non qu'il n'y en a pas.
exemple : true

items.attributeValues: IAttributeValues
Valeurs d'attributs indexées par marqueur d'attribut.
exemple :

{
"color": {
"type": "string",
"value": "red",
"isIcon": false,
"position": 0,
"additionalFields": {}
}
}

items.categories: string[]
URL des pages de catalogue auxquelles appartient le produit.
exemple :

[
"catalog"
]

items.isVisible: boolean
Indique si le produit est visible.
exemple : true

items.moduleFormConfigs: Array<IFormConfig>
Configurations de formulaire du module.

items.rating: IRating
Données de notation : valeur moyenne, j'aime et je n'aime pas, et méthode de calcul.

items.isPositionLocked: boolean
Indique si la position de tri est verrouillée.
exemple : false

items.relatedIds: number[]
ID des produits associés.
exemple :

[
12345,
67890
]

items.paymentStages: unknown
Étapes de paiement du produit : un tableau d'objets { title, value, marker }, ou null si aucune n'est définie.
exemple : null

items.distance: number
Distance de pertinence dans la recherche vectorielle (sémantique). Présente uniquement dans les résultats de recherche vectorielle.
exemple : 0.42

items.discountConfig: Record<string, unknown>
Configuration de la remise.
exemple :

{}

items.templateIdentifier: string | null
Marqueur du modèle lié.
exemple : "template_12345"

items.shortDescTemplateIdentifier: string | null
Marqueur du modèle utilisé pour la description courte.
exemple : "short_desc_template_12345"

items.signedPrice: string
Jeton signé (JWT) qui fixe le prix du produit pour une commande. Renvoyé lorsque signPrice est défini.
voir : Prix fixe du produit
exemple : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

items.productPages: IProductPageRef[]
Liens entre le produit et les pages de catalogue auxquelles il appartient.
exemple :

[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]

items.blocks: string[]
Marqueurs des blocs rattachés au produit.
exemple :

[
"block_12345",
"block_67890"
]

totalFound: number
Nombre de produits correspondants avant application des limites ; renvoyé par les points de terminaison de produits de bloc (similarProducts, recommandations du panier ou de la liste de souhaits, fréquemment commandés). Facultatif.
exemple : 2

signedPrice est un jeton signé qui porte le prix verrouillé. Renvoyez-le lors de la création d'une commande. Voir Prix de produit fixé (signedPrice).