Zum Hauptinhalt springen

Lebenszyklus

Eine ConnectorSession durchläuft drei Phasen:

Procurement-System

│ Punchout-Aufruf → Transmission wird erzeugt

┌─────────┐
│ LOGIN │ POST /agiqon/connector/session/login/{transmissionId}
└────┬────┘
│ Session wird erstellt & gespeichert

┌──────────────────┐
│ AKTIVER EINKAUF │ Käufer browst und füllt den Warenkorb
└────────┬─────────┘

├── Warenkorb übertragen → POST /agiqon/connector/session/logout?transferred=1

└── Session beenden → POST /agiqon/connector/session/logout
GET /agiqon/connector/session/logout/redirect

HTTP-Endpunkte

Alle Endpunkte sind im ConnectorSessionController definiert.

EndpunktMethodeBeschreibung
/agiqon/connector/session/login/{transmissionId}GET, POSTStartet eine Connector-Session anhand einer Transmission-ID
/agiqon/connector/session/logoutGET, POSTBeendet die aktive Session; optionaler Parameter transferred=1 löst den Warenkorb-Transfer aus
/agiqon/connector/session/logout/redirectGET, POSTBeendet die Session und leitet anschließend zur Startseite weiter
/agiqon/connector/session/getGETGibt den aktuellen Session-Status als JSON zurück

Login-Endpunkt

Beim Login wird die Transmission aus der Datenbank geladen und auf Gültigkeit geprüft. Schlägt einer der folgenden Checks fehl, wird ein HTTP-Fehler zurückgegeben:

  • Bereits eine aktive Session vorhanden → 409 Conflict
  • Transmission nicht gefunden → 404 Not Found
  • Transmission wurde abgebrochen (Cancelled) → 400 Bad Request
  • Transmission wurde bereits übertragen (Transferred) → 400 Bad Request
  • Transmission hat bereits eine Bestellung erzeugt (OrderCreated) → 400 Bad Request

Logout-Endpunkt

Der Parameter transferred bestimmt das Verhalten beim Logout:

transferredVerhalten
false (Standard)Session wird beendet, Warenkorb wird gelöscht – kein Transfer
trueConnectorTransferEvent wird ausgelöst, dann Session + Warenkorb gelöscht

Aktive Phase: Blockierte Routen

Während eine Connector-Session aktiv ist, werden bestimmte Shopware-Seiten geblockt (Redirect zum Warenkorb). Dies verhindert, dass der Käufer den normalen Checkout-Prozess durchläuft, statt den Warenkorb ans Procurement-System zurückzuschicken.

Blockierte Routen:

Route
frontend.checkout.confirm.page
frontend.checkout.finish.page
frontend.account.login.page
frontend.account.home.page
frontend.account.profile.page
frontend.account.order.page
frontend.account.order.detail.page
frontend.account.edit-order.page
frontend.customer-group-registration.page