Saltar al contenido principal

getProductsByIds

Obteniendo múltiples productos por sus ids.

Descripción

Este método recupera objetos de productos basados en sus identificadores (ids) desde la API. Devuelve una Promesa que se resuelve en objetos IProductsEntity para el producto.

Products.getProductsByIds( ids, langCode, userQuery );

Esquema de parámetros

Esquema

ids(required): string
Identificadores de la página del producto para los cuales encontrar relaciones
ejemplo: "12345,67890"

langCode: string
Código de idioma. Por defecto "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. Por defecto: 0.

userQuery.limit(required): number
Parámetro para la paginación. Por defecto: 30.

userQuery.sortOrder(required): string
Orden de clasificación "DESC" | "ASC". Por defecto: "DESC".

userQuery.sortKey(required): string
Campo para ordenar (por defecto - null). Valores posibles: "id", "position", "title", "date", "price". Por defecto: null.

userQuery.signPrice: string
Signo de precio. Por defecto: null.

userQuery.templateMarker: string | null
Marcador de plantilla de la página del producto, por defecto null.
ejemplo: "template_12345"

userQuery.statusMarker: string | null
Marcador de estado de la página del producto, por defecto null.
ejemplo: "in_stock"

userQuery.conditionValue: string | null
El valor que se está buscando, por defecto null.
ejemplo: "new"

userQuery.attributeMarker: string | null
El identificador de texto del atributo indexado por el cual se filtran los valores, por defecto null.
ejemplo: "color"

userQuery.conditionMarker: string | null
Marcador de la condición de filtro por la cual se filtran los valores, por defecto null.
ejemplo: "equals"

userQuery.langCode: string
Código de idioma. Por defecto: "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.getProductsByIds('1, 5, 8');

Ejemplo con atributos

const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsByIds('1, 5, 8', 'en_US', userQuery);
Usa filtros para encontrar productos específicos:

attributeMarker: El identificador de texto del atributo indexado por el cual se filtran los valores. conditionMarker: El tipo de condición a aplicar al valor del atributo.

MarcadorSignificadoEjemplo
eqIgualstatusId = 1 (solo activos)
neqNo igualcategory ≠ "archived"
inContiene (uno de)category in ["electronics", "books"]
ninNo contienebrand not in ["fake_brand"]
exsExiste (tiene valor)Tiene descripción
nexsNo existeSin imagen

conditionValue: El valor con el que comparar.

Ejemplo de respuesta

[
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "My template description",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"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
},
"img": {
"type": "image",
"value": {
"size": 241636,
"filename": "files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png",
"contentType": "image/png",
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"productPages": [
{
"id": 2847,
"pageId": 10,
"productId": 2954,
"positionId": 3190,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"product_block"
],
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"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
}
}
},
{
"id": 2955,
"attributeSetIdentifier": null,
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": false,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"attributeValues": {},
"productPages": [
{
"id": 2848,
"pageId": 10,
"productId": 2955,
"positionId": 3191,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"product_block"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]

Esquema de respuesta

Esquema: IProductsEntity[]

id: number
El identificador único.
ejemplo: 12345

localizeInfos: ILocalizeInfo
El nombre de los productos, teniendo en cuenta la localización.
ejemplo:

statusIdentifier: string | null
Identificadores de estado de la página del producto (puede ser null).
ejemplo: "in_stock"

statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo: { "title": "Sale" }

attributeSetIdentifier: string | null
Conjunto de ids de atributos.
ejemplo: "set_12345"

position: number
Número de ítem (para ordenar).
ejemplo: 1

price: number | null
El valor del precio de la página del producto tomado del índice.
ejemplo: 150.00

additional: object
Valor adicional del índice.
ejemplo: { prices: { min: 5 max: 150 } }

sku: string | null
SKU del producto (Unidad de Mantenimiento de Stock), puede ser null.
ejemplo: "SKU_12345"

isSync: boolean
Indicación de indexación de la página.
ejemplo: true

attributeValues: AttributeType
Array de valores de atributos del índice, representados.
ejemplo:

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

categories: string[]
Categorías de productos.
ejemplo:

[
1,
2,
3
]

isVisible: boolean
Un signo de visibilidad de la página.
ejemplo: true

moduleFormConfigs: Array<IFormConfig>
Configuraciones de formularios del módulo (opcional).

rating: IRating
Datos de calificación.

isPositionLocked: boolean
Indicador de bloqueo de posición de ordenación (opcional).
ejemplo: false

relatedIds: number[]
Ids de páginas de productos relacionadas.
ejemplo:

[
12345,
67890
]

paymentStages: unknown
Datos de etapas de pago (puede ser null).
ejemplo: null

discountConfig: Record<string, unknown>
Objeto de configuración de descuentos.
ejemplo:

templateIdentifier: string | null
Id de usuario de la plantilla vinculada.
ejemplo: "template_12345"

shortDescTemplateIdentifier: string | null
Id de usuario de la plantilla vinculada para una descripción corta.
ejemplo: "short_desc_template_12345"

signedPrice: string
Signo de precio.

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 ordenación 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"

blocks: string[]
Array de identificadores de bloques.
ejemplo:

[
"block_12345",
"block_67890"
]