Le client peut demander l'annulation depuis son compte. La commande passe dans un état « cancellation_requested », l'admin voit la demande et décide de l'approuver ou de la rejeter. Les remboursements sur Stripe et PayPal sont automatiques.
Workflow d'annulation côté client
Le client accède à son espace compte, clique sur une commande confirmée et sélectionne « Demander l'annulation ». Dans la boîte de dialogue, il doit choisir la raison (changed_mind, wrong_item, duplicate, late_delivery, other) et peut ajouter une note.
La demande est créée immédiatement et envoyée à l'admin. La commande passe au statut pending_cancellation_review. Le client voit le statut de sa demande dans son compte.
- Demande d'annulation directement par le client dans son compte
- Choix de la raison (obligatoire) et note optionnelle
- Statut tracé en temps réel : pending, approved, rejected
- Notifications automatiques au client sur l'issue de la demande
Approbation/rejet dans l'admin
L'admin voit toutes les demandes d'annulation dans une liste dédiée. Pour chaque demande, il peut :
- L'approuver : la commande passe au statut cancelled, le remboursement est traité automatiquement sur la passerelle (Stripe ou PayPal) - La rejeter : l'admin peut écrire un message de motif que le client reçoit par e-mail et voit dans son compte
Si le remboursement échoue (carte expirée, limite atteinte, etc.), l'admin peut réessayer le remboursement depuis le panneau à tout moment.
- Liste centralisée de toutes les demandes pending
- Approuver/rejeter avec message personnalisé
- Remboursement automatique sur Stripe ou PayPal à l'approbation
- Retry manuel du remboursement si la première tentative échoue
Traitement du remboursement
Lorsque l'admin approuve une annulation, Veendo lit le moyen de paiement de la commande (Stripe ou PayPal), le transaction ID et le montant, et envoie une demande de remboursement à la passerelle.
Le remboursement utilise une idempotencyKey basée sur l'ID de la demande d'annulation — si le réseau échoue et que vous réessayez, la passerelle ne crée pas deux remboursements mais reconnaît qu'il s'agit du même. L'admin voit le statut : success, failed, pending.
- Prise en charge de Stripe (cartes, wallets, 3DS) et PayPal
- Remboursement total ou partiel (si configuré)
- Idempotency key pour éviter les doubles remboursements
- Retry automatique et manuel disponible
Si le remboursement échoue côté passerelle (ex. carte expirée), il reste au statut failed et doit être réessayé manuellement par l'admin une fois le problème résolu.
Notifications automatiques et communications
Lorsque la demande est créée, l'admin reçoit une notification (e-mail + in-app). Lorsque la demande est approuvée ou rejetée, le client reçoit une notification automatique avec le statut et le message. Si le remboursement a été effectué, le client reçoit une communication de confirmation.
- Notification admin lorsque le client demande l'annulation
- Notification client lorsque la demande est approuvée/rejetée
- E-mail de confirmation de remboursement au client
- Suivi visible dans le panneau et dans l'espace client