SocialHub.AI
Ressourcen · Entwicklerzentrum

POS-, OMS- und ERP-Integration

Verbinden Sie Ihre bestehenden Systeme – Kassensysteme, Auftragsverwaltung und ERP – mit SocialHub Loyalty. Konfigurieren Sie einen verwalteten Connector für SAP, Dynamics 365, Manhattan Active Omni, IBM Sterling oder Salesforce in der App – oder integrieren Sie ein beliebiges anderes System über denselben verwalteten v2 REST API, der mit einem Mandantenschlüssel authentifiziert, pro Endpunkt begrenzt und bei jedem Aufruf protokolliert wird.

Ein API, drei Systemtypen

Jede der folgenden Integrationen ist die v2 REST API über HTTPS mit einem Authorization: Bearer fl_live_…-Mandantenschlüssel. Verwenden Sie einen schreibgeschützten Schlüssel für den Abgleich und einen schreibgeschützten Schlüssel nur dort, wo Sie Punkte vergeben oder Gutscheine einlösen. Für E-Commerce-Plattformen (Shopify, Amazon, TikTok Shop) werden die nativen Kanalkonnektoren bevorzugt – diese Anleitung richtet sich an Systeme ohne einen solchen Konnektor.

Verwaltete Konnektoren

Für fünf Unternehmenssysteme ist keine manuelle Integration erforderlich. Konfigurieren Sie einfach eine Verbindung unter Daten & Integrationen (Endpunkt + verschlüsselte Anmeldeinformationen), verifizieren Sie diese und führen Sie einen Testlauf durch. Jeder Konnektor normalisiert die Bestellungen, Kunden und Produkte des Anbieters und leitet sie über denselben unten beschriebenen API weiter – mit denselben Gültigkeitsbereichen, derselben Idempotenz und demselben verwalteten Datenfluss. Jeder Konnektor ist mit dem Validierungsstand gekennzeichnet.

Salesforce – CRM/OMS

Mit Testdaten validiert

Bestellung / Retoure / Konto-Kontakt / Produkt 2 via REST + SOQL; Client-Anmeldeinformationen OAuth.

SAP S/4HANA – ERP

Mit Testdaten validiert

Verkaufsauftrag / Geschäftspartner / Produktstammdaten über die OData A2X-Dienste; BTP OAuth.

Dynamics 365 – ERP/CRM

Mit Testdaten validiert

Dataverse (CE) validiert; Finanzen und Betrieb eingerüstet. Entra-ID OAuth.

Manhattan Active Omni – OMS

Validierung durch Designpartner

Bestellung/Rückgabe/Kunde; Zuordnungen gemäß dem Schnittstellen-Mapping-Dokument Ihres Mandanten.

IBM Sterling – OMS

Validierung durch Designpartner

getOrderList / kehrt über den Umschlag REST API zurück; Statuscodes, die für Ihre Pipeline konfiguriert sind.

Mit Testdaten validiert: Die Zuordnungen wurden anhand der veröffentlichten API des Anbieters erstellt und geprüft; bei Ihrer ersten Bereitstellung werden sie in der realen Umgebung validiert und bestätigt. In Validierung mit einem Entwicklungspartner: Die Zuordnungen werden beim Onboarding anhand des Integrationsdokuments Ihres Mandanten fertiggestellt. Hier nicht aufgeführte Systeme lassen sich direkt über die unten beschriebene API integrieren.

Kundendaten- und Marketinganreicherung

Eine von der Auftragserfassung getrennte Funktion: Verbinden Sie die Plattform, auf der Ihre Kundenprofile bereits gespeichert sind, und Flash reichert jede E-Mail zum Zeitpunkt des Versands mit Merkmalen pro Empfänger an (Name, Lebenszyklusphase, benutzerdefinierte Attribute). Es handelt sich um eine schreibgeschützte Suche per E-Mail – es werden niemals Mitglieder erstellt oder personenbezogene Daten offengelegt. Konfigurieren Sie eine Verbindung in Daten & Integrationen, und jede Verbindung wird in dem Moment, in dem Sie sie speichern, anhand Ihrer Live-Anmeldeinformationen überprüft.

CDP

Salesforce Daten-Cloud · Segment · Adobe Erlebnisplattform

CRM

HubSpot · Microsoft Dynamics 365

Marketing

Braze · Klaviyo · Iterierbar

Die Authentifizierung erfolgt anbieterspezifisch – entweder über einen API-Schlüssel, einen privaten Schlüssel oder OAuth2-Client-Anmeldeinformationen (bei OAuth ruft Flash bei jedem Durchlauf ein neues Zugriffstoken ab, sodass kein dauerhaftes Token gespeichert wird). Die Anmeldeinformationen werden im Ruhezustand verschlüsselt und niemals wieder angezeigt.

POS

POS-Integration

