Spryker

Spryker – Ausgang in Spryker Cloud Commerce / Commerce OS. Benötigtes Addon: connector_spryker.

Überblick

Spryker ist eine Enterprise-Commerce-Plattform mit der Glue-REST-API für externe Integrationen. Mit dieser Integration legt Orderport Bestellungen aus anderen Quellen (z. B. cXML, EDIFACT, Shopware) direkt als Spryker-Order über die Glue API an.

Die Integration unterstützt nur den Ausgang – Spryker sendet derzeit keine Bestellungen zurück an Orderport.

Kompatibilität

Unterstützte Versionen

Bereich Version
Spryker Cloud Commerce / Commerce OS mit aktueller Glue-API
Endpoint POST /checkout
Content-Type application/vnd.api+json (JSON:API)
Auth OAuth 2.0 Password Grant

Bekannte Einschränkungen

  • Kein Rückkanal. Bestell-Updates, Fulfillment- oder Zahlstatus-Änderungen werden nicht an Orderport zurückgemeldet.
  • OAuth Password Grant. Spryker bietet für die Glue-API aktuell nur den password-Grant-Type an; dieser ist eng mit einem Benutzerkonto verknüpft. Client-Credentials werden nicht unterstützt.
  • Kein Katalog-Sync. Produkt-Verfügbarkeit wird nicht vorab geprüft – nicht existierende Produkte führen beim Checkout zu Fehlern.
  • Mehrere Shops/Stores werden über eine eigene Pipeline je Store abgebildet.
  • Gutscheine, Rabatte, Mengenstaffeln werden aktuell nicht übersetzt.

Authentifizierung

  • Auth-Typ im Transport: oauth_password
  • Benötigte Felder: username, password, token_url (typisch {Glue-URL}/token)
  • Orderport holt den Access Token bei jedem Job und hält ihn im Cache, bis er abläuft.

Einrichten in Orderport

Pipeline anlegen

  1. Pipelines → Neue Pipeline → Simple Wizard, Ziel: Spryker
  2. Quelle wählen
  3. Spryker-Zugangsdaten eingeben: Glue-URL, Benutzername, Passwort (gespeichert verschlüsselt)
  4. Verbindung testen – Orderport holt Payment- und Shipment-Methoden aus der Glue API und lädt sie in Dropdowns
  5. Zahlungsart, Versandart, Store, Währung, Anrede auswählen
  6. Auto-Mapping für das JSON:API-Schema übernehmen

Credential

Spryker-Seite: Orderport authentifiziert sich am Spryker Glue API – keine Orderport-Credential nötig. Der Transport-Config enthält die verschlüsselten Zugangsdaten.

Einrichten in Spryker

API-Benutzer anlegen

  1. Backoffice → Users → Add User mit Rolle, die POST /checkout und Lookup-Endpoints erlaubt
  2. Spryker Glue API unter Ihrer URL aktiv (Cloud-Umgebung: automatisch)
  3. CORS / Whitelist sicherstellen – Orderports Outbound-IPs werden vom Spryker-Cloud-Team auf Wunsch freigeschaltet

Technische Details

Ausgangs-Payload (Auszug JSON:API)

{
  "data": {
    "type": "checkout",
    "attributes": {
      "customer": {
        "email": "bestellung@muster.de",
        "firstName": "Max",
        "lastName": "Mustermann",
        "salutation": "Mr"
      },
      "billingAddress": { "...": "..." },
      "shippingAddress": { "...": "..." },
      "payments": [{ "paymentMethodName": "Rechnung", "paymentProviderName": "DummyPayment" }],
      "shipment": { "idShipmentMethod": 1 },
      "items": [
        { "sku": "WIDGET-001", "quantity": 10 }
      ]
    }
  }
}

Verfügbare Zielfelder (Auszug)

Pfad Bedeutung
customer.email / firstName / lastName / salutation Kundendaten
billingAddress.* / shippingAddress.* Adressen
payments[].paymentMethodName Name der Zahlungsart (aus Spryker-Dropdown)
shipment.idShipmentMethod ID der Versandart (aus Spryker-Dropdown)
items[].sku / quantity Positionen

Transport-Konfiguration

{
  "type": "rest_api",
  "adapter_type": "spryker",
  "url": "https://glue.spryker.example.com/checkout",
  "method": "POST",
  "content_type": "application/vnd.api+json",
  "auth": {
    "type": "oauth_password",
    "token_url": "https://glue.spryker.example.com/token",
    "username": "api-user@shop.example",
    "password_encrypted": "…"
  }
}

Endpoint

Kein Inbound – Spryker ist reiner Ausgang. Zielsystem: {Glue-URL}/checkout.

Fehlerbehebung

Symptom Ursache Lösung
401 beim Token-Request Benutzername/Passwort falsch oder Benutzer deaktiviert Zugangsdaten in Spryker prüfen, Password-Reset initiieren
422 „SKU not found" Produkt existiert nicht im Ziel-Store SKU-Mapping prüfen; Katalog in Spryker abgleichen
Shipment-Method leer idShipmentMethod zeigt auf ID, die im gewählten Store nicht existiert Im Wizard die Store-Dropdown neu wählen und Versandart erneut auswählen
Orderport bekommt wiederholt 401 Spryker-Token wurde invalidiert (Session-Ablauf) Transport neu testen; Orderport holt sich einen frischen Token

Nächste Schritte