Portfolio

WooCommerce-API-Integration mit einem Großhändler: ein Shop für Autoteile

Case Study zur Integration eines WooCommerce-Shops mit der REST-API eines Kfz-Großhändlers: Synchronisation von Katalog, Lagerbeständen und Preisen in Echtzeit sowie automatische Margenlogik.

#Online-Shops
WooCommerce-API-Integration mit einem Großhändler: ein Shop für Autoteile

#WooCommerce-API-Integration mit einem Kfz-Großhändler für Autoteile

Ein Shop für Autoteile lebt und stirbt mit der Vollständigkeit und Aktualität seines Katalogs. Bei mehreren zehntausend Indizes, deren Verfügbarkeit und Preis sich beim Lieferanten von einem Tag auf den anderen ändern, ist die Pflege des Sortiments von Hand ein aussichtsloses Spiel. In diesem Projekt haben wir einen WooCommerce-Shop direkt über REST-API mit dem Web-Service eines Großhändlers verbunden, sodass sich Katalog, Bestände und Preise selbst aktuell halten. Die Namen von Kunde und Lieferant bleiben vertraulich.

#Das Problem: Verkauf von Ware, die nicht vorhanden ist

Der teuerste Fehler in einem solchen Shop ist die Annahme und Bezahlung einer Bestellung für ein Teil, das der Lieferant physisch nicht vorrätig hat. Das endet in Rückerstattungen, Reklamationsbearbeitung und verlorenem Vertrauen. Hinzu kommt der Preisverzug: Der Großhändler ändert seine Preisliste, während der Shop weiterhin zum alten Preis verkauft, manchmal unter den eigenen Kosten. Das Ziel war also konkret. Der Katalog muss abbilden, was der Lieferant tatsächlich verfügbar hat und zu welchem Preis, und zwar ohne manuelle Arbeit.

#Architektur: WooCommerce verbunden mit dem Web-Service des Großhändlers

Die Basis ist WordPress mit WooCommerce, die Integrationsschicht ist dedizierter PHP-Code, der mit der REST-API des Großhändlers kommuniziert. Der Lieferant stellt die Daten sowohl im Format JSON als auch XML bereit, also parst die Integration beides und führt sie auf ein einziges internes Modell zurück. Die Synchronisation läuft zyklisch im Hintergrund (WP-Cron-Aufgaben), aufgeteilt in ein leichteres, häufiges Abfragen von Beständen und Preisen sowie eine schwerere, seltenere Aktualisierung des gesamten Sortiments.

#Mapping der Großhändlerdaten auf WooCommerce-Produkte

Der Großhändler beschreibt Produkte mit seiner eigenen Feldstruktur. Aufgabe der Integration ist es, diese auf das Produkt- und Attributmodell von WooCommerce zu übersetzen. Wir mappen unter anderem:

  • EAN und Index - als Schlüssel, die ein Produkt identifizieren und die Position im Shop bei jeder weiteren Synchronisation mit dem Datensatz beim Großhändler verknüpfen.
  • Technische Attribute - Teileparameter, die auf WooCommerce-Attribute und -Varianten übertragen werden, damit Filter und Suche nach Parametern funktionieren.
  • Medien und Beschreibungen - Bilder und HTML-Codes der Beschreibungen, die von den Endpunkten des Großhändlers bezogen und auf den Produktseiten eingebunden werden.

Die Feldzuordnung ist deklarativ, sodass das Hinzufügen eines neuen Parameters vom Großhändler nur eine Erweiterung des Mappings bedeutet, nicht ein Umschreiben der Logik.

#Echtzeit-Synchronisation von Beständen und Preisen

Das Herzstück der Integration ist das zyklische Abfragen der API nach zwei Dingen: dem Lagerbestand jedes Index und dem Netto-Verkaufspreis beim Distributor. Positionen, die der Lieferant nicht vorrätig hat, werden automatisch als nicht verfügbar markiert oder ausgeblendet, was das Hauptziel unmittelbar erfüllt: Ein Kunde kann kein Teil kaufen, das nicht erfüllt werden kann. Eine Preisänderung in der Preisliste des Großhändlers wird beim nächsten Zyklus in den Shop übernommen, ohne Zutun des Personals.

#Margenlogik

Die Preise des Großhändlers sind Kosten, nicht der Verkaufspreis. Über der Datenabruf-Schicht arbeitet die Margenlogik: Das System schlägt automatisch eine definierte Shop-Marge auf den vom Distributor bezogenen Netto-Verkaufspreis auf, und erst das Ergebnis gelangt als Produktpreis in WooCommerce. So bleibt die angestrebte Rentabilität des Shops erhalten, selbst wenn sich die Preislisten des Lieferanten bewegen, und der Betreiber steuert die Marge über Regeln statt über das manuelle Bearbeiten von Preisen.

#Ergebnis

Der Katalog pflegt sich selbst: Neue Artikel des Großhändlers erscheinen im Shop, ausgelaufene fallen heraus, Bestände und Preise folgen dem Lieferanten, und die Marge sichert die Rentabilität. Das Personal hat aufgehört, das Sortiment von Hand zu aktualisieren, und muss sich nicht mehr mit Bestellungen für Teile herumschlagen, die nie verfügbar waren. Es ist derselbe Mechanismus aus Datenaustausch, JSON/XML-Parsing und Bestands-Mapping, der hinter WooCommerce-Integrationen mit Systemen der ERP-Klasse steht - er unterscheidet sich in der Datenquelle, nicht im Prinzip.