Das Kassensystem wandelt einen Kauf mit einem einzigen Aufruf in Treuepunkte um: Der Verkauf wird als Bestellung erfasst und SocialHub löst das Mitgliedskonto (über Ihre Daten) auf. externalId, E-Mail oder memberId) und vergibt Punkte gemäß den eigenen Verdienstregeln des Programms. Suchen oder erstellen Sie das Mitglied bei Bedarf anhand Ihres eigenen Schlüssels.

Prämie bei einem Verkauf (nach der Bestellung)

// One call: post the sale as an order. SocialHub resolves the member, applies the
// program's earn rules (tier multiplier + daily cap) and records the order — you
// don't compute points. The member is resolved by memberId > externalId > email.
POST https://flash.socialhub.ai/api/v2/orders
Authorization: Bearer fl_live_…
Idempotency-Key: pos-90871            // safe retries — one sale never awards twice
Content-Type: application/json
{
  "externalOrderId": "90871",
  "customer": { "externalId": "POS-CUST-5512" },   // or { "email": "…" } / { "memberId": "…" }
  "totalAmount": 120.00,
  "storeId": "st_…"
}
// → 200  { "data": { "awarded": 6, "balance": 1820, "memberId": "mem_…" } }
// Not a member yet → { "awarded": 0, "reason": "not-a-member" } (never auto-created).

Suchen oder erstellen Sie das Mitglied

// Look up a member by your own key or email (exact match), or create one:
GET https://flash.socialhub.ai/api/v2/members?externalId=POS-CUST-5512     // or ?email=ada@acme.com
// → 200  { "data": [ { "id": "mem_…", "externalId": "POS-CUST-5512", … } ], "total": 1 }

POST https://flash.socialhub.ai/api/v2/members      // create/upsert (marketing consent stays OFF)
{ "email": "ada@acme.com", "fullName": "Ada Lovelace", "externalId": "POS-CUST-5512" }
// → 201 created  /  200 existing  (idempotent on externalId)

Lösen Sie einen Coupon an der Kasse ein.

// Cashier scans the member's coupon code → mark it redeemed at the register.
POST https://flash.socialhub.ai/api/v2/coupons/{couponId}/redeem
Authorization: Bearer fl_live_…
// → 200  redeemed
// → 404  coupon not found / already redeemed   (treat as "do not honor")

Den Kontostand, die Stufe und die Coupons eines Mitglieds mit GET /members/{id}/points, /tier und /coupons abrufen und an der Kasse anzeigen.

OMS

Integration der Auftragsverwaltung

Bei E-Commerce-Plattformen mit einem nativen Connector (Shopify, Amazon, TikTok Shop) schalten Sie ihn ein und fertig. Veröffentlichen Sie bei jedem anderen Auftragsverwaltungssystem Ihre Bestellereignisse unter „Bestellungen“ API – nehmen Sie automatische Prämien gemäß den Programmregeln auf und erstatten Sie Claw-Punkte anteilig zurück. Ihr OMS leitet die Anrufe (kein eingehender Webhook erforderlich).

Bestellungen verdienen; Rückerstattungen zurückfordern

// On Shopify / Amazon / TikTok Shop? Use the NATIVE channel connectors (Settings →
// Channels). For any OTHER OMS, your system calls these on its own order events.
//
// order paid / fulfilled  →  ingest (auto-awards by the program's earn rules):
POST https://flash.socialhub.ai/api/v2/orders
Idempotency-Key: SO-44821
{ "externalOrderId": "SO-44821", "customer": { "email": "ada@acme.com" }, "totalAmount": 240.00 }
// → 200 { "data": { "awarded": 12, "memberId": "mem_…" } }
// Same id + a DIFFERENT amount → 409 ORDER_CONFLICT (orders are immutable).

// order returned / refunded  →  proportional points claw-back, idempotent per refund:
POST https://flash.socialhub.ai/api/v2/orders/SO-44821/refund
{ "refundId": "re_1", "reason": "returned 1 item", "amount": 80.00 }   // omit amount = full
// → 200 { "data": { "clawedBack": 4, "balance": 1816 } }

// Backfill / bulk: POST /orders/batch (≤100, 207 Multi-Status, per-item results).

Noch kein Mitglied? Anzahl der Ingest-Ergebnisse: 0 / reason:not-a-member (wird nie automatisch erstellt). Registrieren Sie sie mit POST. /members zuerst, wenn Sie möchten, dass die Bestellung Einnahmen generiert.

ERP

ERP- und Stammdatenintegration

Halten Sie die Loyalität in beide Richtungen mit Ihrem Aufzeichnungssystem in Einklang: Pushen Sie Ihren Shop- und Mitgliederstamm (idempotente Aktualisierung durch Ihre externalId) und führen Sie dann einen inkrementellen Abgleich mit ?updatedSince= durch, sodass bei jeder Synchronisierung nur das abgerufen wird, was sich geändert hat.

