MAISON CODE .
/ B2B · Pricing · Shopify Plus · Architecture · ERP · Commerce

B2B-Commerce: Technische Preiskomplexität

DTC ist einfach. B2B ist schwierig. Ein technischer Leitfaden zu gestaffelten Preisen, kundenspezifischen Katalogen und der Headless B2B-Architektur bei Shopify Plus.

AB
Alex B.
B2B-Commerce: Technische Preiskomplexität

Beim Direct-to-Consumer (DTC)-Handel ist die Logik einfach: „Hier ist ein Hemd. Es kostet 50 €.“ Im Business-to-Business (B2B)-Handel ist die Antwort auf „Wie viel kostet das?“ ist immer: „Es kommt darauf an.

  • Wer bist du? (Gold-Partner vs. Bronze-Reseller).
  • Wie viele kaufen Sie? (1 Einheit vs. 1.000 Einheiten).
  • Wohin versenden Sie? (EU-Mehrwertsteuer vs. US-Umsatzsteuer).
  • Wann zahlen Sie? (Kreditkarte vs. Netto-30-Rechnung).

Bei bestehenden Legacy-B2B-Portalen ist diese Logik im 20 Jahre alten SAP-Spaghetti-Code vergraben. Moderne B2B-Käufer erwarten das „Amazon-Erlebnis“ – elegante Benutzeroberfläche, sofortige Suche, Kompatibilität mit Mobilgeräten – aber mit der komplexen Preislogik eines ERP.

Bei Maison Code Paris erstellen wir Headless B2B-Portale, die UX für Endverbraucher mit Logik für Unternehmen verbinden.

Warum Maison Code darüber spricht

Bei Maison Code Paris fungieren wir als das architektonische Gewissen unserer Kunden. Wir übernehmen oft „moderne“ Stacks, die ohne grundlegendes Verständnis für Skalierung gebaut wurden.

Wir diskutieren dieses Thema, weil es einen kritischen Wendepunkt in der technischen Reife darstellt. Die korrekte Implementierung unterscheidet ein fragiles MVP von einer widerstandsfähigen Plattform auf Unternehmensniveau.

Warum Maison Code B2B diskutiert

Der B2B-Handel ist fünfmal größer als der DTC. Dennoch sind B2B-Websites oft fünfmal schlechter. Wir glauben, dass auch B2B-Käufer Menschen sind. Sie hassen klobige Schnittstellen. Sie hassen es, auf PDFs zu warten. Wir helfen Herstellern und Großhändlern, ihre „Auftragsannahme“-Zentren in „Self-Service-Revenue“-Automaten umzuwandeln. Wir entwickeln Systeme, die Tausende von SKUs und Millionen von Preisvarianten verarbeiten, ohne mit der Wimper zu zucken.

1. Das Datenmodell: Unternehmen und Standorte

Im neuen B2B Primitive von Shopify entfernen wir uns vom einfachen „Kunden“-Objekt.

„Meerjungfrau erDiagram Unternehmen ||—|{ CompanyLocation : has Unternehmen ||—|{ CompanyContact : beschäftigt Firmenstandort ||—|| Katalog: zugewiesen_zu Katalog ||—|{ Preisliste: enthält Firmenkontakt }|—|| Kunde: links_to „

  • Unternehmen: Die juristische Person (z. B. „Sephora“).
  • Firmenstandort: Das physische Geschäft (z. B. „Sephora Paris Champs Elysees“).
  • Katalog: Die Teilmenge der Produkte, die dieser Standort kaufen darf.
  • Firmenkontakt: Der menschliche Käufer (Einkaufsmanager).

Diese Hierarchie ermöglicht es einem einzelnen Käufer, für mehrere Standorte einzukaufen, wobei für jeden Standort unterschiedliche Steuerregeln ordnungsgemäß durchgesetzt werden.

2. Preislogik: Der Wasserfall

Der anspruchsvolle Teil des B2B-Geschäfts ist die Berechnung des Endpreises. Der Algorithmus folgt einem bestimmten Wasserfall:

  1. Grundpreis: 100 € (UVP).
  2. Katalogpreis: 80 € (Großhandelsliste).
  3. Festpreisüberschreibung: 75 € (Vertraglicher Preis für diese SKU).
  4. Prozentsatz Rabatt: -10 % (Gold-Stufen-Rabatt).
  5. Mengenrabatt: -5 % (Beim Kauf von >100 Einheiten).

Dynamische Preisgestaltung implementieren (Shopify-Funktionen)

Wir synchronisieren nicht 50 Varianten für 50 Preisstufen. Wir verwenden Shopify Functions (WASM), um die Logik beim Checkout zu berechnen.

„Rost.“ // rust/discount-allocator/src/main.rs (vereinfacht)

fn run(input: Input) -> Output { let company = input.cart.buyer_identity.company; let tier = company.metafields.get(“custom.tier”).unwrap_or(“BRONZE”);

let discount = match level {
    „GOLD“ => 0,25, // 25 % Rabatt
    „SILBER“ => 0,15, // 15 % Rabatt
    _ => 0,0,
};

// Rabatt auf berechtigte Leitungen anwenden
// ...

} „

Dadurch wird sichergestellt, dass die Berechnung unabhängig von der Komplexität des Vertrags in <5 ms am Edge erfolgt.

3. Mengenregeln (Das Palettenproblem)

Sie können nicht 1 Stein versenden. Sie versenden eine Palette mit 500 Steinen. Für B2B sind Mengenerhöhungen und Mindestbestellmengen (MOQ) erforderlich.

Wir erzwingen dies auf der PDP (Produktdetailseite) mithilfe von UI-Einschränkungen, validieren es aber auch serverseitig.

„tsx // Komponenten/QuantitySelector.tsx Exportfunktion QuantitySelector({ moq, inkrement }) { const [val, setVal] = useState(moq);

const stepUp = () => setVal(v => v + inkrement); // 500 -> 1000

return ; } „

4. Die Zahlung: Nettobedingungen vs. Kreditkarte

B2B-Kassen nutzen für große Bestellungen selten Kreditkarten. Die Gebühren (2,9 %) sind bei einer Bestellung im Wert von 50.000 € zu hoch. Wir verwenden Bestellentwürfe und Zahlungsbedingungen.

  1. Zur Kasse: Der Benutzer wählt „Zahlung per Rechnung (Netto 30)“.
  2. Risikoprüfung: Wir rufen die ERP-API (NetSuite) auf, um das Kreditlimit des Unternehmens zu überprüfen.
    • Wenn „CurrentBalance + CartTotal > CreditLimit“: Bestellung ablehnen.
    • Wenn „OK“: Fahren Sie fort.
  3. Übermittlung: Die Bestellung wird in Shopify mit dem Status „Zahlung ausstehend“ erstellt.
  4. Rechnungsstellung: Middleware synchronisiert die Bestellung mit ERP. ERP sendet PDF-Rechnung per E-Mail.
  5. Abstimmung: Wenn die Überweisung eintrifft, aktualisiert ERP die Shopify-Bestellung auf „Bezahlt“.

5. Das „Gatekeeper“-Muster

Ein B2B-Shop ist oft privat. Wir implementieren eine Gatekeeping-Middleware am Edge (Cloudflare / Vercel Edge).

„Typoskript // middleware.ts Standardfunktions-Middleware exportieren (Anfrage: Anfrage) { const token = request.cookies.get(‘b2b_session’);

if (!token) { return NextResponse.redirect(new URL(‘/login’, request.url)); }

const user = Warten auf verifyToken(token); if (!user.is_b2b_approved) { return NextResponse.rewrite(new URL(‘/pending-approval’, request.url)); } } „ Dies hindert Google daran, Großhandelspreise zu indexieren (was den Markenwert ruiniert) und hält Kompetenzen außen vor.

6. Matrixordnung (hohe Geschwindigkeit)

Ein Käufer, der die FW25-Kollektion bestellt, muss 50 SKUs in 4 Größen bestellen. Sie möchten nicht 50 Produktseiten besuchen. Wir erstellen Matrix Grids (Excel-ähnliche Schnittstellen). (Siehe unseren speziellen Artikel zur Matrix-Bestellung).

Dies erfordert eine starke Frontend-Optimierung (Virtualisierung), um 2.000 Eingaben zu rendern, ohne dass der Browser abstürzt.

7. ERP-Integration: Die Quelle der Wahrheit

