Wie kann man den Warenkorb speichern, damit nicht alles gelöscht wird, wenn man den Browser schließt?
wir lösen das hiermit
Danke. Das habe ich schon getestet. Der Warenkorb soll automatisch gespeichert werden, ohne dass der Kunde etwas anklicken muss.
Der Warenkorb ist sehr wahrscheinlich an das Cookie gebunden. Wenn der Kunde nur technisch notwendige Cookies akzeptiert, hättest du da dann keine Möglichkeit.
Ansonsten gibt es in den Einstellungen die Möglichkeit, die Sekunden anzugeben, nachdenken ein Gast gelöscht wird und damit sehr wahrscheinlich auch die Verbindung zum Warenkorb (nicht nachgesehen).
Ansonsten habe ich in Erinnerung, dass 180 Tage der Standardwert für Warenkörbe sind. Das lässt sich über eine yaml Konfigurationsdatei festlegen.
wenn dein kunden nen acount anlegen werden warenkörbe autmatisch gespeichert mit notwendige Cookies natürlich
Oder dieses Plugin nutzen: https://store.shopware.com/de/dvsn942306817848m/warenkorb-in-cookie-speichern.html
Auf Wunsch wird der Cookie in die „Technisch notwendigen“ Cookies aufgenommen und gilt damit immer als akzeptiert.
Viele Grüße
Alternativ gäbe es auch noch dieses kostenlose Plugin:
Warenkorb teilen
https://store.shopware.com/de/frosh82894379151f/warenkorb-teilen.html
Bei Einstellungen → Shop → Login / Registrierung → Zeit, nach der Gastkundenaccounts ablaufen sind 86400 Sekunden angegeben, also 1 Tag.
Wenn ich den Computer neustarte und die Website im Browser ansehe, steht kurz der Warenkorbwert dort, ändert sich zu 0,00 € und der Warenkorb ist leer.
Wie kommst du auf 180 Tage als Standardwert? Ich habe keine yaml-Datei auf dem Server gefunden.
Sind 120 Tage (inzwischen).
Ich habe eine z-shopware.yaml mit folgendem Inhalt bei /config/packages/ hochgeladen:
shopware:
cart:
expire_days: 120
Das funktioniert nicht.
Shopware-Version: 6.4.20.2
Ich verstehe nicht ganz was für Änderungen du erwartest, wenn du eine Variable mit deren Standardwert überschreibst.
Nochmal die oberen Beiträge zusammengefasst:
Shopware speichert Warenkörbe in der Datenbank (120 Tage). Warenkörbe sind an Kundenkonten, Gastkonten und/oder an PHP-Sessions gebunden. Die Referenz zu PHP-Sessions wird in Browser-Session-Cookies gespeichert.
Wird das Cookie gelöscht, was bei Session-Cookies in der Regel mit dem Schließen des Tabs/Fensters erfolgt (ausgenommen wenn die Tab-Wiederherstellung aktiviert ist), dann ist die Referenz zur Session und damit auch zum Warenkorb verloren. Auch wenn der Warenkorb noch weitere 120 Tage in der Datenbank existiert.
Danke für die Erklärung.
Ich habe die z-shopware.yaml mit dem oben genannten Inhalt hochgeladen, weil es bei mir keine shopware.yaml gibt.
Was hältst du davon, wenn man es so macht, wie bei Warenkorb Lifetime / Session Timeout - #22 von paul2 beschrieben:
Ja, du kannst die Session-Lifetime erhöhen; auch per php.ini möglich.
Die Standard-Werte in die shopware.yaml einzutragen ändert nichts, wenn es beim Standard-Wert bleibt.
Wenn der Benutzer/der Browser den Session Cookie löscht, dann bringt das aber alles nichts. Das Wesentliche ist der „Notwendige Cookies“ Button, der daraus ein Session-Cookie macht.
Danke @Max_Shop für den Hinweis.
Mit dem Befehl phpinfo() in einer PHP-Datei habe ich gesehen, dass „session.cookie_lifetime“ einen Wert von „0“ und „session.gc_maxlifetime“ einen Wert von „7200“ hatte.
Ich habe eine .user.ini-Datei angelegt und im Verzeichnis „public“ mit folgenden Angaben hochgeladen:
session.cookie_lifetime = 10000
session.gc_maxlifetime = 10000
Jetzt bleibt der Warenkorb bei Gastkonten nach dem Computerneustart erhalten.
Kann ich die Werte auf „7776000“ erhöhen, damit der Warenkorb 90 Tage lang gespeichert wird oder muss ich noch etwas anderes ändern?
Sollte ich noch etwas beachten?
Auf php.net gab es mal ein Kommentar
max value for „session.gc_maxlifetime“ is 65535. values bigger than this may cause php session stops working.
Ob da etwas dran ist, keine Ahnung.
Unabhängig davon verstößt du mit dem Vorgehen sehr wahrscheinlich der EU-Cookie-Richtlinie und damit der DSGVO.
Bei EU-Cookie-Richtlinie: Müssen Nutzer in Cookies einwilligen? steht:
technisch notwendige Cookies: Hierunter fallen Cookies, die für einen funktionierenden Betrieb einer Website erforderlich sind. Dies kann unter anderem Log-in-Daten meinen oder aber Cookies, die der Speicherung eines Warenkorbes erforderlich sind. Einer eindeutigen Einwilligung in diese notwendigen Cookies bedarf es nach Cookie-Richtlinie nicht. Die erforderlichen Infos dürfen somit auch bereits zu Beginn des Besuchs der Website gespeichert werden. Über eine Opt-out-Lösung können die Nutzer nachträglich der Verwendung widersprechen.
Der Kommentar ist über 12 Jahre alt. Wenn er gestimmt hat, sollte es schon behoben sein. 65535 wären knapp über einen dreiviertel Tag.
Wenn es um angemeldete Kunden geht, sollte das eigentlich auch Shopware Standard sein oder?
Hast du die Option vielleicht auch aktiviert:
Einstellungen → Anmeldung & Registrierung → Warenkorb bei Abmeldung löschen (das sollte deaktiviert sein)
Danke für den Hinweis.
Die meisten Kunden kaufen als Gast.
„Warenkorb bei Abmeldung löschen“ ist deaktiviert.
„Zeit, nach der Gastkundenaccounts ablaufen“ steht standardmäßig bei 86400 Sekunden. Das sind 24 Stunden.
Kurzer Klugscheißer: 86400 sind genau ein Tag, 24h.
Danke. Ich habe es korrigiert. Ich hatte mit 68400 Sekunden gerechnet. Dann sind es 19 Stunden.