Categories
Endpoints pour consulter les catégories de produits
Categories API
Endpoints pour accéder à l'arborescence de catégories.
Lister les catégories
GET /v1/public-api/categories
Scope requis: read:categories
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
page | number | Numéro de page (défaut: 1) |
limit | number | Éléments par page (défaut: 20, max: 100) |
Exemple de requête
curl -X GET "https://api.nerpsuite.com/v1/public-api/categories" \
-H "X-API-Key: sk_live_xxx"
Réponse
{
"data": [
{
"id": "cat_001",
"name": "Électronique",
"description": "Appareils électroniques et accessoires",
"productCount": 156
},
{
"id": "cat_002",
"name": "Smartphones",
"description": "Téléphones mobiles",
"productCount": 45
},
{
"id": "cat_003",
"name": "Accessoires",
"description": "Coques, chargeurs, câbles",
"productCount": 89
}
],
"total": 12,
"page": 1,
"limit": 20,
"totalPages": 1
}
Obtenir une catégorie
GET /v1/public-api/categories/:id
Scope requis: read:categories
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
id | string | ID de la catégorie |
Exemple de requête
curl -X GET "https://api.nerpsuite.com/v1/public-api/categories/cat_002" \
-H "X-API-Key: sk_live_xxx"
Réponse
{
"id": "cat_002",
"name": "Smartphones",
"description": "Téléphones mobiles",
"productCount": 45
}
Produits d'une catégorie
GET /v1/public-api/categories/:id/products
Scope requis: read:products
Retourne tous les produits actifs d'une catégorie.
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
id | string | ID de la catégorie |
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
page | number | Numéro de page (défaut: 1) |
limit | number | Éléments par page (défaut: 20, max: 100) |
Exemple de requête
curl -X GET "https://api.nerpsuite.com/v1/public-api/categories/cat_002/products?page=1&limit=10" \
-H "X-API-Key: sk_live_xxx"
Réponse
{
"data": [
{
"id": "clx1234567890",
"name": "iPhone 15 Pro",
"sku": "IPHONE-15-PRO-128",
"description": "iPhone 15 Pro 128GB Titanium",
"price": 999.00,
"costPrice": 750.00,
"categoryName": "Smartphones",
"isActive": true,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:00:00Z"
},
{
"id": "clx9876543210",
"name": "Samsung Galaxy S24",
"sku": "SAMSUNG-S24-256",
"description": "Samsung Galaxy S24 256GB",
"price": 899.00,
"costPrice": 680.00,
"categoryName": "Smartphones",
"isActive": true,
"createdAt": "2024-01-10T09:00:00Z",
"updatedAt": "2024-01-18T11:30:00Z"
}
],
"total": 45,
"page": 1,
"limit": 10,
"totalPages": 5
}
Champs de réponse
Catégorie
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant unique |
name | string | Nom de la catégorie |
description | string | Description |
productCount | number | Nombre de produits dans la catégorie |
Cas d'usage
Menu de navigation e-commerce
Construisez un menu de catégories pour votre boutique :
const categories = await fetch('/v1/public-api/categories', {
headers: { 'X-API-Key': apiKey }
}).then(r => r.json());
const menu = categories.data.map(cat => ({
label: cat.name,
href: `/shop/${cat.id}`,
badge: cat.productCount
}));
Page catégorie
Affichez les produits d'une catégorie :
async function getCategoryPage(categoryId, page = 1) {
const [category, products] = await Promise.all([
fetch(`/v1/public-api/categories/${categoryId}`, opts).then(r => r.json()),
fetch(`/v1/public-api/categories/${categoryId}/products?page=${page}`, opts).then(r => r.json())
]);
return { category, products };
}