Obtenir un produit unique par ID
Cette méthode vous permet de récupérer un produit unique par son ID numérique, renvoyant l'objet produit complet incluant les attributs, le prix et le contenu localisé.
✅ Objectif du scénario :
- Récupérer un produit unique par son ID numérique
- Accéder au prix du produit et au titre localisé
- Lire les valeurs des attributs telles que la devise du produit
✅ Ce dont vous avez besoin :
- Un PROJECT_URL et un APP_TOKEN valides pour l'authentification avec l'API OneEntry.
- Un ID produit numérique connu
📌 Important :
- Ces exemples n'incluent pas la gestion des erreurs.
- Vous pouvez gérer les erreurs en utilisant un bloc try-catch ou en employant une construction comme await Promise.catch((error) => error).
📚 Voir dans la documentation :
📦 Référence SDK :
Essayez-le en direct
Exécutez cette méthode de manière interactive dans le bac à sable JS SDK — connectez votre Project URL et App Token lors de votre première visite, puis ouvrez :
- Obtenir un produit unique par ID — Cette méthode vous permet de récupérer un produit unique par son ID numérique, renvoyant l'objet produit complet incluant les attributs, le prix et le contenu localisé.
Scénario
1. Importer defineOneEntry depuis le SDK et définir PROJECT_URL et APP_TOKEN
Exemple :
import { defineOneEntry } from 'oneentry';
import type { IAttributeValues } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. Créer un client API avec defineOneEntry()
Exemple :
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Appeler Products.getProductById() avec la méthode getProductById()
Exemple :
const product = await Products.getProductById(15, 'en_US');
if ('statusCode' in product) {
throw new Error(product.message);
}
Résultat :
{
"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": {}
}
4. Accéder aux champs du produit
Exemple :
const title = product.localizeInfos?.title;
const price = product.price;
const attrs = product.attributeValues as IAttributeValues;
const currency = attrs.currency?.value;
console.log('Product: ', product);
console.log('Title: ', title);
console.log('Price: ', price);
console.log('Currency: ', currency);
Résultat :
{
"product": {
"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": {}
},
"title": "Orange ball",
"price": 400,
"currency": "USD"
}
Exemple final
// 1. Import defineOneEntry from SDK and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import type { IAttributeValues } from 'oneentry';
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.getProductById() with [getProductById() method](/docs/products/getProductById)
const product = await Products.getProductById(15, 'en_US');
if ('statusCode' in product) {
throw new Error(product.message);
}
// 4. Access product fields
const title = product.localizeInfos?.title;
const price = product.price;
const attrs = product.attributeValues as IAttributeValues;
const currency = attrs.currency?.value;
console.log('Product: ', product);
console.log('Title: ', title);
console.log('Price: ', price);
console.log('Currency: ', currency);