Aller au contenu principal

getRelatedProductsById

Recherchez tous les objets de produits associés par identifiant de page.

Description

Cette méthode récupère tous les objets de page de produit associés pour un produit spécifique basé sur son identifiant (id) depuis l'API. Elle accepte un paramètre optionnel userQuery pour des paramètres de requête supplémentaires tels que offset, limit, sortOrder et sortKey. Elle renvoie une promesse qui se résout en un objet IProductsResponse.

Produits.getRelatedProductsById( id, langCode, userQuery );

Schéma des paramètres

Schéma

id: number
Identifiant de la page produit pour laquelle trouver la relation
exemple : 12345

langCode: string
Code de langue. Par défaut : "en_US"
exemple : "en_US"

userQuery: IProductsRelatedQuery
Paramètres de requête optionnels
exemple :

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

userQuery.offset(required): number
Paramètre pour la pagination. Par défaut : 0.

userQuery.limit(required): number
Paramètre pour la pagination. Par défaut : 30.

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

userQuery.sortKey(required): string
Champ pour le tri (par défaut - null). Valeurs possibles : "id", "position", "title", "date", "price". Par défaut : null.

userQuery.signPrice: string
Marqueur de stockage de commande pour la fixation du prix. Si le paramètre est défini, le prix est fixé pour un certain temps.
voir : Fixation du prix

userQuery.statusMarker: string | null
Marqueur de statut de la page produit, par défaut null.
exemple : "in_stock"

userQuery.templateMarker: string | null
Marqueur de modèle de page produit, par défaut null.
exemple : "template_12345"

Par défaut, vous pouvez récupérer 10 objets. Cela est dû à la limite d'enregistrement dans les paramètres de permissions du module.
Pour que la pagination fonctionne correctement, vous devez configurer les Permissions du module selon vos besoins dans la section correspondante.

💲 signPrice verrouille le prix retourné pour une durée limitée — définissez-le sur votre marqueur de stockage de commande. Voir Fixation du prix (signPrice).

Exemples

Exemple minimal

const response = await Products.getRelatedProductsById(1);

Exemple avec des attributs


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

const response = await Produits.getRelatedProductsById(1, 'en_US', userQuery);

Utilisez des conditions pour trouver des données de produits spécifiques :

attributeMarker : L'identifiant textuel de l'attribut indexé par lequel les valeurs sont filtrées. conditionMarker : Le type de condition à appliquer à la valeur de l'attribut.

MarqueurSignificationExemple
eqÉgalstatusId = 1 (actif uniquement)
neqPas égalrole ≠ "Viewer"
inContient (un des)role in ["Editor", "Manager"]
ninNe contient pasemail not in ["@temp.com"]
exsExiste (a une valeur)A un lastLogin
nexsN'existe pasJamais connecté

conditionValue : La valeur à comparer.

Exemple de réponse

