Exercices Projets guidés E-commerce #5 : Classe Commande
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

E-commerce #5 : Classe Commande

Une commande représente un achat en cours de traitement. Elle a un client, des items (produit: quantite), et un statut qui evolue.

Le cycle de vie d'une commande :
1. Creee en statut 'en_attente'
2. On peut appliquer une reduction
3. Quand on confirme, le statut passe a 'confirmee' et les stocks sont deduits

Crée la classe Commande avec :
- __init__(self, client, items) ou items est un dict {produit: quantite}
- statut : initialement 'en_attente'
- sous_total() : somme de prix * quantite
- appliquer_reduction(stratégie) : applique une StratégieReduction et stocke dans self.total
- confirmer() : passe le statut a 'confirmee' et deduit les stocks de chaque produit

Exemple :
p = Produit('Livre', Decimal('10'), 5)
c = Commande('Alice', {p: 3})
c.sous_total() # Decimal('30')
c.confirmer()
p.stock # 2

Tests (2/4)

Sous-total
from decimal import Decimal
p = Produit('A', Decimal('10'), 5)
c = Commande('Alice', {p: 3})
assert c.sous_total() == Decimal('30')
Statut initial
from decimal import Decimal
p = Produit('A', Decimal('10'), 5)
c = Commande('Bob', {p: 1})
assert c.statut == 'en_attente'

+ 0 tests cachés

Indices (3 disponibles)

solution.py