Description du projet
TraduitLe cœur du projet est une petite API REST que la page de paiement appellera. Étant donné un code et le total actuel du panier, elle doit rapidement répondre : le code est-il valide, quelle réduction appliquer, et pourquoi il a été rejeté (expiré, limite atteinte, mauvais client, panier trop petit). Il est important que le système gère en toute sécurité les échanges concurrents afin qu'un code limité ne puisse pas être dépensé deux fois dans une condition de course, et chaque échange est enregistré pour le reporting. Un ajout agréable serait un simple panneau d'administration où un employé non technique peut créer un code, choisir une règle, définir des limites et des dates, et mettre en pause ou désactiver un code à la volée.
Je vous demande de vous concentrer spécifiquement sur les codes de réduction. Ce n'est pas un programme de parrainage ou une application de fidélité avec des points, donc je n'ai pas besoin d'invitations d'amis, de niveaux et d'accumulation de soldes de points. Le plus important : un calcul de réduction correct, une validation sécurisée sous charge, et une API que mon développeur frontend pourra facilement intégrer. La documentation et quelques exemples de requêtes seraient très utiles.
— Génération de codes : unique et en lot, avec des préfixes arbitraires et un format lisible
— Types de règles : pourcentage, montant fixe, BOGO, première commande uniquement
— Limites : utilisations totales, par client, montant minimum du panier, dates de validité
— API de validation : point de terminaison REST rapide retournant la validité, le montant de la réduction et la raison
— Rédemption concurrente sécurisée avec journal complet pour reporting
— Panneau d'administration simple pour la création, la pause et la désactivation des codes