Features
Price Monitor & Repricing
Le module Price Monitor surveille les prix concurrents en continu et ajuste automatiquement vos tarifs grace au moteur de repricing.
Veille concurrentielle
Sources de donnees
Deux sources complementaires pour collecter les prix :
- SerpAPI : Google Shopping + Amazon (source principale, payante)
- SearXNG : Moteur meta-search auto-heberge (fallback gratuit)
La cle SerpAPI est configurable via la variable SERPAPI_API_KEY ou depuis la page AI Providers (provider serp_api).
Tiers de surveillance
Chaque produit est affecte a un tier qui determine la frequence de surveillance :
| Tier | Frequence | Usage |
|---|---|---|
| Critique | Toutes les 4h | Top sellers, produits strategiques |
| Standard | Quotidien (24h) | Catalogue principal |
| Low | Hebdomadaire (7j) | Long tail, accessoires |
Le champ next_check_at dans PriceMonitorConfig determine le prochain passage Celery Beat.
File de validation
Les prix collectes passent par une file de validation avant integration :
- Matching strict : correspondance EAN exacte
- Matching flou : titre + marque (score de similarite)
- Validation manuelle possible pour les matchs incertains
Alertes prix
Configuration d'alertes par produit ou par categorie :
| Type | Description |
|---|---|
above | Prix concurrent au-dessus d'un seuil |
below | Prix concurrent en-dessous d'un seuil |
change_pct | Variation de prix superieure a X% |
Parametres :
- Cooldown : delai minimum entre deux alertes (defaut 24h)
- Canaux : email, notification in-app, webhook sortant
Monitoring MAP (Minimum Advertised Price)
Surveillance des prix planchers imposes par les marques :
- Detection automatique des violations MAP
- Historique des violations par revendeur
- Export CSV pour reporting aupres des marques
- Dashboard dedie avec KPIs (taux de conformite, top violateurs)
Historique des prix
Graphique PriceHistoryChart (Recharts) affichant :
- Evolution du prix produit vs prix concurrents
- Min / Max / Moyenne sur la periode
- Annotations pour les evenements (promo, rupture, changement MAP)
Donnees stockees dans PriceCheckLog (db_analytics), partitionnees par mois.
Moteur de Repricing
Regles de repricing
Les regles sont stockees en JSONB et evaluees dans l'ordre de priorite :
{
"strategy": "competitive",
"target": "lowest_competitor - 0.01",
"min_margin_pct": 15,
"max_discount_pct": 30,
"round_to": 0.99
}
Strategies disponibles :
- competitive : s'aligner sur le concurrent le moins cher
- margin_target : maintenir une marge cible
- map_floor : ne jamais descendre sous le MAP
- custom : formule personnalisee
Simulation (dry-run)
Avant application, le repricing peut etre simule :
POST /api/v1/prices/repricing/simulate
Retourne : ancien prix, nouveau prix, marge estimee, delta pour chaque produit concerne.
Garde-fous (Guard Rails)
Securites integrees pour eviter les erreurs de pricing :
- Prix minimum absolu : jamais en-dessous du cout d'achat + marge minimale
- Variation max par jour : limite le delta de prix (defaut +/-20%)
- Blacklist concurrents : exclure certains revendeurs du calcul
- Validation manuelle : au-dela d'un seuil de variation, approbation requise
Execution automatique
Celery Beat execute le repricing :
- Horaire : verification des regles actives
- Quotidien : recalcul complet du catalogue
- File
enrichmentpour ne pas bloquer les imports
Le repricing ne modifie jamais directement les prix sur les plateformes externes. Il met a jour le prix dans ProductsManager, et la synchronisation vers Shopify/WooCommerce/etc. se fait via les connecteurs.
Endpoints API
| Methode | Endpoint | Description |
|---|---|---|
| GET | /api/v1/prices/dashboard | KPIs et resume |
| GET | /api/v1/prices/monitored | Produits surveilles |
| GET | /api/v1/prices/competitors | Liste concurrents |
| GET | /api/v1/prices/history/{id} | Historique prix produit |
| POST | /api/v1/prices/repricing/simulate | Simulation repricing |
| POST | /api/v1/prices/validation | File de validation |