Obtener productos por IDs
En este ejemplo, demostramos cómo recuperar múltiples productos a la vez pasando una lista de IDs de productos separada por comas utilizando la API de OneEntry.
✅ Propósito del escenario:
- Conectar a la API de OneEntry
- Pasar una lista de IDs de productos separada por comas
- Recuperar los productos coincidentes y revisar los resultados
✅ Lo que necesitas:
- Un PROJECT_URL y APP_TOKEN válidos para la autenticación con la API de OneEntry.
- IDs de productos conocidos que existan en tu proyecto de OneEntry.
📌 Importante:
- getProductsByIds devuelve un array simple IProductsEntity[], NO
{ items, total }. - Estos ejemplos no incluyen manejo de errores.
- Puedes gestionar errores utilizando un bloque try-catch o empleando una construcción como await Promise.catch((error) => error).
📚 Ver en la documentación:
📦 Referencia del SDK:
Pruébalo en vivo
Ejecuta este método de forma interactiva en el sandbox del JS SDK — conecta tu Project URL y App Token en la primera visita, luego abre:
- Obtener productos por IDs — En este ejemplo, demostramos cómo recuperar múltiples productos a la vez pasando una lista de IDs de productos separada por comas utilizando la API de OneEntry.
Escenario
1. Importar defineOneEntry desde el SDK y definir PROJECT_URL y APP_TOKEN
Ejemplo:
import { defineOneEntry } from 'oneentry';
import type { IProductsEntity } from 'oneentry/dist/products/productsInterfaces';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. Crear un cliente API con defineOneEntry()
Ejemplo:
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Llamar a Products.getProductsByIds() con Products.getProductsByIds()
Ejemplo:
const products = await Products.getProductsByIds('13,14,15', 'en_US');
console.log('Products: ', products);
Resultado:
[
{
"id": 15,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Orange ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 400,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"attributeValues": {
"price": {
"type": "real",
"value": "400",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"productPages": [
{
"id": 17,
"pageId": 49,
"productId": 15,
"positionId": 1287,
"categoryPath": "products"
}
],
"blocks": [],
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 14,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Green ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 340,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"attributeValues": {
"price": {
"type": "real",
"value": "340",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"productPages": [
{
"id": 18,
"pageId": 49,
"productId": 14,
"positionId": 1288,
"categoryPath": "products"
}
],
"blocks": [],
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 13,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Red ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 300,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"attributeValues": {
"price": {
"type": "real",
"value": "300",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"productPages": [
{
"id": 19,
"pageId": 49,
"productId": 13,
"positionId": 1289,
"categoryPath": "products"
}
],
"blocks": [],
"moduleFormConfigs": [],
"discountConfig": {}
}
]
4. Devuelve un array simple, NO { items, total }
Ejemplo:
const titles = (products as IProductsEntity[]).map((p) => p.localizeInfos?.title);
console.log('titles: ', titles);
Resultado:
[
"Orange ball",
"Green ball",
"Red ball"
]
Ejemplo final
// 1. Import defineOneEntry from SDK and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import type { IProductsEntity } from 'oneentry/dist/products/productsInterfaces';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
// 2. Creating an API client with [defineOneEntry()](/docs/index/#Installation)
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
// 3. Call Products.getProductsByIds() with [Products.getProductsByIds()](/docs/products/getProductsByIds)
const products = await Products.getProductsByIds('13,14,15', 'en_US');
console.log('Products: ', products);
// 4. Returns a plain array, NOT `{ items, total }`
const titles = (products as IProductsEntity[]).map((p) => p.localizeInfos?.title);
console.log('titles: ', titles);