Expertise · Online-Shops
Ein Shop, in dem der Katalog in Echtzeit gelesen wird, nicht einmal kopiert und dann vergessen.
Wir bauen Shops und darüber die Schicht, die meist fehlt: Der Agent, der dem Kunden antwortet, liest Preis und Bestand direkt aus dem Shop, im Moment der Frage, und weigert sich, einen nicht veröffentlichten Preis zu erfinden.
Bereits gebautDas lässt sich schon jetzt von außen prüfen, ohne uns zu fragen. Unser an einen Distributor ausgelieferter Katalog-Endpunkt antwortet mit 200 und sagt „154 Ergebnisse“; die öffentliche Oberfläche seines Shops, direkt abgefragt, gibt den Header `x-wp-total: 154` zurück. Dieselbe Zahl, zwei unabhängige Quellen, geprüft am 06.09.2026. Die zweite Implementierung ist in die Assistentenplattform integriert: der Dienst `storeCatalog.service.js` plus drei Werkzeuge, die der Agent aufrufen kann. Die Einschränkung, die gesagt werden muss: dieser zweite Pfad liegt auf einem Entwicklungszweig (`feat/store-catalog-global`, `481cfa0`) und ist noch nicht in den Hauptzweig zusammengeführt — also für die Kunden ausgeliefert, die wir angebunden haben, nicht standardmäßig für alle gestartet.
Die meisten „Katalogintegrationen“ sind in Wirklichkeit ein Export. Jemand lädt die Produkte einmal herunter, klebt sie in eine Datei, und von da an liest der Agent, der mit dem Kunden spricht, ein altes Foto des Shops. Es funktioniert tadellos bis zur ersten Preisänderung oder zum ersten ausverkauften Produkt — und dann liegt er überzeugend falsch, was schlimmer ist als Schweigen.
Wir lesen den Shop im Moment der Frage. Für WooCommerce-Shops gibt es eine öffentliche Schnittstelle — Store API — die Produkte, Preise und Verfügbarkeit ohne Schlüssel, ohne Konto, ohne installiertes Plugin zurückgibt. Die Adresse ist `/wp-json/wc/store/v1/products`, wir fragen sie mit 100 Produkten pro Seite und einer maximalen Wartezeit von 20 Sekunden an und erfahren aus dem Antwort-Header, wie viele Seiten es gibt, statt zu raten. Die erste Seite holen wir allein, den Rest parallel.
Der Teil, der eine korrekte Integration von einer trennt, die nur korrekt aussieht, ist die Übersetzung des Preises. Die Store API gibt nicht „129,90“ zurück; sie gibt eine Zeichenkette von Ziffern in kleinsten Einheiten und separat, wie viele Dezimalstellen die Währung hat, zurück. Wer aus Gewohnheit durch 100 teilt, liegt bei jeder Währung falsch, die nicht zwei Dezimalstellen hat. Noch wichtiger: Ein Preis von null bedeutet nicht kostenlos, sondern nicht veröffentlicht. Bei uns wird null zu „Preis auf Anfrage — wird von den Kollegen bestätigt“, und der Agent erhält die klare Anweisung, nichts zu erfinden. Das sieht man im öffentlichen Antwort des Katalog-Endpunkts, gerade jetzt.
Über den Katalog kommen die anderen Teile, jedes mit seinem tatsächlichen Zustand: Warenkorb und Senden der Bestellung an das Verwaltungssystem des Restaurants oder Geschäfts, Zahlung über die MAIB-Schnittstelle für Händler oder über Stripe, Wiederherstellung abgebrochener Warenkörbe, Verfolgung des Bestellstatus mit Synchronisierung alle 15 Minuten. Wo wir keine funktionale Integration haben — und es gibt solche Fälle — steht weiter unten genau, welche.