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ètreTypeDescription
    pagenumberNuméro de page (défaut: 1)
    limitnumberÉ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ètreTypeDescription
    idstringID 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ètreTypeDescription
    idstringID de la catégorie

    Paramètres de requête

    ParamètreTypeDescription
    pagenumberNuméro de page (défaut: 1)
    limitnumberÉ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

    ChampTypeDescription
    idstringIdentifiant unique
    namestringNom de la catégorie
    descriptionstringDescription
    productCountnumberNombre de produits dans la catégorie

    Cas d'usage

    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 };
    }