mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-11 17:26:32 +02:00
fix(ai): improved seasonality detection in batch by sending detailed month-by-month history
This commit is contained in:
1 parent
4f7701fa14
commit
fe8d0f1b32
2 files changed
+6
-4
No files matched your search
@@ -44,8 +44,8 @@ export async function POST(req: NextRequest) {
|
|||||||
En analysant les données de ventes fournies (CA, Marge, Volume, Historique), génère pour chaque produit une recommandation de gamme (A=Permanent, C=Saisonnier, Z=Sortie).
|
En analysant les données de ventes fournies (CA, Marge, Volume, Historique), génère pour chaque produit une recommandation de gamme (A=Permanent, C=Saisonnier, Z=Sortie).
|
||||||
|
|
||||||
CRITÈRES :
|
CRITÈRES :
|
||||||
- A (Permanent) : Produit permanent avec une rotation régulière et satisfaisante.
|
- A (Permanent) : Produit permanent avec une rotation régulière et satisfaisante sur toute l'année.
|
||||||
- C (Saisonnier) : Produit dont les ventes sont concentrées sur des périodes spécifiques (pics saisonniers).
|
- C (Saisonnier) : Produit dont les ventes sont concentrées sur des périodes spécifiques. Détecte les pics dans l' 'historique' (ex: ventes en 202412 mais rien ailleurs). Aide-toi de la 'nomenclature' et du 'nom' pour confirmer l'usage saisonnier.
|
||||||
- Z (Sortie) : Produit à arrêter car les ventes sont quasi nulles ou la rotation est insuffisante.
|
- Z (Sortie) : Produit à arrêter car les ventes sont quasi nulles ou la rotation est insuffisante.
|
||||||
|
|
||||||
DÉTECTION :
|
DÉTECTION :
|
||||||
|
|||||||
@@ -55,8 +55,10 @@ export function BulkAiAnalyzer() {
|
|||||||
ventes: r.totalQuantite || 0,
|
ventes: r.totalQuantite || 0,
|
||||||
marge: r.totalMarge ? parseFloat(((r.totalMarge / (r.totalCa || 1)) * 100).toFixed(1)) : 0,
|
marge: r.totalMarge ? parseFloat(((r.totalMarge / (r.totalCa || 1)) * 100).toFixed(1)) : 0,
|
||||||
gammeInit: r.codeGammeInit || "N/A",
|
gammeInit: r.codeGammeInit || "N/A",
|
||||||
// Simplified history: last 12 values joined (e.g., "5,0,10...")
|
// Detailed history: "YYYYMM: Qty, YYYYMM: Qty..." to help AI see seasonality
|
||||||
historique: Object.values(r.sales12m || {}).join(","),
|
historique: Object.entries(r.sales12m || {})
|
||||||
|
.map(([month, qty]) => `${month}:${qty}`)
|
||||||
|
.join(", "),
|
||||||
// Contextual nomenclature
|
// Contextual nomenclature
|
||||||
nomenclature: `${r.libelleNiveau1 || ""} > ${r.libelleNiveau2 || ""} > ${r.libelle3 || ""}`
|
nomenclature: `${r.libelleNiveau1 || ""} > ${r.libelleNiveau2 || ""} > ${r.libelle3 || ""}`
|
||||||
}));
|
}));
|
||||||
|
|||||||
Reference in new issue
Block a user