Warenkorb und Checkout: Angebotsbasierter B2B-Ablauf
Dieser Artikel erklärt unser Warenkorb- und Checkout-System, das für angebotsbasierte B2B-Verkäufe konzipiert ist.
Das Problem: B2B vs B2C
Traditioneller E-Commerce ist B2C (Business-to-Consumer):
-
Festpreise
-
Sofortiger Checkout
-
Kreditkartenzahlung
-
Automatisierte Abwicklung
Unser Geschäft ist B2B (Business-to-Business):
-
Angebotsbasierte Preise
-
Manuelle Überprüfung
-
Zahlung per Überweisung
-
Individuelle Konfigurationen
Wir benötigen ein Warenkorbsystem, das beide Modelle unterstützt.
Warenkorbtypen
Angebotswarenkorb (Standard)
Zweck: Angebot für individuelle Konfiguration anfordern
Ablauf: Artikel hinzufügen → Details ausfüllen → Absenden → Angebot per E-Mail erhalten
Zahlung: Nicht im Voraus erforderlich
Anwendungsfall: Individuelle Builds, Sammelbestellungen, verhandelte Preise
Einkaufswagen (Google Shopping)
Zweck: Direkter Kauf mit Festpreisen
Ablauf: Artikel hinzufügen → Details ausfüllen → Online bezahlen → Bestellung bestätigt
Zahlung: Im Voraus erforderlich (Razorpay)
Anwendungsfall: Standardkonfigurationen von Google Shopping
Erkennung: gclid, gbraid oder wbraid in der URL
Warenkorbstruktur
Warenkorbmodell
Felder:
-
Items: Liste der Positionen (SKU, Menge, Preis, Betrag) -
CustomerName: Name des Käufers -
CustomerEmail: E-Mail des Käufers -
CustomerPhone: Telefon des Käufers -
CustomerAddress: Lieferadresse -
CustomerGSTIN: Steuer-ID (optional) -
TotalAmount: Summe der Positionen -
GSTAmount: Steuerbetrag -
NetAmount: Gesamtbetrag + GST -
Currency: Warenkorbwährung (INR, USD, etc.) -
Type: "cart" oder "quote"
Position
Felder:
-
SKU: Produktkennung -
quantity: Anzahl der Einheiten -
Rate: Preis pro Einheit -
Amount: Rate × Menge
Artikel-in-den-Warenkorb-Ablauf
Direktes Hinzufügen (GET)
Artikel über URL-Parameter mit SKU hinzufügen.
Verhalten:
- Neuen Warenkorb erstellen oder bestehenden laden
- SKU mit Menge 1 hinzufügen
- Warenkorbseite anzeigen
Anwendungsfall: "In den Warenkorb"-Button auf der Produktseite
Formular-Hinzufügen (POST)
Formulardaten: SKU, Menge, Kundendetails
Verhalten:
- Prüfen, ob SKU existiert
- Mit angegebener Menge zum Warenkorb hinzufügen
- Warenkorb-Gesamtsummen aktualisieren
- Warenkorbseite anzeigen
Besondere Behandlung von V-SKUs
V-SKUs (virtuelle/konfigurierte Produkte) ersetzen den Warenkorbinhalt:
Grund: V-SKUs sind komplette Systeme, nicht kompatibel mit anderen Artikeln
Verhalten: Vorhandene Artikel entfernen, nur V-SKU hinzufügen
Ausnahme: Google Shopping-Modus (mehrere Artikel erlauben)
Warenkorbspeicherung
Speicherort: Serverseitige Flask-Session
Format: Als Session serialisiertes Dictionary
Persistenz: Bis Browser schließt oder Cookie abläuft
Vorteil: Keine Datenbank-Schreibvorgänge bis zum Checkout
Checkout-Ablauf
Angebotsanfrage
Schritte:
- Benutzer füllt Kundendetails aus
- Klickt auf "Angebot anfordern"
- Warenkorb als CRM-Ticket gespeichert
- E-Mail an Vertriebsteam gesendet
- Vertriebsteam antwortet mit Angebot
Keine Zahlung: Angebot wird per E-Mail gesendet
Direkter Kauf
Schritte:
- Benutzer füllt Kundendetails aus
- Klickt auf "Zur Zahlung"
- Warenkorb in Bestelltabelle gespeichert
- Razorpay-Zahlungsseite angezeigt
- Zahlung erfasst
- Bestellung bestätigt
Zahlung erforderlich: Razorpay-Integration
Währungsbehandlung
Warenkorbwährung: Wird bei Erstellung des Warenkorbs festgelegt
Gesperrt: Kann nach Hinzufügen von Artikeln nicht geändert werden
Umrechnung: Alle Artikel in die Warenkorbwährung umgerechnet
Anzeige: Zeigt sowohl die Warenkorbwährung als auch das INR-Äquivalent
GST-Berechnung
Indien (GSTIN angegeben): GST wird zum gültigen Satz hinzugefügt
Indien (kein GSTIN): GST wird zum gültigen Satz hinzugefügt
International: Keine GST
Formel: Nettobetrag = Gesamtbetrag + GST
Tracking-Parameter
Bei Warenkorberstellung speichern wir:
Kampagnenparameter: utm_source, utm_medium, utm_campaign
Klick-IDs: gclid, gbraid, wbraid, fbclid
Speicherung: Cookie-basiert mit Zeitfenster (30 Minuten)
Zweck: Offline-Konversionen Online-Kampagnen via Kontakt-Tracking zuordnen
E-Mail-Benachrichtigungen
Angebotsanfrage-E-Mail
An: Vertriebsteam
Inhalt: Kundendetails, Positionen, Gesamtbetrag
Anhänge: Keine
Bestellbestätigungs-E-Mail
An: Kunde
Inhalt: Bestelldetails, Zahlungsinfo, nächste Schritte
Anhänge: Rechnungs-PDF (falls Zahlung erhalten)
Zahlungsintegration
Gateway: Razorpay
Unterstützt: INR, USD, EUR, GBP
Methoden: Kreditkarte, Debitkarte, UPI, Net Banking
Webhook: Zahlungsstatus-Updates via Webhook
Siehe: Zahlungsintegration für Details
Warenkorbvalidierung
Vor dem Checkout:
SKU-Validierung: Alle SKUs müssen existieren
Mengenvalidierung: Nur positive Ganzzahlen
Kundenvalidierung: Name, E-Mail, Telefon erforderlich
Adressvalidierung: Erforderlich für den Versand
GSTIN-Validierung: Formatprüfung, falls angegeben
Referenzen
Verwandte Artikel
-
Produktseiten - In-den-Warenkorb-Button
-
Währungsumrechnung - Warenkorbwährung
-
Analytics-Tracking - Kampagnenzuordnung
Zusammenfassung
Unser Warenkorbsystem unterstützt sowohl angebotsbasierte als auch direkte Kaufabläufe:
Warenkorbtypen:
-
Angebotswarenkorb (Standard, keine Zahlung)
-
Einkaufswagen (Google Shopping, Zahlung erforderlich)
Funktionen:
-
Multi-Artikel-Warenkorb
-
Währungssperre
-
GST-Berechnung
-
Besondere Behandlung von V-SKUs
-
Kampagnentracking
Checkout:
-
Angebotsanfrage (E-Mail an Vertrieb)
-
Direkter Kauf (Razorpay-Zahlung)
Speicherung:
-
Session-basiert (keine DB bis zum Checkout)
-
30 Tage Persistenz
Dieser hybride Ansatz bedient sowohl angebotsbasierte B2B- als auch direkte B2C-Kaufmodelle.