Hallo Community,
ich bastle an einer größeren Pluginerweiterung für eine unserer Eigenentwicklungen, welche Fahrzeuge nach bestimmten Spezifikationen aus der Datenbank ausliest und deren Daten in der Session speichern soll. Um das Plugin zu verkaufen, muss ich die Shopware()->Session() verwenden. Das Speichern, Abholen und Löschen meiner Session funktioniert.
ABER:
Ich habe meine Plugins deaktiviert und in die Shopware/Controller/Listing.php via echo mir mal die Session ausgeben lassen.
Im Bearbeitungsmodus generiert er für jede Gastsitzung neue Sessions (so wie gewünscht).
Im Produktivmodus jedoch tut er dies nicht.
Wenn ich meine Fahrzeugdaten in der Session speichern möchte, brauche ich die natürlich individuell für jeden User.
Kann mir bitte jemand sagen, wie ich dieses Verhalten anpassen kann? Bzw. das Neuanlegen der Session erzwingen kann?
Vielen Dank für die Hilfe
Marcel
Alle deine Gäste teilen sich eine Session?! Das würde ja z.B. heißen, dass sich alle Gäste auch den gleichen Warenkorb teilen?!
Bist du dir sicher?!
Viele Grüße
https://www.digitvision.de
Den Warenkorb teilen sie sich nicht, da SW dafuer ja in der s_basket oder so dafür sorgt. Es wird die Session ID UND irgend etwas im Basket abgefragt. Im Detail kann ich dir das noch nicht erklären.
Mein Problem bezieht sich auf die „jungfräuliche“ Gastsession
Der Listig Controller wird ja gecached, so auch der Output. Wenn du etwas am Cache vorbei machen willst, brauchst du einen eigenen Controller der Dir die Daten bereitstellt und du lädst das per JavaScript nach (Stichwort Ajax). So wie du das im Moment machst, wird das nichts.
Schau dir mal die dynamischen Bereiche im Template an, dann siehst du das auch.
1 „Gefällt mir“
Ok, danke, das macht Sinn! Da habe ich auch gar nicht drüber nachgedacht…
Allerdings: Ich speichere meine Session tatsächlich in einem eigenen Controller. Abholen tue ich die allerdings in meinem Subscriber. Da muss ich noch mal nachschauen.
Kannst du mir noch einen Hinweis geben, was ich mir genau anschauen soll? Ich wäre dir echt dankbar, wenn ich das somit endlich beenden könnte! Hänge da schon länger dran und der Kunde wartet… ^^’’’’’
Du könntest Dir das Warenkorb Widget ansehen. Da wird mit einem Action Tag und Widget Controller gearbeitet. Das ist eine Lösung für einzelne Aufrufe, wenn du viele Daten abfragen willst geht das quasi ähnlich. Eigener Widget Controller, die info per Ajax laden und dann per JavaScript ins Template rendern.
1 „Gefällt mir“