Panier et Paiement : Flux B2B Basé sur Devis

Cet article explique notre système de panier et de paiement conçu pour les ventes B2B basées sur devis.

Le Problème : B2B vs B2C

Le commerce électronique traditionnel est B2C (Business-to-Consumer) :

  • Prix fixes

  • Paiement instantané

  • Paiement par carte de crédit

  • Traitement automatisé

Notre activité est B2B (Business-to-Business) :

  • Tarification sur devis

  • Revue manuelle

  • Paiement par virement bancaire

  • Configurations personnalisées

Nous avons besoin d'un système de panier qui supporte les deux modèles.

Types de Panier

Panier Devis (Par Défaut)

Objectif : Demander un devis pour une configuration personnalisée

Flux : Ajouter des articles → Remplir les détails → Soumettre → Recevoir un devis par email

Paiement : Non requis initialement

Cas d'usage : Configurations personnalisées, commandes en gros, tarification négociée

Panier d'Achat (Google Shopping)

Objectif : Achat direct avec prix fixes

Flux : Ajouter des articles → Remplir les détails → Payer en ligne → Commande confirmée

Paiement : Requis initialement (Razorpay)

Cas d'usage : Configurations standard provenant de Google Shopping

Détection : gclid, gbraid, ou wbraid dans l'URL

Structure du Panier

Modèle de Panier

Champs :

  • Items : Liste des lignes d'articles (SKU, quantité, tarif unitaire, montant)

  • CustomerName : Nom de l'acheteur

  • CustomerEmail : Email de l'acheteur

  • CustomerPhone : Téléphone de l'acheteur

  • CustomerAddress : Adresse de livraison

  • CustomerGSTIN : Numéro de taxe (optionnel)

  • TotalAmount : Somme des lignes d'articles

  • GSTAmount : Montant de la taxe

  • NetAmount : Total + GST

  • Currency : Devise du panier (INR, USD, etc.)

  • Type : "cart" ou "quote"

Ligne d'Article

Champs :

  • SKU : Identifiant du produit

  • quantity : Nombre d'unités

  • Rate : Prix par unité

  • Amount : Tarif unitaire × quantité

Flux d'Ajout au Panier

Ajout Direct (GET)

Ajouter un article via un paramètre d'URL avec le SKU.

Comportement :

  1. Créer un nouveau panier ou charger l'existant
  2. Ajouter le SKU avec la quantité 1
  3. Afficher la page du panier

Cas d'usage : Bouton "Ajouter au panier" sur la page produit

Ajout par Formulaire (POST)

Données du formulaire : SKU, quantité, détails client

Comportement :

  1. Valider que le SKU existe
  2. Ajouter au panier avec la quantité spécifiée
  3. Mettre à jour les totaux du panier
  4. Afficher la page du panier

Gestion Spéciale des V-SKU

Les V-SKU (produits virtuels/configurés) remplacent le contenu du panier :

Raison : Les V-SKU sont des systèmes complets, non compatibles avec d'autres articles

Comportement : Vider les articles existants, ajouter uniquement le V-SKU

Exception : Mode Google Shopping (autorise plusieurs articles)

Stockage du Panier

Emplacement : Session Flask côté serveur

Format : Dictionnaire sérialisé dans la session

Persistance : Jusqu'à la fermeture du navigateur ou l'expiration du cookie

Avantage : Aucune écriture en base de données avant le paiement

Flux de Paiement

Demande de Devis

Étapes :

  1. L'utilisateur remplit ses détails
  2. Clique sur "Obtenir un devis"
  3. Le panier est enregistré dans un ticket CRM
  4. Un email est envoyé à l'équipe commerciale
  5. L'équipe commerciale répond avec un devis

Pas de paiement : Le devis est envoyé par email

Achat Direct

Étapes :

  1. L'utilisateur remplit ses détails
  2. Clique sur "Procéder au paiement"
  3. Le panier est enregistré dans la table des commandes
  4. La page de paiement Razorpay s'affiche
  5. Le paiement est capturé
  6. La commande est confirmée

Paiement requis : Intégration Razorpay

Gestion des Devises

Devise du panier : Définie lors de la création du panier

Verrouillée : Impossible de changer de devise après l'ajout d'articles

Conversion : Tous les articles sont convertis dans la devise du panier

Affichage : Montre à la fois la devise du panier et l'équivalent en INR

Calcul de la GST

Inde (GSTIN fourni) : GST ajoutée au taux applicable

Inde (pas de GSTIN) : GST ajoutée au taux applicable

International : Pas de GST

Formule : Montant net = Montant total + GST

Paramètres de Suivi

Lors de la création du panier, nous stockons :

Paramètres de campagne : utm_source, utm_medium, utm_campaign

Identifiants de clic : gclid, gbraid, wbraid, fbclid

Stockage : Basé sur les cookies avec une fenêtre temporelle (30 minutes)

Objectif : Attribuer les conversions hors ligne aux campagnes en ligne via le suivi des contacts

Notifications par Email

Email de Demande de Devis

Destinataire : Équipe commerciale

Contenu : Détails du client, lignes d'articles, montant total

Pièces jointes : Aucune

Email de Confirmation de Commande

Destinataire : Client

Contenu : Détails de la commande, informations de paiement, prochaines étapes

Pièces jointes : PDF de facture (si paiement reçu)

Intégration de Paiement

Passerelle : Razorpay

Devises supportées : INR, USD, EUR, GBP

Méthodes : Carte de crédit, carte de débit, UPI, virement bancaire

Webhook : Mises à jour du statut de paiement via webhook

Voir : Intégration de paiement pour plus de détails

Validation du Panier

Avant le paiement :

Validation SKU : Tous les SKU doivent exister

Validation quantité : Nombres entiers positifs uniquement

Validation client : Nom, email, téléphone requis

Validation adresse : Requise pour la livraison

Validation GSTIN : Vérification du format si fourni

Références

Articles Connexes

Résumé

Notre système de panier supporte à la fois les flux basés sur devis et les achats directs :

Types de panier :

  • Panier devis (par défaut, pas de paiement)

  • Panier d'achat (Google Shopping, paiement requis)

Fonctionnalités :

  • Panier multi-articles

  • Verrouillage de devise

  • Calcul de la GST

  • Gestion spéciale des V-SKU

  • Suivi des campagnes

Paiement :

  • Demande de devis (email aux ventes)

  • Achat direct (paiement Razorpay)

Stockage :

  • Basé sur session (pas de base de données avant paiement)

  • Persistance de 30 jours

Cette approche hybride sert à la fois les modèles B2B basés sur devis et B2C d'achat direct.


← Retour à l'Index de Documentation