UC-06 — Import / Export du catalogue
Acteur : Admin / Gestionnaire But : Importer ou exporter le catalogue produits
Trigger
L'admin souhaite mettre à jour le catalogue en masse (import) ou l'extraire (export).
Préconditions
- Permissions
product.create(import) etproduct.export(export)
Endpoints
1. Importer des produits (JSON, max 500)
POST /api/v1/admin/org/products/import
Content-Type: application/json
{
"products": [
{
"category_id": "uuid-cat",
"name": "Thé vert",
"price_cents": 800,
"stock_quantity": 100,
"is_active": true
}
]
}
L'import produits est en JSON
Contrairement aux imports de porteurs (élèves/personnel) qui sont en multipart/form-data (fichier Excel), l'import produits attend un corps JSON.
2. Exporter le catalogue (CSV/XLSX)
GET /api/v1/admin/org/products/export?format=xlsx
Réponse (import)
{
"message": "1 produit importé",
"created": 1,
"products": [ ],
"currency": "XOF"
}
Réponse (export)
Téléchargement de fichier :
- CSV :
text/csv; charset=utf-8 - XLSX (avec
?format=xlsx) :application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Colonnes : code, name, meal_type, price_cents, stock_quantity, is_active, reservation_deadline_days_before, reservation_deadline_time.
Flow
sequenceDiagram
participant Admin
participant Dashboard
participant API
participant DB
Admin->>Dashboard: "Importer des produits"
Dashboard->>API: POST /admin/org/products/import (JSON)
API->>DB: INSERT products
API-->>Dashboard: {created, products}
Dashboard->>Admin: "1 produit importé ✓"
Admin->>Dashboard: "Exporter le catalogue"
Dashboard->>API: GET /admin/org/products/export
API->>DB: SELECT products (LIMIT 10000)
API-->>Dashboard: catalogue.xlsx (téléchargement)
Permissions
| Permission | Description |
|---|---|
product.create | Importer des produits |
product.export | Exporter les produits |
Imports de porteurs (Excel)
Pour les élèves et le personnel, les imports sont en multipart/form-data :
| Endpoint | Contenu |
|---|---|
POST /admin/org/card-holders/import-students | Élèves + parents associés |
POST /admin/org/card-holders/import-staff | Personnel |
Voir Porteurs (Admin).
Erreurs
error_code | Description |
|---|---|
Validation | Liste vide, > 500 éléments, champ requis manquant |
Forbidden | Permission insuffisante |
Voir aussi
- Exports — tous les exports de données
- Produits (Admin)