Saltar al contenido principal

getProductsByIds

Obteniendo múltiples productos por sus ids.

Descripción

Este método recupera múltiples objetos de producto por sus identificadores (ids separados por comas). Devuelve una Promesa que se resuelve en un array de objetos IProductsEntity.

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: IProductsByIdsQuery
Parámetros de consulta opcionales
ejemplo:

{
"limit": 30,
"offset": 0,
"signPrice": "orders"
}

userQuery.signPrice: string
Marcador de almacenamiento de pedido para la fijación de precios.

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.

💲 signPrice bloquea el precio devuelto por un tiempo limitado — configúralo como tu marcador de almacenamiento de pedidos. Consulta Fijación del precio (signPrice).

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 que se aplicará al valor del atributo.

MarcadorSignificadoEjemplo
eqIgualstatusId = 1 (solo activo)
neqNo igualcategory ≠ "archivado"
inContiene (uno de)category in ["electrónica", "libros"]
ninNo contienebrand not in ["marca_falsa"]
exsExiste (tiene valor)Tiene descripción
nexsNo existeSin imagen
patCoincide con el patróntitle matches "chaqueta"
sameCoincide exactamente con el valorsku es exactamente "ABC-123"
same_partCoincide con una parte del valor exactamenteparte de sku es exactamente "ABC"

conditionValue: El valor con el que comparar.

Ejemplo de respuesta

[
{
"id": 2954,
"localizeInfos": {
"title": "Box"
},
"isVisible": true,
"isSync": true,
"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
},
"img": {
"type": "image",
"value": {
"size": 742690,
"filename": "files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.jpeg",
"contentType": "image/jpeg",
"previewLink": {
"default": [
"data:image/webp;base64,UklGRmwAAABXRUJQVlA4IGAAAADQAQCdASoQABAABUB8JbACdACZZ3P8AAD+wGsUXBs/r069WpdrcuaTNfVxqWIetuaIdIvOMkSp9iJRxE+KhA2YHbrVehhMRj/j5+DUdjWn1v5YtZ7vw0IgPi9R5vkAAAA=",
"https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.preview.default.jpeg"
]
},
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.jpeg",
"defaultPreview": "default"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": true
}
},
"attributeSetIdentifier": "products",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"productPages": [
{
"id": 2847,
"pageId": 10,
"productId": 2954,
"positionId": 3190,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"localizeInfos": {
"title": "Product"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"attributeValues": {
"p": {
"type": "float",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "test",
"isPositionLocked": false,
"position": 2,
"rating": {},
"paymentStages": [
{
"title": "p1",
"value": 50,
"marker": "p1"
},
{
"title": "p2",
"value": 50,
"marker": "p2"
},
{
"title": "p3",
"value": 50,
"marker": "p3"
}
],
"productPages": [
{
"id": 2848,
"pageId": 10,
"productId": 2955,
"positionId": 3191,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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 nulo).
ejemplo: "en_stock"

statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo:

{ "title": "Sale" }

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

position: number
Número del ítem (para ordenamiento).
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 nulo.
ejemplo: "SKU_12345"

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

attributeValues: IAttributeValues
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 ordenamiento (opcional).
ejemplo: false

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

[
12345,
67890
]

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

distance: number
Distancia de relevancia de búsqueda vectorial (semántica). Presente solo en resultados de búsqueda vectorial.
ejemplo: 0.42

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
El precio firmado del producto se obtiene junto con los datos del producto cuando signPrice está configurado.
consulta: Precio fijo del producto
ejemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

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 ordenamiento 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: "productos"

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

[
"block_12345",
"block_67890"
]

🔒 signedPrice es el token firmado que lleva el precio bloqueado — devuélvelo cuando crees un pedido. Consulta Precio fijo del producto (signedPrice).


Ejemplos de uso

Guía paso a paso en la documentación:

Pruébalo en vivo

Ejecuta este método de forma interactiva en el sandbox del SDK de JS — conecta tu URL de Proyecto y Token de Aplicación en la primera visita, luego abre: