Tableau de bord
Ventes par secteur
Top marques vendues
Dernieres ventes
Chargement...
Liste des clients
Chargement...
Repartition par secteur
Stock par marque (top 15)
Articles en stock
Chargement...
Historique des ventes
Chargement...
Travaux disponibles
Chargement...
Bons cadeaux
Chargement...
Cross-tabulation Marque x Taille
🌐 Système 1 endpoint
▶GET /api/version
Retourne la version de l'API, l'état de la connexion base de données et les infos serveur.
Champs de réponse
| Champ | Type | Description | Exemple |
|---|---|---|---|
company | string | Nom de l'entreprise | Babak SàRL |
version | string | Version de l'API | V3.006 |
date_heure | datetime | Date/heure actuelle du serveur | 2026-02-27T08:00:00.000Z |
server_host | string | Adresse du serveur | castella20.myds.me:8090 |
connexion_db | string | État connexion base de données | réussie |
👥 Clients 5 endpoints
▶GET /api/clients
Retourne la liste complète des clients (29 500+). Données synchronisées en cache SQLite.
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
limit | integer | Nombre max de résultats |
page | integer | Numéro de page (pagination) |
date_modif | DD.MM.YYYY | Modifié depuis cette date |
Champs de réponse
| Champ | Type | Description |
|---|---|---|
no_cli | integer | Numéro client (identifiant unique) |
nom | string | Nom de famille |
prenom | string | Prénom |
raison_sociale | string | Raison sociale (entreprise) |
email | string | Adresse email |
tel_mobile | string | Téléphone mobile |
localite | string | Ville / Localité |
npa | string | Code postal (NPA) |
rue / no_rue | string | Adresse |
actif | O / N | Client actif ou non |
date_creation | datetime | Date de création |
date_modif | datetime | Dernière modification |
GET /api/client/:no_cli
Retourne les informations détaillées d'un seul client. Mêmes champs que /api/clients.
GET /api/clients/:no_cli/ventes
Retourne l'historique des ventes d'un client spécifique. Filtré depuis les données sync.
GET /api/clients/:no_cli/noseries
Retourne les articles avec numéro de série vendus à un client (vélos, etc.).
GET /api/clients/noseries
Retourne toutes les ventes d'articles avec numéro de série.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
no_cli | integer | Numéro client |
no_art_stock | string | Numéro article |
marque | string | Marque de l'article |
description | string | Description de l'article |
no_serie | string | Numéro de série |
pv_ttc | decimal | Prix de vente TTC |
date_heure | datetime | Date de vente |
📦 Stock 1 endpoint
▶GET /api/stock
Retourne tous les articles du stock (69 500+) avec détails couleurs et quantités par taille. Données synchronisées.
Champs de réponse (article)
| Champ | Type | Description |
|---|---|---|
no_art_stock | string | Numéro article stock |
description | string | Description de l'article |
marque | string | Marque |
secteur / rayon / division | string | Classification |
code_saison_chiffre | string | Année / saison |
pa_ht | decimal | Prix d'achat HT |
pv_ttc | decimal | Prix de vente TTC |
actif | O / N | Article actif |
Sous-objet : couleurs[] → stocks[]
| Champ | Niveau | Type | Description |
|---|---|---|---|
couleur | couleur | string | Nom de la couleur |
qte_stock | stock | integer | Quantité en stock |
taille_txt | stock | string | Taille (S, M, L, 42...) |
code_barre | stock | string | Code-barres EAN |
💰 Ventes 1 endpoint
▶GET /api/ventes
Retourne l'historique complet des ventes (170 000+). Données chargées une fois puis filtrées localement par dates et recherche.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
no_vente | string | Numéro de vente |
date_heure | string | Date et heure (DD.MM.YYYY HH:MM:SS) |
no_cli | string | Numéro client |
user_name_texte | string | Nom du magasin |
no_art_stock | string | Numéro article |
marque | string | Marque |
description | string | Description article |
taille_texte | string | Taille |
id_empl | string | Code vendeur |
qte | integer | Quantité vendue |
pa_ht | decimal | Prix d'achat HT |
pv_ttc | decimal | Prix de vente TTC |
rabais_pourcent | decimal | Rabais en % |
pv_ttc_a_rabais | decimal | Prix TTC après rabais |
🎁 Bons cadeaux 1 endpoint
▶GET /api/bons
Retourne les bons cadeaux, promotionnels et généraux (2 700+).
Champs de réponse
| Champ | Type | Description |
|---|---|---|
no_bon | integer | Numéro du bon |
no_voucher | string | Code voucher (ex: M5JZ-LFYF) |
montant | decimal | Montant initial (CHF) |
solde | decimal | Solde restant (CHF) |
description | string | Description du bon |
type_bon | string | G=Général, C=Cadeau, P=Promo |
no_cli | string | Client associé |
actif | O / N | Bon actif |
date_creation | datetime | Date de création |
🔧 Atelier 3 endpoints
▶GET /api/atelier/travaux
Répertoire de tous les travaux d'atelier disponibles avec tarifs.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
no_rep_trav | string | Numéro travail |
description | string | Description du travail |
sequence | string | Code séquence |
montant | decimal | Montant en CHF |
nbr_minute | integer | Durée en minutes |
GET /api/atelier/modeles
Modèles de réparation prédéfinis (1er Service VTT, Service complet, etc.).
GET /api/atelier/occupation
Heures disponibles et occupées par jour et par magasin.
🚲 Location 2 endpoints
▶GET /api/location/articles
Catalogue d'articles disponibles à la location avec tarifs journaliers (1 à 21 jours).
GET /api/location/dispo
Catégories et tailles disponibles en location.
📈 Analyse commerciale 1 endpoint
▶GET /api/analyse
Calcule les métriques de performance commerciale : classification ABC, marges, écoulement, actions stock.
Paramètres (tous optionnels)
| Paramètre | Type | Description |
|---|---|---|
rayon | string | Filtrer par rayon |
vente_du | DD.MM.YYYY | Ventes depuis |
vente_au | DD.MM.YYYY | Ventes jusqu'à |
achat_du | string | Saison ≥ (année) |
achat_au | string | Saison ≤ (année) |
Réponse JSON
| Champ | Type | Description |
|---|---|---|
kpis | object | KPIs globaux : ca, marge, marge_pct, vendu, stock, etc. |
brands[] | array | Agrégation par marque |
models[] | array | Détail par modèle avec classification ABC et statuts |
tailles[] | array | Agrégation par taille |
cross[] | array | Cross-tabulation marque × taille |
top_by_brand{} | object | Top 5 modèles par marque |
taille_detail{} | object | Drill-down par taille |
Classification ABC & Statuts
ABC : A = cumul CA ≤ 80% • B = cumul CA ≤ 95% • C = reste
Statuts : top (A + marge≥40%) • rupture (stock=0) • surstock (stock>2×vendu) • dormant (vendu=0) • liquider (vendu=0, stock≥2) • marge_faible (marge<25%)
📦 Livraisons 1 endpoint
▶GET /api/livraisons
Liste des articles livrés (réceptions fournisseurs). Source cache : mémoire → SQLite → API.
Réponse (array d'objets)
| Champ | Type | Description |
|---|---|---|
no_fourn | string | N° fournisseur |
raison_sociale | string | Nom fournisseur |
no_livr | string | N° bon de livraison |
date_heure | string | Date/heure (DD.MM.YYYY HH:MM:SS) |
description | string | Marque |
qte_livr | string | Quantité livrée (négatif = retour) |
pa_ht | string | Prix d'achat HT |
pv_ttc | string | Prix de vente TTC |
rayon | string | Rayon |
secteur | string | Secteur |
code_saison_chiffre | string | Saison (année) |
code_saison_texte | string | Saison (ETE/HIVER) |
reassort | string | Réassort (O/N) |
transfert | string | Transfert inter-magasin |
taille_texte | string | Taille en texte |
Notes
Source API : /bcPRISME/stock/articles/livres
Sync automatique toutes les 60 min. TTL cache : 30 min.
~1280 enregistrements. qte_livr négatif = retour fournisseur.
⚙ Proxy & Divers 3 endpoints
▶GET /api/proxy/*
Proxy transparent vers n'importe quel endpoint bcPRISME. Authentification ajoutée automatiquement.
405 /api/enquetes — Non disponible
Verbe HTTP non autorisé (problème IIS côté serveur).
404 /api/velo-vendu — Non disponible
Endpoint introuvable sur le serveur API.
📋 Notes techniques
▶Base URL API : https://castella20.myds.me:8090/radserver/emsserver.dll
Authentification : POST /users/login avec X-Embarcadero-App-Secret → retourne sessionToken
Headers requis : X-Embarcadero-Session-Token + X-Embarcadero-App-Secret
Format dates : DD.MM.YYYY (ex: 01.02.2026)
Gestion erreurs : En cas de token expiré (HTTP 401), re-login automatique
Magasins : MAGASIN_1 = Grand Rue 17 (Bulle) • MAGASIN_2 = Verdel 22
Cache : 3 niveaux — Memory (node-cache) → SQLite → API live
Sync : Toutes les 60 min, incrémentale après 1er sync complet, 3 retries/page
💻 Processeur
🧠 Memoire
💾 Stockage
🌐 Reseau
⚙ Processus PM2
💡 Application Node.js
⚡ Cache API
💾 Base de donnees locale (SQLite)
🕒 Planification de la synchronisation
| Jour | Actif | Sync 1 | Sync 2 |
|---|
Connexion au serveur bcPRISME
▼Assistant IA
▼Configuration du provider IA pour l'assistant intelligent du dashboard.
Endpoints API disponibles
▼Liste des endpoints exposes par le proxy local (http://localhost:3000)
| Methode | Endpoint local | API bcPRISME | Description |
|---|---|---|---|
| GET | /api/version | /bcPRISME/version | Version de l'API |
| GET | /api/clients | /bcPRISME/clients | Liste des clients |
| GET | /api/client/:id | /bcPRISME/client/:id | Detail d'un client |
| GET | /api/stock | /bcPRISME/stock/articles | Articles en stock |
| GET | /api/ventes | /bcPRISME/ventes | Historique des ventes |
| GET | /api/bons | /bcPRISME/bons | Bons cadeaux |
| GET | /api/atelier/travaux | /bcPRISME/atelier/travaux | Travaux d'atelier |
| GET | /api/atelier/modeles | /bcPRISME/atelier/modeles | Modeles d'atelier |
| GET | /api/atelier/occupation | /bcPRISME/atelier/occupation | Occupation atelier |
| GET | /api/location/articles | /bcPRISME/location/articles | Articles de location |
| GET | /api/enquetes | /bcPRISME/enquetes | Enquetes satisfaction |
| GET | /api/velo-vendu | /bcPRISME/stock/velo/vendu | Velos vendus |
Endpoints Authentification Dashboard
▼Gestion des utilisateurs et sessions du dashboard (JWT). Toutes les routes /api/* (sauf login) necessitent le header Authorization: Bearer <token>
| Methode | Endpoint | Protection | Description |
|---|---|---|---|
| POST | /api/auth/login | Aucune | Connexion utilisateur, retourne JWT + infos |
| GET | /api/auth/me | JWT | Retourne l'utilisateur connecte |
| GET | /api/auth/users | JWT + Admin | Liste tous les utilisateurs |
| POST | /api/auth/users | JWT + Admin | Creer un utilisateur |
| PUT | /api/auth/users/:id | JWT + Admin | Modifier un utilisateur |
| DELETE | /api/auth/users/:id | JWT + Admin | Supprimer un utilisateur |
| POST | /api/auth/forgot-password | Aucune | Demande de reinitialisation par email |
| POST | /api/auth/reset-password | Aucune | Reinitialiser le mot de passe avec token |
| GET | /api/smtp-config | JWT + Admin | Configuration SMTP actuelle |
| POST | /api/smtp-config | JWT + Admin | Sauvegarder la configuration SMTP |
| POST | /api/smtp-test | JWT + Admin | Tester la connexion SMTP |
Endpoints Monitoring & Cache
▼Surveillance du serveur VPS et gestion du cache API en memoire. Necessitent les droits administrateur.
| Methode | Endpoint | Protection | Description |
|---|---|---|---|
| GET | /api/system/stats | JWT + Admin | Stats systeme : CPU, RAM, disque, reseau, PM2, Node.js |
| GET | /api/cache/stats | JWT + Admin | Statistiques du cache : entrees, hits, misses, cles |
| DELETE | /api/cache/clear | JWT + Admin | Vider la totalite du cache |
| DELETE | /api/cache/clear/:prefix | JWT + Admin | Vider le cache par prefixe (ex: clients, stock, ventes) |
| SQLite Mirror (Base locale) | |||
| GET | /api/sync/status | JWT + Admin | Statut de la synchronisation SQLite + stats base |
| POST | /api/sync/trigger | JWT + Admin | Lancer une synchronisation manuelle immediate |
| DELETE | /api/sync/cache | JWT + Admin | Vider tout le cache SQLite |
| DELETE | /api/sync/cache/:resource | JWT + Admin | Vider une ressource SQLite (ex: clients, stock) |
Architecture cache 3 niveaux :
1. Memoire (node-cache) : TTL variable — version (24h) • clients/bons/location (10 min) • stock/atelier (5 min) • ventes (3 min)
2. SQLite (disque) : Persistant, sync auto toutes les 15 min. Sert de fallback si l'API est indisponible.
3. API distante (castella20) : Source de verite, appelee quand le cache memoire est expire.
Headers : X-Cache: HIT|MISS|SQLITE • X-Data-Source: memory|api|sqlite • X-Data-Age
Configuration email (SMTP)
▼Parametres du serveur d'envoi d'emails pour la recuperation de mot de passe.
Gestion des utilisateurs
▼Chargement...