Exercices Projets guidés E-commerce #11 : Historique des commandes
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

E-commerce #11 : Historique des commandes

L'historique des commandes permet d'analyser les ventes. Il faut pouvoir calculer le chiffre d'affaires total, filtrer par statut, et trouver le produit le plus vendu.

Pour agreger les ventes par produit, on utilise defaultdict(int) du module collections. C'est un dictionnaire qui initialise automatiquement les valeurs manquantes a 0.

Exemple :
from collections import defaultdict
compteur = defaultdict(int)
compteur['pomme'] += 3
compteur['pomme'] += 2
compteur['pomme'] # 5

Attention avec sum() et Decimal : sum() commence a 0 (un int), ce qui pose problème avec Decimal. Il faut passer un Decimal comme valeur de depart : sum(valeurs, Decimal('0')).

Crée HistoriqueCommandes avec :
- enregistrer(commande) : ajoute une commande
- total_revenus() : somme des commande.total
- commandes_par_statut(statut) : filtre par statut
- produit_le_plus_vendu() : retourne le nom du produit le plus commande (agreges toutes commandes)

Tests (2/4)

Total revenus
from decimal import Decimal
p = Produit('A')
h = HistoriqueCommandes()
h.enregistrer(Commande({p: 1}, '50.00'))
h.enregistrer(Commande({p: 2}, '100.00'))
assert h.total_revenus() == Decimal('150.00')
Commandes par statut
from decimal import Decimal
p = Produit('A')
h = HistoriqueCommandes()
h.enregistrer(Commande({p: 1}, '10', 'payee'))
h.enregistrer(Commande({p: 1}, '10', 'annulee'))
assert len(h.commandes_par_statut('payee')) == 1

+ 0 tests cachés

Indices (3 disponibles)

solution.py