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.
| Endpunkt | Methode | Beschreibung |
|---|---|---|
/agiqon/connector/session/login/{transmissionId} | GET, POST | Startet eine Connector-Session anhand einer Transmission-ID |
/agiqon/connector/session/logout | GET, POST | Beendet die aktive Session; optionaler Parameter transferred=1 löst den Warenkorb-Transfer aus |
/agiqon/connector/session/logout/redirect | GET, POST | Beendet die Session und leitet anschließend zur Startseite weiter |
/agiqon/connector/session/get | GET | Gibt 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:
transferred | Verhalten |
|---|---|
false (Standard) | Session wird beendet, Warenkorb wird gelöscht – kein Transfer |
true | ConnectorTransferEvent 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 |