Bedienungsanleitung Modul-Funktionen

API-Endpunkte für die Frontend-Bridge-Integration

Die folgenden Endpunkte ermöglichen die Integration der Frontend-Bridge in Adobe Commerce. Sie decken grundlegende Funktionen wie das Abrufen von Kundentokens, das Erneuern von Tokens und die Initialisierung von Gast-Warenkörben ab. Diese Endpunkte sind essenziell für die Implementierung von Funktionen, die sowohl für eingeloggte Kunden als auch für Gastbenutzer eine reibungslose Interaktion mit dem Shop ermöglichen.

Kundentoken und Warenkorb-ID abrufen

Dieser Endpunkt liefert die erforderlichen Informationen zur Authentifizierung und zur Identifizierung des Warenkorbs eines Kunden.

Request:

GET $ADOBE_COMMERCE_BASE_URL/customer/section/load?sections=frontend-bridge

Response:

{
    "frontend-bridge":{
        "token": { //valid customer token if logged in
            "token": "eyJraWQiOiIxIiwiYWxnIjoiSFMyNTYifQ.eyJ1aWQiOjIwMSwidXR5cGlkIjozLCJpYXQiOjE3NTAwNzI5MTEsImV4cCI6MTc1MDA3NjUxMX0.2y1tT6np1lM7q6r_L7XaKEFPlFngouw3D3Iy6kF0YR8",
            "issued_at": 1750072911,
            "expires": 1750076511
        },
        "cart_id": "eFhx9hhSK6hCN82dOglVdvH6ISyjRJjs", //valid cart if initialized and available
        "data_id": 1750072912//info from CustomerDataApi
    }
}

Token erneuern

Zum sicheren Fortführen einer bestehenden Sitzung kann der Token über diesen Endpunkt erneuert werden. Dies ist essenziell, um eine reibungslose Benutzererfahrung zu gewährleisten.

Request:

POST $ADOBE_COMMERCE_BASE_URL/frontend_bridge/token/renew

Response:

true //false if something have gone wrong

Gast-Warenkorb initialisieren

Dieser Endpunkt erstellt einen Warenkorb für nicht eingeloggte Benutzer (Gäste) und ermöglicht so das Hinzufügen von Produkten auch ohne Anmeldung. Request:

POST $ADOBE_COMMERCE_BASE_URL/frontend_bridge/cart/initialize

Response:

true //false if something have gone wrong

Referenzimplementierung

Das Frontend-Bridge-Modul enthält eine Javascript-Referenzimplementierung, welche genutzt bzw. abgeändert werden kann, um Commerce-Frontends mit einer Magento Instanz zu verbinden.

Diese JavaScript- und HTML-Dateien implementieren eine Frontend-Brücke, die es einer externen Anwendung ermöglicht, mit einem Magento-Backend über GraphQL zu kommunizieren. Die Bibliothek kümmert sich um Authentifizierung, Sitzungsmanagement, das Senden von GraphQL-Anfragen und das Caching von Antworten zur Leistungssteigerung. Eine Demo-HTML-Seite und eine Beispiel-JavaScript-Datei veranschaulichen die praktische Anwendung dieser API-Funktionen.

ref demo

Einschränkungen SameSite=None-Cookies

Privater/Inkognito-Modus

SameSite=None-Cookies funktionieren nicht zuverlässig in privaten oder Inkognito-Browser-Tabs. Es wird empfohlen, ein Skript wie detectIncognito einzusetzen, um solche Sitzungen zu erkennen und Nutzer (z. B. Tester oder Produktverantwortliche) darauf hinzuweisen, dass der private Modus zu Problemen führen kann.

Zukünftige Änderungen im Browserverhalten

Änderungen an Browserfunktionen, wie z. B. partitionierte Cookies (CHIPS), Related Website Sets oder die Storage Access API, könnten die Funktionsweise von SameSite=None-Cookies beeinflussen. Es ist möglich, dass zukünftige Anpassungen erforderlich sind, um die Kompatibilität sicherzustellen.

Bekannte Issues

Wenn der Fehler

{"0":"Invalid Samesite attribute.","1":"#1 Magento\\Framework\\Session\\Config\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#2 Magento\\Framework\\Session\\Config\\Interceptor->{closure:Magento\\Framework\\Interception\\Interceptor::___callPlugins():104}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153] ...}

auftritt, liegt häufig eine inkonsistente Konfiguration der Basis‑URLs vor. Insbesondere dürfen web/secure/base_url und web/unsecure/base_url nicht unterschiedliche Protokolle verwenden (kein Mix aus http:// und https://).

Ursache

Magento markiert Session‑Cookies nur dann als Secure, wenn die Anwendung eine konsistente HTTPS‑Konfiguration erkennt. Sind web/secure/base_url und web/unsecure/base_url unterschiedlich (z. B. https://… vs. http://…), kann dies dazu führen, dass SameSite=None als ungültig gewertet wird und der Fehler Invalid Samesite attribute. geworfen wird.

Prüfschritte im Admin

  1. Im Admin zu Stores → Configuration → General → Web wechseln.

    • Unter Base URLs (Unsecure) den Wert von web/unsecure/base_url prüfen.

    • Unter Base URLs (Secure) den Wert von web/secure/base_url prüfen.

    • Sicherstellen, dass beide Werte identisch sind und in der Regel auf https://…/ zeigen.

  2. Optional: web/secure/use_in_frontend und web/secure/use_in_adminhtml auf 1 setzen, damit das Frontend und das Admin HTTPS verwenden.

  3. Nach der Anpassung Cache leeren: bin/magento cache:clean config full_page.

Damit wird verhindert, dass SameSite=None ohne Secure‑Flag verwendet wird und der oben genannte Fehler erneut auftritt.