Session Lebensdauer - Warenkorb für Gäste

Hallo liebe Community,
ich habe ein Problem mit einem Kundenshop, und zwar läuft dort die Session nach rund 20 Minuten aus und leert den Warenkorb, bei registierten Kunden ja kein Problem, nur bei Gästen ist der Warenkorb unwiderruflich weg.

Ich habe bereits über ini_set die PHP Variablen für die Garbage Collection angepasst und auf 12h hochgesetzt, leider bleibt der Effekt das der Warenkorb nach rund 20 Minuten weg ist.

Das eigentlich Cookie “sid” hat die richtige Lebensdauer, nur wird die Session irgendwo aufgeräumt.

Hat einer von euch eine Idee dazu?

Per Ajax im Hintergrund die Session aufrecht erhalten würde helfen. Jquery Beispiel, in den Footer einfügen oder so:

<script type="text/javascript">
  setInterval(function(){
    $.ajax('/index.php'); //hier irgendeine sinnvolle shop url aufrufen, index geht eigentlich immer
  },60000);
</script>

Den Wert 60000 musst du halt sinnvoll anpassen, möglichst hoch sollte er sein.

Ich hatte eine ähnliche Idee, nur das ich die ganze Seite nachgeladen hätte, da ist eine Idee natürlich sauberer, danke. Ich denke von der Performance her wäre irgend eine CMS Seite gut.
Ist das denn tatsächlich die einzige Lösung?

Das funktioniert natürlich nur so lange der Browser geöffnet ist und auch aktiv, also auf dem iPad im Hintergrundtab würde die Lösung schon nicht mehr funktionieren, geschweige denn wenn der Tab geschlossen ist, wäre halt Wunsch des Kunden.

Alternativ könnte ich natürlich hingehen und den Warenkorb als Kopie lokal abspeichern, sei es als Cookie oder per lokal Storage, und wenn eine neue Session erstellt wird prüfen ob ein lokaler Warenkorb vorliegt und dann entweder automatisch befüllen oder ein Popup öffnen und fragen

"Sehr geehrter Kunde,
ihre Session ist abgelaufen, wollen Sie ihren Einkauf fortsetzen? Oder wollen Sie mit einem leeren Warenkorb beginnen.

Tip: Wenn Sie sich registrieren (link) wird ihr Warenkorb automatisch gespeichert, und sie können auch an einem anderen Gerät den Einkauf fortsetzen."

Wenn du mir da einen Tip geben kannst wie ich den Warenkorb wieder befüllen kann?

Mach es einfach so wie es Oxid schon macht, das oxBasket Objekt wird komplett serialisiert und in die Session gepackt - das Objekt könntest du überall ablegen und später wieder abrufen. Am besten in eine tmp Datei speichern und einen Cookie beim user setzen um den Warenkorb später wieder zu finden.

Gibt es mittlerweile eine Einstellung in Oxid oder ein Modul welches den Warenkorb für Gäste speichert? Oder ist die Lösung von aggrosoft noch aktuell?