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:

  1. Neuen Warenkorb erstellen oder bestehenden laden
  2. SKU mit Menge 1 hinzufügen
  3. Warenkorbseite anzeigen

Anwendungsfall: "In den Warenkorb"-Button auf der Produktseite

Formular-Hinzufügen (POST)

Formulardaten: SKU, Menge, Kundendetails

Verhalten:

  1. Prüfen, ob SKU existiert
  2. Mit angegebener Menge zum Warenkorb hinzufügen
  3. Warenkorb-Gesamtsummen aktualisieren
  4. 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:

  1. Benutzer füllt Kundendetails aus
  2. Klickt auf "Angebot anfordern"
  3. Warenkorb als CRM-Ticket gespeichert
  4. E-Mail an Vertriebsteam gesendet
  5. Vertriebsteam antwortet mit Angebot

Keine Zahlung: Angebot wird per E-Mail gesendet

Direkter Kauf

Schritte:

  1. Benutzer füllt Kundendetails aus
  2. Klickt auf "Zur Zahlung"
  3. Warenkorb in Bestelltabelle gespeichert
  4. Razorpay-Zahlungsseite angezeigt
  5. Zahlung erfasst
  6. 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

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.


← Zurück zum Dokumentationsindex