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: IProductsQuery
Paramètres de requête optionnels
exemple :
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}
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
Symbole de prix. Par défaut : null.
userQuery.templateMarker: string | null
Marqueur de modèle de page produit, par défaut null.
exemple : "template_12345"
userQuery.statusMarker: string | null
Marqueur de statut de page produit, par défaut null.
exemple : "in_stock"
userQuery.conditionValue: string | null
La valeur recherchée, par défaut null.
exemple : "new"
userQuery.attributeMarker: string | null
L'identifiant textuel de l'attribut indexé par lequel les valeurs sont filtrées, par défaut null.
exemple : "color"
userQuery.conditionMarker: string | null
Marqueur de la condition de filtre par laquelle les valeurs sont filtrées, par défaut null.
exemple : "equals"
userQuery.langCode: string
Code de langue. Par défaut : "en_US".
userQuery.ids: string
Liste d'identifiants de produits séparés par des virgules — utilisée par getProductsByIds.
exemple : "1,2,3"
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 Permissions du module selon vos besoins dans la section correspondante.
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.
| Marqueur | Signification | Exemple |
|---|---|---|
| eq | Égal | statusId = 1 (actif uniquement) |
| neq | Pas égal | role ≠ "Viewer" |
| in | Contient (un des) | role in ["Editor", "Manager"] |
| nin | Ne contient pas | email not in ["@temp.com"] |
| exs | Existe (a une valeur) | A un lastLogin |
| nexs | N'existe pas | Jamais 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 page produit (peut être null).
exemple : "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nom de statut localisé pour le produit.
exemple : { "title": "Vente" }
items.attributeSetIdentifier: string | null
Ensemble d'identifiants 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: AttributeType
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 de module (optionnel).
items.rating: IRating
Données d'évaluation.
items.isPositionLocked: boolean
Indicateur de verrouillage de 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.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
Symbole de prix.
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"
}
]
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 position de tri au sein de la page.
exemple : 244
productPages.categoryPath: string
Chemin de catégorie de la page à laquelle le produit appartient.
exemple : "products"
items.blocks: string[]
Tableau d'identifiants de blocs.
exemple :
[
"block_12345",
"block_67890"
]