in unserem B2B-Shop (Subshop) möchten wir Preise nur anzeigen wenn der Kunde eingeloggt ist.
Das funktioniert auch soweit ganz gut. Das Problem ist nun folgendes:
Zum Beispiel wenn der Kunde sich angemeldet hat und automatisch abgemeldet wird sieht er teilweise weiterhin die Preise. Solche und ähnliche Probleme treten immer wieder auf.
Preise werden nicht angezeigt obwohl sie angezeigt werden müssen oder Preise werden angezeigt obwohl sie es eigentlich nicht sollten. Ich vermute dass es ein Cache Problem ist.
Wir haben bereits mehrere Plugins getestet, um die Preise für nicht eingeloggte Besucher auszublenden. Jedes mal mit dem gleichen Ergebnis.
Hat jemand eine Idee wie das Problem behoben werden könnte? Vorschläge für Cache Einstellungen die wir ausprobieren könnten?
Kannst du mir bitte erklären, welche Einstellungen duu gemacht hast für den B2B Shop und verwendest du externe Plugins dafür?
Suche auch die Option, Preise nur nach Anmeldung kundenspezifisch anzuzeigen.
Ohne Plugin ist es leider nicht möglich, daher nutzen wir ein externes Plugin. Such einfach mal nach “Ausblenden aller Preise” oder “Preise nach Login”.
Dann wirst du schon fündig.
Nur wie gesagt funktioniert es leider nicht wirklich.
Die beiden oberen haben wir bereits getestet. Bei beiden das selbe Problem mit dem Cache. Kannst sie gerne selbst mal testen und berichten.
Wie bereits erwähnt kommen die Plugins leider nicht mit dem automatischen Ablauf der Session klar.
Preise werden angezeigt obwohl keine aktive Anmeldung mehr vorhanden ist oder Preise werden nicht angezeigt obwohl sie es sollten.
Betreibt denn niemanden über Shopware einen B2B-Shop bei dem die Preise nur für eingeloggte Kunden angezeigt werden?
Das Problem mit dem Cache und den Cookies sollten doch viele Leute haben.
Kann man irgendwie die automatische Abmeldung bzw. das ablaufen der Session verhindern?
Hat jemand Tipps welche Controller / Tags nicht gecached werden sollten, damit das Problem behoben wird? Wie kann ich sehen welcher Controller/Tag für welche Informationen zuständig ist?
Das Problem dürfte eher weniger an der Session liegen, sondern am Cookie “x-cache-context-hash” - das steuert letztlich, welcher Inhalt abgerufen wird. SW müsste also einen Weg implementieren, dass dieses Cookie auch gelöscht wird, wenn die Session abgelaufen ist. Mit Cache und Cookie hat Shopware sich in den letzten Jahren so verrant, dass das in SW5 eigentlich nicht mehr zu reparieren ist.
Das Problem ist nicht so einfach zu lösen. Das Cookie müsste ja gelöscht - oder neu gesetzt - werden, ehe die Seite (neu) geladen wird. Aber die Seite weiss ja vorher nicht, dass die Session abgelaufen ist Hier müsste der Cache-Controller tatsächlich noch irgendwie überprüfen, ob das Cookie noch zur Session passt. Die einfachste Lösung wäre, den HTTP-Cache einfach ganz abzuschalten.
Zu Shopware 6 habe ich im Forum schon zu oft meine Meinung geäussert. Derzeit würde ich wohl eher mit einem Bauchladen in einer Einkaufsstrasse Geld verdienen wollen, als mit einem SW6-Shop. Einfach mal das Forum zu bemühen
Ok, also ist die einzige Alternative den HTTP-Cache nicht zu nutzen und anschließend mit Performance-Problemen zu leben.
Entweder langsamen Shop der funktioniert oder schnellen Shop der nicht wirklich funktioniert. Ist ja Klasse.
Das Shopware 6 noch seine eigenen Probleme besitzt, bin ich mir bewusst. Jedoch sehe ich die Auslagerung des Subshops zu Shopware 6 als einzige Alternative neben dem Wechsel zu einem komplett anderen Shopsystem. Die Auslagerung des Subshops wäre übrigens kein Problem, da unsere Artikel ohnehin nicht in Shopware gepflegt werden sondern über einen Import in den Shop gelangen.
@sonic Ich danke dir auf jeden Fall schonmal und bin froh zumindest zu wissen wo das Problem liegt.
Habe mal einen Test mit deaktivierten HTTP-Cache durchgeführt. Dort hat alles funktioniert wie es soll.
Es besteht doch sogar die Möglichkeiten Controller und Tags anzugeben, die nicht gecached werden sollen.
Habe dort auch schon einige Controller mit entsprechenden Tags hinzugefügt (z.B. frontend/listing price oder frontend/index price), jedoch hat bisher keine Ausnahme zum Erfolg geführt.
Hat jemand einen Tipp welche Controller und Tags dort eingetragen werden müssten oder wie man es herausfinden kann?
Gibt es hier immernoch keine Lösung ?
Es ist eine Katastrophe, wir haben das Plugin AccessManager welches nicht gerade günstig war.
Auch hier das gleiche Problem.
Kunden surfen im Shop ohne Login, loggen sich erst später ein und sehen dennoch keine Preise auf den soeben besuchten Seiten im Shop.
Meines Wissens nach gibt es keine Lösung. Die einzige Lösung die es gibt ist es den kompletten HTTP-Cache im Shop zu deaktivieren. Wir bereits oben erwähnt ist das natürlich eine Lösung die nicht zufriedenstellend ist. Einzelne Controller oder Tags vom Cache rauszunehmen hat bei mir nicht funktioniert.
Bei ähnlichen Cacheproblemen habe ich mir kürzlich helfen können indem ich
frontend/listing
frontend/detail
als nicht gecachete Controller hinzugefügt habe.
Die Doku ist hier leider auch nicht hilfreich da dort von einem „price“-Tag die Rede ist, dieses wird jedoch garnicht gesetzt.
Als Tags habe ich hier bei beiden Controllern „detail-1,detail-2,slt,detail“ eingetragen, da das die sind welche auch tatsächlich im nocache-Cookie stehen.
detail-1 / detail-2 sind nur relevant falls es sich um Subshops handelt.
Vielen Dank für den Ansatz, der erste Versuch sieht vielversprechend aus!
Werde das nun die Tage beobachten, sollte sich relativ schnell herausfinden lassen.
Danke !