Shopware Session Handling

Hallo zusammen,

uns ist folgendes Problem bezüglich der Session in Shopware aufgefallen.

Und zwar ist es wohl zurzeit so, dass die Session eines Kundens nach einiger Zeit abläuft und abgemeldet wird, was so auch an sich in Ordnung ist.
Das Problem ist jedoch, dass es nicht richtig ersichtlich ist, dass der Kunde abgemeldet ist. Klickt er auf das User-Symbol oben wird ihm weiterhin seine Profiloptionen angezeigt, sowie der Link zum abmelden.

Da wir einen Shop haben, in dem Preise nur angezeigt werden nach erfolgreicher Anmeldung wird das Problem nur noch größer. Der User denkt er wäre angemeldet sieht jedoch keine Preise.
Zudem werden einfach trotz Abmeldung durch Session-Timeout Preise für z.B. Artikleslider aus dem Cache geladen.

Hat hier jemand Tipps für das Session-Handling in Shopware? Warum wird dem User vermittelt dass er noch angemeldet ist, obwohl er durch den Session Timeout abgemeldet wurde?

Macht für mich alles keinen Sinn und ist für den Kunden einfach absolut verwirrend.

Vielen Dank
MadeProel

Hi @MadeProel‍ ,

das liegt am Shopware-Login-Token. Damit wird der Name angezeigt, auch wenn man nicht eingeloggt ist. Damit kann man zum Beispiel personalisierte Einkaufswelten ohne Login anzeigen.

Mehr dazu und wie man es abschalten kann, findest du hier: Shopware 5 - Einstellungen - Shopware Login Token

 

1 „Gefällt mir“

Also wenn ich nicht komplett bling bin hast du was interessantes hervorgebracht.

Die normale Session für jeden Besucher(Session) und die “Session” für den Login(als Extra-Session und als Cookie expire=Besucher-Session). Das beisst sich und der Besucher denkt er ist eingeloggt. Habe das verhalten bei mir auch schon gesehen.

Das könnte man auf zwei verschieden Arten umgehen. Zum einen ein ajax laufen lassen auf einen “checker” der guckt ob der Kunde eingeloggt ist und welches dem Kunden die Begrüßung entfernt wenn die Login-Session abgelaufen ist. Oder die Cookie-Session auf die Zeit einstellen welcher der Login-Session entspricht.

 

1 „Gefällt mir“

Danke für die schnellen Antworten. Grundsätzlich ist das Problem, dass wenn sich jemand einloggt und das Fenster eine halbe Stunde lang offen lässt ohne was zu machen, wird dieser durch den Session Timeout ausgeloggt. Trotzdem sieht es für den Kunden zunächst so aus, als ob er immernoch eingeloggt ist.

Ich werde den Shopware-Login-Token testweise deaktivieren und weiter testen.

Also den Shopware-Login-Token zu deaktivieren ist keine gute Idee. Teilweise funktionieren Dinge nicht mehr die vorher funktioniert haben und für den Kunden ist die Verwirrung weiterhin groß, da dieser sich anmeldet und anschließend statt „Hi, xxx“ immer noch „Anmelden oder registrieren“ sieht, obwohl die Anmeldung bereits erfolgreich durchgeführt wurde.

Grundsätzlich wäre es auch kein Problem, dass der Kunde automatisch abgemeldet wird. Das große Problem in unserem Shop ist jedoch, dass die Preise erst nach Login angezeigt werden. Hierdurch kommt es zu Anzeigefehlern. Hier mal ein paar Beispiele:

  1. User meldet sich an und sieht Preise -> Session läuft ab -> User klickt auf Artikel und sieht „Bitte erst einloggen“ -> User loggt sich ein -> User sieht bei diesem einen Artikel weiterhin „Bitte erst einloggen“ (vermutlich weil gecached ist?)

  2. User meldet sich an und sieht Preise -> Session läuft ab -> Preise sind teilweise weiterhin vorhanden (z.B. in Artikel-Slider etc.)

  3. User sieht keine Preise in Artikelübersicht -> User meldet sich an -> User sieht weiterhin keine Priese in Artikelübersicht, sonder erst wenn dieser in Detail aufgrufen wird.

Ich könnte noch viele mehr solcher Beispiele nennen. Das Problem ist nicht einfach zu beschreiben. Auf jeden Fall scheint es große Probleme mit der Session, dem Cache und dem Plugin, dass dafür sorgt, dass die Preise nach Login angezeigt werden, zu geben. Hat jemand eventuell noch Tipps? PHP-Einstellungen die eventuell was bringen?