getRelatedProductsById
Busca todos los objetos de productos relacionados por el id de la página.
Descripción
Este método recupera todos los objetos de página de productos relacionados para un producto específico basado en su identificador (id) desde la API. Acepta un parámetro opcional userQuery para parámetros de consulta adicionales como offset, limit, sortOrder y sortKey. Devuelve una Promesa que se resuelve en un objeto IProductsResponse.
Products.getRelatedProductsById(
id,
langCode,
userQuery
);
Esquema de parámetros
Esquema
id: number
Identificador de la página del producto para el cual encontrar la relación
ejemplo: 12345
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
userQuery: IProductsQuery
Parámetros de consulta opcionales
ejemplo:
{
"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
Parámetro para la paginación. Predeterminado: 0.
userQuery.limit(required): number
Parámetro para la paginación. Predeterminado: 30.
userQuery.sortOrder(required): string
Orden de clasificación "DESC" | "ASC". Predeterminado: "DESC".
userQuery.sortKey(required): string
Campo para ordenar (predeterminado - null). Valores posibles: "id", "position", "title", "date", "price". Predeterminado: null.
userQuery.signPrice: string
Signo de precio. Predeterminado: null.
userQuery.templateMarker: string | null
Marcador de plantilla de página de producto, predeterminado null.
ejemplo: "template_12345"
userQuery.statusMarker: string | null
Marcador de estado de página de producto, predeterminado null.
ejemplo: "in_stock"
userQuery.conditionValue: string | null
El valor que se está buscando, predeterminado null.
ejemplo: "new"
userQuery.attributeMarker: string | null
El identificador de texto del atributo indexado por el cual se filtran los valores, predeterminado null.
ejemplo: "color"
userQuery.conditionMarker: string | null
Marcador de la condición de filtro por la cual se filtran los valores, predeterminado null.
ejemplo: "equals"
userQuery.langCode: string
Código de idioma. Predeterminado: "en_US".
userQuery.ids: string
Lista de ids de productos separados por comas — utilizada por getProductsByIds.
ejemplo: "1,2,3"
Por defecto, puedes recuperar 10 objetos. Esto se debe al límite de registros en la configuración de permisos del módulo.
Para que la paginación funcione correctamente, necesitas configurar Permisos del módulo de acuerdo a tus necesidades en la sección correspondiente.
Ejemplos
Ejemplo mínimo
const response = await Products.getRelatedProductsById(1);
Ejemplo con atributos
const userQuery = { "offset": 0, "limit": 30, "sortOrder": "DESC", "sortKey": "id"};
const response = await Products.getRelatedProductsById(1, 'en_US', userQuery);
Usa condiciones para encontrar datos específicos de productos:
attributeMarker: El identificador de texto del atributo indexado por el cual se filtran los valores. conditionMarker: El tipo de condición que se aplica al valor del atributo.
| Marcador | Significado | Ejemplo |
|---|---|---|
| eq | Igual | statusId = 1 (solo activo) |
| neq | No igual | role ≠ "Viewer" |
| in | Contiene (uno de) | role in ["Editor", "Manager"] |
| nin | No contiene | email not in ["@temp.com"] |
| exs | Existe (tiene valor) | Tiene lastLogin |
| nexs | No existe | Nunca ha iniciado sesión |
conditionValue: El valor con el que comparar.
Ejemplo de respuesta
{
"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
}
}
}
]
}
Esquema de respuesta
Esquema: IProductsResponse
total: number
El número total de productos encontrados.
ejemplo: 100
items: IProductsEntity[]
Un array de entidades de productos.
ejemplo:
[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]
items.id: number
El identificador único.
ejemplo: 12345
items.localizeInfos: ILocalizeInfo
El nombre de los productos, teniendo en cuenta la localización.
ejemplo:
items.statusIdentifier: string | null
Identificadores de estado de página de producto (puede ser null).
ejemplo: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo: { "title": "Sale" }
items.attributeSetIdentifier: string | null
Conjunto de id de atributos.
ejemplo: "set_12345"
items.position: number
Número de ítem (para ordenar).
ejemplo: 1
items.price: number | null
El valor del precio de la página del producto tomado del índice.
ejemplo: 150.00
items.additional: object
Valor adicional del índice.
ejemplo: { prices: { min: 5 max: 150 } }
items.sku: string | null
SKU del producto (Unidad de Mantenimiento de Stock), puede ser null.
ejemplo: "SKU_12345"
items.isSync: boolean
Indicación de indexación de página.
ejemplo: true
items.attributeValues: AttributeType
Array de valores de atributos del índice, representados.
ejemplo:
[
{
"id": "color",
"value": "red"
}
]
items.categories: string[]
Categorías de productos.
ejemplo:
[
1,
2,
3
]
items.isVisible: boolean
Un signo de visibilidad de la página.
ejemplo: true
items.moduleFormConfigs: Array<IFormConfig>
Configuraciones de formularios del módulo (opcional).
items.rating: IRating
Datos de calificación.
items.isPositionLocked: boolean
Indicador de bloqueo de posición de orden (opcional).
ejemplo: false
items.relatedIds: number[]
Ids de páginas de productos relacionadas.
ejemplo:
[
12345,
67890
]
items.paymentStages: unknown
Datos de etapas de pago (puede ser null).
ejemplo: null
items.discountConfig: Record<string, unknown>
Objeto de configuración de descuento.
ejemplo:
items.templateIdentifier: string | null
Id de usuario de la plantilla vinculada.
ejemplo: "template_12345"
items.shortDescTemplateIdentifier: string | null
Id de usuario de la plantilla vinculada para una descripción corta.
ejemplo: "short_desc_template_12345"
items.signedPrice: string
Signo de precio.
items.productPages: IProductPageRef[]
Array de referencias de páginas de productos que vinculan el producto a sus páginas.
ejemplo:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
productPages.id: number
Identificador único del registro de enlace producto-página.
ejemplo: 16
productPages.pageId: number
Identificador de la página a la que está vinculado el producto.
ejemplo: 4
productPages.productId: number
Identificador del producto.
ejemplo: 15
productPages.positionId: number
Identificador de posición de orden dentro de la página.
ejemplo: 244
productPages.categoryPath: string
Ruta de categoría de la página a la que pertenece el producto.
ejemplo: "products"
items.blocks: string[]
Array de identificadores de bloques.
ejemplo:
[
"block_12345",
"block_67890"
]