Zum Hauptinhalt springen

Developer Guide: Verbindung zur Klar RESTful API

Ueberblick und technische Richtlinien zur Integration externer Systeme mit der Klar RESTful API

Verfasst von Frank Birzle

Überblick

Die Klar API erlaubt dir, Bestelldaten aus jeder Quelle (z. B. eigenen E-Commerce-Engines, ERPs oder Legacy-Systemen) in das Klar-Ökosystem zu pushen. Anders als synchrone APIs nutzt Klar eine „Landing Zone"-Architektur, bei der Daten im Rohformat aufgenommen und periodisch in deine Dashboards verarbeitet werden.

Wichtig: Diese API ist zum SENDEN von Daten AN Klar gedacht, nicht zum Abrufen von Daten VON Klar.


1. Erste Schritte: Das 3-Schritt-Setup

Um mit dem Senden von Daten zu beginnen, folge diesen Schritten:

  1. Account-Zugang: Stell sicher, dass du einen aktiven Klar-Account hast.

  2. Credentials erzeugen: Erstelle eine Klar API Data Source in der App. Das erzeugt ein JWT (JSON Web Token), das für die Authentifizierung nötig ist.

  3. Erster Push: Sende deine Bestelldaten per POST-Request an die API. Du kannst pro Request bis zu 1.000 Bestellungen in einem einzigen Array von JSON-Objekten senden.

Wichtige Ressourcen:


2. Datenverarbeitung verstehen

Es ist wichtig zu verstehen, dass das System, an das du Daten sendest, nicht dasselbe System ist, das die Dashboards anzeigt.

  • Die Landing Zone: Deine Bestellungen werden unmittelbar nach dem Empfang im Rohformat gespeichert.

  • Processing Pipeline: Daten werden im Klar-Frontend erst sichtbar, nachdem die Processing Pipeline gelaufen ist. Das passiert automatisch jede Stunde.

  • Manuelle Trigger: Du kannst ein Update erzwingen, indem du in deinen Store Settings auf „Update Store Data" klickst. Ein Ladeindikator zeigt den Status.

  • Debugging: Wenn Daten falsch aussehen, nutze den Order Debugger in der Detailansicht der Data Source, um das rohe JSON zu inspizieren, das Klar empfangen hat.
    ​


3. Kern-API-Logik & Endpoints

Primärer Endpoint

Der wichtigste Endpoint ist POST /orders/json. Das ist der „Master"-Endpoint für alle Bestelldaten.

Subset-Endpoints

Klar bietet spezifische Endpoints für Refunds, COGS (Cost of Goods Sold), Logistic Costs und Transaction Costs. Diese werden genutzt, wenn deine Daten über verschiedene Systeme verteilt sind.

  • Beispiel: Wenn deine Bestellungen aus Shopware kommen, deine Logistikkosten aber in einem ERP verwaltet werden, nutzt du den Standard-Shopware-Connector für Bestellungen und den Logistics-API-Endpoint für die Versandkosten.

Idempotenz (Daten aktualisieren)

Die API ist idempotent. Um eine bestehende Bestellung zu aktualisieren (z. B. einen Status von „pending" zu „paid" ändern), sende das Bestellobjekt einfach erneut mit derselben ID.

  • Hinweis: Es gibt keine spezifischen PATCH-, PUT- oder DELETE-Endpoints. Dieselbe ID zu senden ersetzt den vorherigen Datensatz in der Landing Zone.


4. Technische Richtlinien & Preis-Logik

Versionierung

Klar-API-URLs haben einen Versions-String als Präfix.

  • 12.2022: Die ältere stabile Version.

  • 07.2025: Die aktuelle Version, die Unterstützung für Bundle-Produkte eingeführt hat.

Preis- und Steuerberechnungen

Das ist der häufigste Bereich für Integrationsfehler. Bitte befolge diese Regeln strikt:

  • Werte pro Einheit: Sowohl Discount- als auch Tax-Informationen für Line Items müssen pro einzelner Menge gesendet werden.

  • Klars interne Berechnung:

    • Gross Revenue = Quantity * Product GMV

    • Net Value = (Quantity * Product GMV) - (Quantity * Taxes) - (Quantity * Discounts)

  • Prüfsummen: Die Felder totalAmountBefore und totalAmountAfterTaxes werden nur als interne Prüfsummen genutzt. Alle finalen Metriken werden aus den einzelnen Werten auf Item-Ebene berechnet.

Bundle-Produkte (v07.2025+)

Beim Senden von Bundles wird das Parent-Objekt des Bundle-Line-Items für Finanzberechnungen weitgehend ignoriert. Werte werden „bottom-up" aus den einzelnen Bundle-Bestandteilen berechnet.


5. Financial Status & Customizations

Klar mappt den Bestellstatus deines Systems auf vier interne Status: paid, cancelled, refunded und partially refunded.

  • Standard-Mapping: Wir mappen gängige Strings wie open, pending, paid, cancelled usw. automatisch.

  • Custom-Mapping: Wenn dein System eigene Status-Strings nutzt, kannst du in der Klar-UI eine Data Source Customization anwenden, um deine Custom-Werte auf unsere internen Status zu mappen.


6. Attribution & Pixel-Matching

Wenn du den Klar Pixel fürs Tracking nutzt, muss die order_id, die über die Pixel-Events gesendet wird, mit der über die API gesendeten ID übereinstimmen.

Klar versucht, Daten zu matchen anhand von:

  1. ID

  2. Order Number

  3. Order Name

Wenn diese nicht übereinstimmen, musst du das Feld optionalIdentifiers.googleAnalyticsTransactionID nutzen, um sicherzustellen, dass die Attributionsdaten korrekt mit der Bestellung verknüpft werden.


7. Häufige Fallstricke, die du vermeiden solltest

Fallstrick

Auswirkung

Lösung

Total- vs. Unit-Pricing

Finanzdaten werden falsch multipliziert.

Sende Taxes und Discounts immer pro Einheit, nicht die Summe für das Line Item.

ID-Mismatch

Marketing-Attribution bricht.

Stell sicher, dass die API-order_id mit der Pixel-order_id übereinstimmt, oder nutze googleAnalyticsTransactionID.

Bundle-Parent-Daten

Umsatz könnte doppelt gezählt oder verpasst werden.

Stell sicher, dass die Bundle-Bestandteile die korrekten Preis-/Steuerdaten enthalten.

Batch-Limits

Requests werden abgelehnt.

Überschreite nie 1.000 Objekte pro POST-Request.

Status-Mapping

Bestellungen erscheinen eventuell in der falschen Dashboard-Kategorie.

Nutze Data Source Customizations, um Nicht-Standard-Status-Strings zu mappen.


Brauchst du mehr Details? Erkunde unsere Object Schemas für eine vollständige Feld-für-Feld-Aufschlüsselung.

Hat dies deine Frage beantwortet?