Aller au contenu principal

Catégories de produits (Administration)

Base URL : /api/v1/admin/org/product-categories

Gestion des catégories de produits. Pour la consultation publique, voir Produits (catalogue).

remarque

Il n'existe pas d'endpoint de liste dédié ici : les catégories se consultent via GET /api/v1/products/categories (voir catalogue).


Types de catégories (kind)​

kindDescriptionUsage
BuvetteProduits de buvette (café, snacks)Vente directe
ReservationMealRepas completsRéservation à l'avance
ReservationSnackComponentÉléments de menu (entrée, dessert)Composition de menu
Casse

kind est sérialisé en PascalCase ("Buvette"), tandis que les corps de requête acceptent une chaîne libre (aucune validation à la compilation).


POST /admin/org/product-categories​

Crée une catégorie.

Permissions : category.create

ChampTypeRequisDescription
namestringOuiNom de la catégorie
kindstringOuiType
sort_orderintegerNonOrdre d'affichage (défaut 0)
site_iduuidNonSite
parent_iduuidNonCatégorie parente
POST /api/v1/admin/org/product-categories
Content-Type: application/json

{
"name": "Pâtisseries",
"kind": "Buvette",
"sort_order": 5
}

Réponse (201) :

{
"message": "Catégorie créée",
"category": {
"id": "uuid",
"name": "Pâtisseries",
"kind": "Buvette",
"sort_order": 5,
"site_id": null,
"parent_id": null,
"is_active": true,
"created_at": "2025-06-01T10:00:00Z"
}
}

PUT /admin/org/product-categories/{id}​

Met à jour une catégorie.

Permissions : category.update

ChampTypeRequis
namestringOui
kindstringOui
sort_orderintegerNon
site_iduuidNon
parent_iduuidNon
is_activebooleanNon (défaut true)

Réponse (200) : { "message": "Catégorie mise à jour", "category": {...} }


DELETE /admin/org/product-categories/{id}​

Permissions : category.delete

Réponse (200) : { "message": "Catégorie supprimée" }


Permissions​

PermissionDescription
category.create / category.update / category.deleteCRUD catégorie
product.manageSuper-permission couvrant category.*