Im B2B ist Shopify nicht der Herr der Daten. Das ERP ist.

  • Inventar: Wir vertrauen dem Shopify-Inventar nicht. Wir rufen Echtzeit-ATP (Available to Promise) aus dem ERP ab.
  • Kundendaten: Wenn ein Kunde seine Adresse in Shopify aktualisiert, müssen wir sie an das ERP übertragen.

Wir verwenden ereignisgesteuerte Architektur (siehe AWS-Infrastruktur), um diese Synchronisierungen asynchron über Webhooks und Warteschlangen (SQS) abzuwickeln.

8. Kundenspezifische Kataloge

Einige Marken haben „Exklusiv“-Produkte. Nike verkauft „Air Jordans“ möglicherweise nur an „Tier-1“-Händler. Standardhändler dürfen das Produkt nicht einmal sehen. Wir verwenden Katalogtrennung.

  1. Markieren Sie Produkte: „Tag: „exklusiv““.
  2. Markieren Sie Unternehmen: „metafield: „access_level: 1““.
  3. Suchfilterung: Bei der Abfrage von Algolia fügen wir den Filter ein: „filters: ‘(tag:exclusive AND user.access_level >= 1) OR NOT tag:exclusive‘“. Dies gewährleistet Sicherheit durch Dunkelheit.

9. Headless B2B-Architektur (Wasserstoff)

Wir bauen B2B auf Shopify Hydrogen (React). Warum nicht Liquid? Weil Liquid die Komplexität von „Matrix-Bestellung“ oder „benutzerdefinierten Preislisten“ nicht schnell genug bewältigen kann. Mit Remix/Wasserstoff:

  • Wir zwischenspeichern die „Basisproduktdaten“ am Edge (CDN).
  • Wir rufen den „personalisierten Preis“ über „Defer“ (Streaming) ab.
  • Die Seite wird sofort geladen. Der Preis erscheint 200 ms später. Das fühlt sich an wie eine Verbraucher-App, nicht wie ein Unternehmensportal.

10. Der Angebotsanfrage-Workflow

Für Bestellungen > 50.000 € ist der Preis nicht festgelegt. Es wird ausgehandelt.

  1. Zum Angebot hinzufügen: Der Benutzer erstellt einen Warenkorb. Anstelle von „Zur Kasse“ klicken sie auf „Angebot anfordern“.
  2. Vertriebsagent: Der Vertriebsmitarbeiter in Salesforce erhält das Angebot.
  3. Verhandlung: Der Vertreter bearbeitet die Preise („Ich gebe Ihnen 5 % mehr Rabatt, wenn Sie 100 Einheiten hinzufügen“).
  4. Genehmigung: Der Benutzer erhält eine E-Mail: „Angebot bereit“.
  5. Konvertierung: Der Benutzer klickt auf den Link, sieht die benutzerdefinierten Preise und zahlt per Netto 30. Dadurch wird die Verhandlung digitalisiert, ohne dass die menschliche Note verloren geht.

11. KI-gesteuerte Preisgestaltung (dynamische Rendite)

Ausgehandelte Verträge sind statisch. „Sie erhalten 10 % Rabatt.“ Was aber, wenn der Kunde kurz vor der Abwanderung steht? Wir nutzen KI (Dynamic Yield/Nosto), um dynamische Werbeaktionen einzuschleusen. „Wenn Kunde X die Website dreimal besucht und nicht kauft -> Bieten Sie 24 Stunden lang 5 % zusätzlichen Rabatt.“ Dies wird streng durch Margin-Regeln (im ERP festgelegt) kontrolliert. Die KI ist der „digitale Vertriebsmitarbeiter“, der genau weiß, wie viel Saft er auspressen muss, um den Deal abzuschließen.

12. Fazit

B2B ist nicht länger das „hässliche Entlein“ des E-Commerce. Die Marken, die im Großhandel gewinnen, sind diejenigen, die ein DTC-ähnliches Erlebnis bieten. Indem Sie die Komplexität von Preisgestaltung und Logistik hinter einer sauberen Headless-Benutzeroberfläche abstrahieren, respektieren Sie die Zeit des Käufers. Und im B2B ist Zeit die einzige Währung, die zählt.


Skalieren Sie Ihren Großhandelskanal?

Steckt Ihr B2B-Portal in den 1990er-Jahren fest?

Architekt eines modernen B2B-Shops. Beauftragen Sie unsere Architekten.