Drücken Sie den Ladenmeister

// Push your store master to SocialHub (upsert by your ERP store code):
POST https://flash.socialhub.ai/api/v2/stores
{ "name": "Downtown Flagship", "externalId": "ERP-STORE-018", "city": "New York" }
// → 201 created  /  200 updated  (idempotent on externalId)
//   PUT /api/v2/stores/{id} updates a known store. GET to reconcile / pull ids.

Mitglieder pushen und schrittweise abgleichen

// Push the member master (idempotent upsert by your externalId; consent OFF unless
// you explicitly opt in). Nightly full re-push is safe — existing members update.
POST https://flash.socialhub.ai/api/v2/members/batch     // ≤100 per call, 207 Multi-Status
{ "members": [ { "email": "ada@acme.com", "fullName": "Ada Lovelace", "externalId": "ERP-7741" } ] }

// Incremental reconcile — only what changed since your last sync:
GET https://flash.socialhub.ai/api/v2/members?updatedSince=2026-06-26T00:00:00Z&limit=200
GET https://flash.socialhub.ai/api/v2/orders?updatedSince=2026-06-26T00:00:00Z       // orders too
// For governed business metrics (GMV, redemption, active members) into BI, query the
// semantic layer over MCP (metrics:read) instead of aggregating raw rows yourself.

Produktkatalog (PIM) bereitstellen

// Push your product catalog (idempotent upsert by your own external_id). One
// endpoint takes brands, categories, products, variants and inventory together.
POST https://flash.socialhub.ai/api/v2/catalog/import
{ "source": "erp",
  "brands":     [ { "externalId": "B-AURELIA", "name": "Aurelia" } ],
  "categories": [ { "externalId": "C-RINGS", "name": "Rings" } ],
  "products":   [ { "externalId": "P-9001", "title": "Solitaire Ring",
                    "brandExternalId": "B-AURELIA", "categoryExternalId": "C-RINGS",
                    "descriptionHtml": "<p>18k…</p>",
                    "content": [ { "externalId": "P-9001-spec", "contentType": "spec",
                                   "body": "1.0ct, 18k white gold, GIA" } ] } ],
  "variants":   [ { "externalId": "V-9001-7", "productExternalId": "P-9001",
                    "sku": "AUR-RING-7", "price": 4200 } ],
  "inventory":  [ { "variantSku": "AUR-RING-7", "locationRef": "WH-1", "available": 12 } ] }
// → 200 with per-entity {inserted,updated} + errors[] (a bad row never aborts the batch).
// On Shopify? Products map in automatically — images + rich descriptions included.
// Read back: GET /api/v2/products · /products/{id} · /categories · /brands

Batch ≤100/Aufruf (207 Ergebnisse mit mehreren Status pro Artikel); beachten Sie das Limit pro Tastendruck und führen Sie vollständige Resynchronisierungen außerhalb der Spitzenzeiten durch. Der Katalogimport erfolgt extern – SocialHub schreibt niemals Produkte zurück in Ihr ERP-System.

Authentifizierung, Geltungsbereich & Sicherheit

Mandantenbezogene Schlüssel

Jeder Anruf enthält einen fl_live_-Schlüssel, der einem Team zugeordnet ist. Schlüssel sind mandantenübergreifend; erstellen Sie separate Schlüssel pro Integration, damit Sie einen Schlüssel wechseln können, ohne die anderen zu beeinträchtigen.

Voreinstellungen für Lesen und Schreiben

Abstimmungsprozesse verwenden einen schreibgeschützten Schlüssel. Gewähren Sie Schreibrechte nur dem POS/OMS-Pfad, der Punkte vergibt oder Gutscheine einlöst – minimale Berechtigungen pro System.

Idempotenz-Schlüssel

Sende beim Schreiben einen Idempotenzschlüssel-Header (Aufträge enthalten ihren eigenen) externalOrderId (ebenso). Ein erneuter Aufruf liefert das ursprüngliche Ergebnis; derselbe Schlüssel mit einer anderen Nutzlast wird abgelehnt – ein Verkauf wird niemals zweimal vergeben.

Standardmäßig geprüft

Jeder API-Aufruf wird protokolliert und ist unter API Schlüssel → Letzte Aktivitäten sichtbar. So sind die Schreibvorgänge einer Integration immer einem Schlüssel zuzuordnen.

Vollständige Endpunktreferenz: REST API · Schnellstart · MCP (Metriken in BI)

Ein Backend-System integrieren?

Sprechen Sie mit einem Techniker über Ihr Kassensystem (POS/OMS/ERP), die Kundenidentifizierung an der Kasse, die Retourenabwicklung oder Abstimmungsprozesse.

Sprechen Sie mit der Technik