docs: update API documentation with missing endpoints and schema corrections
This commit is contained in:
1 parent
f16e2efe0b
commit
62249e6c13
1 file changed
+284
-1
+284
-1
@@ -259,6 +259,53 @@ GET /api/articles/:id/mouvements
|
||||
|
||||
---
|
||||
|
||||
### Dernier fournisseur par site
|
||||
|
||||
```
|
||||
GET /api/articles/:id/dernier-fournisseur?site=
|
||||
```
|
||||
|
||||
Retourne le fournisseur réel issu du dernier mouvement d'entrée en stock (`GenreMvt = 1`) pour chaque site. C'est le seul moyen fiable d'identifier quel fournisseur a livré l'exemplaire du produit actuellement en rayon.
|
||||
|
||||
| Paramètre | Type | Description | Défaut |
|
||||
|-----------|--------|----------------------------|--------|
|
||||
| `site` | string | Filtrer par site (partiel) | tous |
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"artnoid": "12345",
|
||||
"fournisseurs_par_site": [
|
||||
{
|
||||
"site": "001",
|
||||
"date_derniere_entree": "2026-05-15T00:00:00.000Z",
|
||||
"codefou": "FOU01",
|
||||
"nom_fournisseur": "MON FOURNISSEUR",
|
||||
"qte_entree": 24,
|
||||
"prmp": 10.20
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Photo de produit (Proxy)
|
||||
|
||||
```
|
||||
GET /api/articles/:id/photo?size=
|
||||
```
|
||||
|
||||
Proxy et met en cache l'image du produit depuis `lafoirfouille.fr` en contournant les limitations de CORS.
|
||||
|
||||
| Paramètre | Type | Description | Défaut |
|
||||
|-----------|--------|---------------------------------------------------|----------|
|
||||
| `size` | string | Taille de l'image (`large` pour 1200x1200H) | 300Wx300H|
|
||||
|
||||
**Réponse** : Le flux binaire de l'image avec un en-tête `Content-Type` approprié (ex: `image/jpeg`) et une directive de mise en cache HTTP.
|
||||
|
||||
---
|
||||
|
||||
## Fournisseurs
|
||||
|
||||
### Liste des fournisseurs
|
||||
@@ -329,6 +376,28 @@ GET /api/fournisseurs/:code/commandes
|
||||
|
||||
---
|
||||
|
||||
### Franco de port d'un fournisseur
|
||||
```
|
||||
GET /api/fournisseurs/:code/franco
|
||||
```
|
||||
Retourne le seuil de franco de port configuré pour le fournisseur (priorité à la table `fouport2` via `fouport` par rapport à la table `foucad`).
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"code": "FOU01",
|
||||
"nom": "MON FOURNISSEUR SARL",
|
||||
"franco_ht": 350.00,
|
||||
"franco_port": 350.00,
|
||||
"franco_general": 300.00,
|
||||
"actif": "O",
|
||||
"duree": 0,
|
||||
"unite": null
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Stock
|
||||
|
||||
### Stock global
|
||||
@@ -736,6 +805,44 @@ GET /api/mouvements/synthese?dateDebut=&dateFin=&site=
|
||||
|
||||
---
|
||||
|
||||
### Règlements de caisse
|
||||
```
|
||||
GET /api/mouvements/reglements
|
||||
```
|
||||
Liste l'ensemble des règlements et paiements de tickets de caisse de la table `MvtReg`.
|
||||
|
||||
| Paramètre | Type | Description | Défaut |
|
||||
|-------------|------|--------------------------|------------|
|
||||
| `dateDebut` | date | Date début `YYYY-MM-DD` | 2024-01-01 |
|
||||
| `dateFin` | date | Date fin `YYYY-MM-DD` | 2099-12-31 |
|
||||
| `page` | int | Numéro de page | 1 |
|
||||
| `limit` | int | Lignes max (max 1000) | 100 |
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"page": 1,
|
||||
"limit": 100,
|
||||
"reglements": [
|
||||
{
|
||||
"datmvt": "2026-05-28T14:30:00.000Z",
|
||||
"codtick": "TK123456",
|
||||
"codcartecli": "CARD789",
|
||||
"coddev": "EUR",
|
||||
"mntreg": 45.90,
|
||||
"mntregdev": 45.90,
|
||||
"clientnom": "DUPONT JEAN",
|
||||
"echeance": null,
|
||||
"reference": null,
|
||||
"typereg": "CB",
|
||||
"suividatecreation": "2026-05-28T14:31:00.000Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Performance
|
||||
|
||||
### Chiffre d'affaires
|
||||
@@ -787,16 +894,23 @@ GET /api/performance/hitparade
|
||||
| `site` | string | Filtrer par site | tous |
|
||||
| `limit` | int | Nombre d'articles (max 500) | 50 |
|
||||
| `groupBy` | `ca` / `qte` / `marge`| Critère de classement | `ca` |
|
||||
| `codefou` | string | Filtrer par code fournisseur | — |
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"dateDebut": "2024-01-01",
|
||||
"dateFin": "2099-12-31",
|
||||
"site": "tous",
|
||||
"codefou": null,
|
||||
"classementPar": "ca",
|
||||
"hitparade": [
|
||||
{
|
||||
"codein": "ABC123",
|
||||
"libelle1": "MON ARTICLE",
|
||||
"site": "001",
|
||||
"code_fournisseur": "FOU01",
|
||||
"fournisseur": "MON FOURNISSEUR",
|
||||
"nb_passages": 320,
|
||||
"qte_vendue": 640,
|
||||
"ca_ht": 5760.00,
|
||||
@@ -840,7 +954,7 @@ GET /api/performance/ca/fournisseur?dateDebut=&dateFin=&site=
|
||||
}
|
||||
```
|
||||
|
||||
> La jointure se fait via `artfou1.preference = true` (fournisseur principal de l'article) → `fouident.code` pour le nom.
|
||||
> La jointure se fait via `artfou1.preference = 1` (fournisseur principal de l'article) → `fouident.code` pour le nom.
|
||||
|
||||
---
|
||||
|
||||
@@ -896,6 +1010,140 @@ GET /api/performance/ca/gamme?dateDebut=&dateFin=&site=
|
||||
|
||||
---
|
||||
|
||||
### Tableau de bord quotidien (Dashboard)
|
||||
```
|
||||
GET /api/performance/dashboard
|
||||
```
|
||||
Retourne une synthèse complète du jour demandé (par rapport au même jour à N-1) ainsi que les 3 Top 10 (CA, Quantité et Marge) par site.
|
||||
|
||||
| Paramètre | Type | Description | Défaut |
|
||||
|-----------|--------|---------------------------------------------------|------------|
|
||||
| `date` | date | Date cible `YYYY-MM-DD` | hier |
|
||||
| `site` | string | Filtrer par site (facultatif) | tous |
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"date": "2026-03-20",
|
||||
"date_n1": "2025-03-20",
|
||||
"sites": [
|
||||
{
|
||||
"site": "001",
|
||||
"ca_ttc": 12450.00,
|
||||
"ca_ttc_n1": 11800.00,
|
||||
"evol_ca": "+5.5%",
|
||||
"trafic": 420,
|
||||
"trafic_n1": 410,
|
||||
"evol_trafic": "+2.4%"
|
||||
}
|
||||
],
|
||||
"top10_ca": [
|
||||
{
|
||||
"codein": "129632",
|
||||
"libelle1": "ETUI 10 CARTES",
|
||||
"site": "001",
|
||||
"ca_ttc": 245.50,
|
||||
"qte_vendue": 60,
|
||||
"marge": 95.20
|
||||
}
|
||||
],
|
||||
"top10_qte": [
|
||||
{
|
||||
"codein": "129632",
|
||||
"libelle1": "ETUI 10 CARTES",
|
||||
"site": "001",
|
||||
"ca_ttc": 245.50,
|
||||
"qte_vendue": 60,
|
||||
"marge": 95.20
|
||||
}
|
||||
],
|
||||
"top10_marge": [
|
||||
{
|
||||
"codein": "129632",
|
||||
"libelle1": "ETUI 10 CARTES",
|
||||
"site": "001",
|
||||
"ca_ttc": 245.50,
|
||||
"qte_vendue": 60,
|
||||
"marge": 95.20
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Publicités (Ecoulement)
|
||||
|
||||
### Liste des publicités avec écoulement
|
||||
```
|
||||
GET /api/publicites
|
||||
```
|
||||
|
||||
| Paramètre | Type | Description | Défaut |
|
||||
|---|---|---|---|
|
||||
| `search` | string | Recherche dans l'intitulé ou le code | — |
|
||||
| `site` | string | Filtrer par site | — |
|
||||
| `dateDebut` | date | `YYYY-MM-DD` | 2000-01-01 |
|
||||
| `dateFin` | date | `YYYY-MM-DD` | 2099-12-31 |
|
||||
| `statut` | string | `en_cours`, `passees`, `futures`, ou `toutes` | — |
|
||||
| `page` | int | Numéro de page | 1 |
|
||||
| `limit` | int | Lignes par page | 50 |
|
||||
|
||||
### Historique des publicités (toutes les pubs)
|
||||
```
|
||||
GET /api/publicites/historique
|
||||
```
|
||||
Mêmes paramètres que `/api/publicites` (sauf site, page, limit). Retourne une liste complète incluant les publicités sans données d'écoulement.
|
||||
|
||||
### Détail d'une publicité (synthèse par site + articles)
|
||||
```
|
||||
GET /api/publicites/:code?site=
|
||||
```
|
||||
Retourne la synthèse de la publicité par site ainsi que les données d'écoulement de chaque article.
|
||||
|
||||
---
|
||||
|
||||
## Commandes Automatiques
|
||||
|
||||
### Propositions de commandes automatiques
|
||||
```
|
||||
GET /api/commandes-auto?site=&codefou=
|
||||
```
|
||||
Retourne les propositions de commandes auto agrégées par site et fournisseur, avec comparaison au franco de port.
|
||||
|
||||
### Détail des articles proposés pour un fournisseur
|
||||
```
|
||||
GET /api/commandes-auto/:codefou?site=
|
||||
```
|
||||
Retourne le résumé (franco, quantités, montant) et le détail par article des propositions.
|
||||
|
||||
---
|
||||
|
||||
## Schéma de la Base de Données
|
||||
|
||||
### Structure complète de la base
|
||||
```
|
||||
GET /api/schema
|
||||
```
|
||||
Retourne la structure complète de la base (tables et colonnes).
|
||||
|
||||
### Liste des tables (avec nombre de lignes)
|
||||
```
|
||||
GET /api/schema/tables?search=
|
||||
```
|
||||
|
||||
### Top tables (par volume)
|
||||
```
|
||||
GET /api/schema/top?limit=
|
||||
```
|
||||
|
||||
### Colonnes d'une table spécifique
|
||||
```
|
||||
GET /api/schema/tables/:tableName
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ranking (classement réseau)
|
||||
|
||||
### Recherche ranking
|
||||
@@ -1053,6 +1301,41 @@ GET /api/sync/status
|
||||
|
||||
---
|
||||
|
||||
## Photos (Indexation)
|
||||
|
||||
### Re-indexation des photos
|
||||
```
|
||||
POST /api/photos/reindex
|
||||
```
|
||||
Déclenche de façon asynchrone l'analyse des sitemaps produits de `lafoirfouille.fr` pour extraire et associer les URLs des fiches produits aux codes photos dans la table `ff_photo_index`.
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"indexed": 14258,
|
||||
"elapsed_s": 32.5
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Statut de l'indexation
|
||||
```
|
||||
GET /api/photos/status
|
||||
```
|
||||
Retourne le nombre total de photos indexées, la date de la dernière indexation, et si une indexation est actuellement en cours.
|
||||
|
||||
**Réponse** :
|
||||
```json
|
||||
{
|
||||
"total": 14258,
|
||||
"last_index": "2026-05-28T04:15:30.000Z",
|
||||
"indexing_in_progress": false
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Exemples d'intégration JavaScript
|
||||
|
||||
```javascript
|
||||
|
||||
Reference in new issue
Block a user