Tarification
Comment les prix sont calcules — prix client Cegid, remises en cascade et synchronisation.
Les prix dans Qovans sont personnalises par client. Chaque client a sa propre grille tarifaire dans Cegid, avec des remises en cascade.
Comment ca marche
Quand un client se connecte, ses prix sont lus depuis le cache local PostgreSQL (table product_prices). Ce cache est alimente par la synchronisation avec Cegid.
Calcul du prix net
Cegid renvoie un prix brut et jusqu'a 3 remises en cascade :
Prix net = Prix brut × (1 - Remise1%) × (1 - Remise2%) × (1 - Remise3%) - Remise fixeExemple : prix brut 100 EUR, remise1 = 10%, remise2 = 5% → 100 × 0.90 × 0.95 = 85.50 EUR
Stockage
La table product_prices stocke un enregistrement par couple (produit, client) :
| Champ | Description |
|---|---|
gross_price | Prix brut Cegid |
rebate1, rebate2, rebate3 | Remises en % |
rebate_amount | Remise fixe en EUR |
net_price | Prix net calcule |
is_active | false si le prix est 0 (produit non commercialise pour ce client) |
Synchronisation
Les prix sont synchronises pour chaque client via l'endpoint Cegid SearchTariffSales. La sync est declenchee :
- A la premiere connexion du client (si
is_synced = false) - Periodiquement via les scripts de sync
Affichage
Le frontend affiche toujours le prix net HT (apres remises). Les prix sont formates en euros avec 2 decimales.
Si un produit n'a pas de prix pour le client connecte (is_active = false), il n'apparait pas dans le catalogue.
Points d'attention
- Les prix sont en HT partout dans l'application
- La TVA n'est pas calculee dans Qovans (elle l'est dans Cegid a la facturation)
- Un client sans sync recente voit les prix de la derniere synchronisation
- Le champ
fixed_pricesurcharge le calcul par remises quand il est defini