{
"total": 15,
"items": [
{
"localizeInfos": {
"title": "Товар"
},
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"id": 1764,
"isVisible": true,
"isSync": true,
"price": 0,
"additional": {
"prices": {
"min": 0,
"max": 100
}
},
"blocks": [],
"sku": "0-123",
"productPages": [
{
"id": 8997,
"pageId": 1176,
"productId": 8872
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"statusLocalizeInfos": {
"title": "Товар"
},
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "my-template-short",
"attributeValues": {
"marker": {
"value": "",
"type": "string",
"position": 1,
"isProductPreview": false,
"isIcon": false,
"additionalFields": {
"marker": {
"type": "string",
"value": "test"
}
}
}
},
"attributeSetIdentifier": "my-set",
"statusIdentifier": "my-status",
"position": 1,
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"formModuleConfigs": [
{
"id": 1,
"formIdentifier": "reg",
"moduleIdentifier": "user",
"entityIdentifiers": [],
"isGlobal": true,
"isClosed": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"formDataCount": 0,
"entityFormDataCount": {},
"exceptionIds": [
"shop"
],
"nestedEntityIdentifiers": [
"avto-aksessuary",
"fm-moduliatory",
"avtomobilnye-derzhateli",
"videoregistratory-radiolokatory"
],
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true
}
],
"discountConfig": {
"discounts": [
{
"id": 5,
"identifier": "summer-sale",
"type": "DISCOUNT",
"localizeInfos": {
"title": "Summer Sale"
},
"startDate": "2026-01-01T06:32:19.736Z",
"endDate": "2026-01-28T06:32:22.632Z",
"discountValue": {
"value": 30,
"maxAmount": 0,
"discountType": "FIXED_PRICE",
"applicability": "TO_PRODUCT"
},
"exclusions": [
{
"id": 2
}
],
"position": 3,
"conditionLogic": "OR",
"gifts": [
{
"id": 3,
"localizeInfos": {
"title": "hhh222"
},
"attributeSetIdentifier": "attr-set-1",
"statusIdentifier": null,
"statusLocalizeInfos": {},
"templateIdentifier": null,
"price": 90,
"sku": null,
"attributeValues": {
"price1": {
"type": "integer",
"value": "90",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
},
"isVisible": true
}
],
"conditions": [
{
"conditionType": "PRODUCT",
"entityIds": [
{
"id": 4,
"isNested": false
},
{
"isNested": false
}
],
"value": null
},
{
"conditionType": "ATTRIBUTE",
"entityIds": [
{
"isNested": false
}
],
"value": {
"value": "100",
"condition": "eq"
}
}
]
}
],
"discountPrice": 90,
"settings": {
"allowStacking": true,
"maxDiscountValue": 30,
"allowGiftStacking": false
}
}
},
{
"localizeInfos": {
"title": "Товар"
},
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"id": 1764,
"isVisible": true,
"isSync": true,
"price": 0,
"additional": {
"prices": {
"min": 0,
"max": 100
}
},
"blocks": [],
"sku": "0-123",
"productPages": [
{
"id": 8997,
"pageId": 1176,
"productId": 8872
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"statusLocalizeInfos": {
"title": "Товар"
},
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "my-template-short",
"attributeValues": {
"marker": {
"value": "",
"type": "string",
"position": 1,
"isProductPreview": false,
"isIcon": false,
"additionalFields": {
"marker": {
"type": "string",
"value": "test"
}
}
}
},
"attributeSetIdentifier": "my-set",
"statusIdentifier": "my-status",
"position": 1,
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"formModuleConfigs": [
{
"id": 1,
"formIdentifier": "reg",
"moduleIdentifier": "user",
"entityIdentifiers": [],
"isGlobal": true,
"isClosed": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"formDataCount": 0,
"entityFormDataCount": {},
"exceptionIds": [
"shop"
],
"nestedEntityIdentifiers": [
"avto-aksessuary",
"fm-moduliatory",
"avtomobilnye-derzhateli",
"videoregistratory-radiolokatory"
],
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true
}
],
"discountConfig": {
"discounts": [
{
"id": 5,
"identifier": "summer-sale",
"type": "DISCOUNT",
"localizeInfos": {
"title": "Summer Sale"
},
"startDate": "2026-01-01T06:32:19.736Z",
"endDate": "2026-01-28T06:32:22.632Z",
"discountValue": {
"value": 30,
"maxAmount": 0,
"discountType": "FIXED_PRICE",
"applicability": "TO_PRODUCT"
},
"exclusions": [
{
"id": 2
}
],
"position": 3,
"conditionLogic": "OR",
"gifts": [
{
"id": 3,
"localizeInfos": {
"title": "hhh222"
},
"attributeSetIdentifier": "attr-set-1",
"statusIdentifier": null,
"statusLocalizeInfos": {},
"templateIdentifier": null,
"price": 90,
"sku": null,
"attributeValues": {
"price1": {
"type": "integer",
"value": "90",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
},
"isVisible": true
}
],
"conditions": [
{
"conditionType": "PRODUCT",
"entityIds": [
{
"id": 4,
"isNested": false
},
{
"isNested": false
}
],
"value": null
},
{
"conditionType": "ATTRIBUTE",
"entityIds": [
{
"isNested": false
}
],
"value": {
"value": "100",
"condition": "eq"
}
}
]
}
],
"discountPrice": 90,
"settings": {
"allowStacking": true,
"maxDiscountValue": 30,
"allowGiftStacking": false
}
}
}
]
}

Schéma de réponse

Schéma : IProductsResponse

total: number
Le nombre total de produits trouvés.
exemple : 100

items: IProductsEntity[]
Un tableau d'entités de produits.
exemple :

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

items.id: number
L'identifiant unique.
exemple : 12345

items.localizeInfos: ILocalizeInfo
Le nom des produits, en tenant compte de la localisation.
exemple :

{}

items.statusIdentifier: string | null
Identifiants de statut de la page produit (peut être null).
exemple : "in_stock"

items.statusLocalizeInfos: ILocalizeInfo
Nom de statut localisé pour le produit.
exemple :

{ "title": "Sale" }

items.attributeSetIdentifier: string | null
Identifiant de l'ensemble d'attributs.
exemple : "set_12345"

items.position: number
Numéro d'élément (pour le tri).
exemple : 1

items.price: number | null
La valeur du prix de la page produit prise de l'index.
exemple : 150.00

items.additional: object
Valeur supplémentaire de l'index.
exemple :

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

items.sku: string | null
SKU du produit (Stock Keeping Unit), peut être null.
exemple : "SKU_12345"

items.isSync: boolean
Indication de l'indexation de la page.
exemple : true

items.attributeValues: IAttributeValues
Tableau de valeurs d'attributs de l'index, représenté.
exemple :

[
{
"id": "color",
"value": "red"
}
]

items.categories: string[]
Catégories de produits.
exemple :

[
1,
2,
3
]

items.isVisible: boolean
Un signe de visibilité de la page.
exemple : true

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

items.rating: IRating
Données d'évaluation.

items.isPositionLocked: boolean
Indicateur de verrouillage de la position de tri (optionnel).
exemple : false

items.relatedIds: number[]
Identifiants des pages de produits associés.
exemple :

[
12345,
67890
]

items.paymentStages: unknown
Données des étapes de paiement (peut être null).
exemple : null

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

items.discountConfig: Record<string, unknown>
Objet de configuration de remise.
exemple :

{}

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

items.shortDescTemplateIdentifier: string | null
Identifiant utilisateur du modèle lié pour une courte description.
exemple : "short_desc_template_12345"

items.signedPrice: string
Le prix signé du produit est obtenu avec les données du produit lorsque signPrice est défini.
voir : Prix fixe du produit
exemple : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

items.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"
}
]

items.blocks: string[]
Tableau d'identifiants de blocs.
exemple :

[
"block_12345",
"block_67890"
]

totalFound: number
Nombre de produits correspondants avant l'application des limites ; retourné par les points de terminaison de produits de bloc (similarProducts, recommandations de panier/liste de souhaits, fréquemment commandés). Optionnel.
exemple : 2

🔒 signedPrice est le jeton signé qui porte le prix verrouillé — renvoyez-le lorsque vous créez une commande. Voir Prix fixe du produit (signedPrice).