Skip to main content

Lifecycle

A ConnectorSession passes through three phases:

Procurement System

│ Punchout call → Transmission is created

┌─────────┐
│ LOGIN │ POST /agiqon/connector/session/login/{transmissionId}
└────┬────┘
│ Session is created and stored

┌──────────────────┐
│ ACTIVE SHOPPING │ Buyer browses and fills the cart
└────────┬─────────┘

├── Transfer cart → POST /agiqon/connector/session/logout?transferred=1

└── End session → POST /agiqon/connector/session/logout
GET /agiqon/connector/session/logout/redirect

HTTP endpoints

All endpoints are defined in the ConnectorSessionController.

EndpointMethodDescription
/agiqon/connector/session/login/{transmissionId}GET, POSTStarts a connector session using a transmission ID
/agiqon/connector/session/logoutGET, POSTEnds the active session; optional parameter transferred=1 triggers the cart transfer
/agiqon/connector/session/logout/redirectGET, POSTEnds the session and redirects to the home page
/agiqon/connector/session/getGETReturns the current session status as JSON

Login endpoint

During login the transmission is loaded from the database and validated. If any of the following checks fail, an HTTP error is returned:

  • A session is already active → 409 Conflict
  • Transmission not found → 404 Not Found
  • Transmission was cancelled (Cancelled) → 400 Bad Request
  • Transmission was already transferred (Transferred) → 400 Bad Request
  • Transmission has already created an order (OrderCreated) → 400 Bad Request

Logout endpoint

The transferred parameter controls the behavior on logout:

transferredBehavior
false (default)Session is ended, cart is deleted — no transfer
trueConnectorTransferEvent is fired, then session and cart are deleted

Active phase: blocked routes

While a connector session is active, certain Shopware pages are blocked (redirect to cart). This prevents the buyer from going through the regular checkout process instead of sending the cart back to the procurement system.

Blocked routes:

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