ich habe ein (weiteres) seltsames Problem.
Meine Kunden bestellen sehr oft wiederholt bei uns (was ja auch gut so ist), manche jeweils fast jeden Tag. Bei einigen scheint es immer mal wieder vorzukommen, das der Warenkorb direkt nach der Bestellung leer ist, aber wenn sich der Kunde das nächste mal am darauf folgenden Tag einloggt, ist der Warenkorb wieder voll mit den Artikeln vom Vortag, obwohl diese bereits bestellt wurden.
Manche bemerken das nicht und bestellen doppelt, andere müssen nachgucken ob sie nicht vielleicht vergessen haben gestern den Bestellvorgang zu starten. Alles in allem weisen uns immer mehr Kunden auf das Problem hin.
Was ich bereits getan habe:
Im Forum gab es ähnliche Berichte, wo das aber nicht abschließend geklärt wurde und den Threaderstellern nicht so wichtig erschien.
Ich habe einem Kunden gesagt er soll mich sofort anrufen, wenn der Fehler auftritt. In der Datenbank war sein Basket leer, also kommt der Warenkorbinhalt von der Sessionvariable
Ich habe ein Modul geschrieben, das die Sessionvariable mit dem Warenkorb nach der Bestellung zurücksetzt, so das theoretisch der Warenkorb in der Session und in der Datenbank leer sein sollte. Ohne Erfolg, es hat sich nichts geändert.
Ich habe in der php.ini die Cookieeinstellungen angepasst, so das sie nur ca. 4h gültig bleiben sollten. Auch das hat nichts geändert
Wo kann ich da weiter gucken? Ich bin grad ein bisschen ratlos.
Nein, das kann ich leider auch nicht aktivieren, weil manche Kunden auch mehrere Tage lang Sachen im Warenkorb sammeln, um sie später zu bestellen.
Ich könnte es erstmal als Kompromiss aktivieren, aber optimal ist das leider nicht.
Aber das ist doch keine Konfigurationfrage, wenn längst bestellte Artikel plötzlich wieder im Warenkorb auftauchen, das ist doch eindeutig ein Bug. Und das Abschalten des Speicherns ist auch nur ein Workaround für den Bug.
Nur ist es halt ein schwer reproduzierbarer Bug, der aber auch schon länger reportet wird.
Das sich ein Shop einen Warenkorb lange merkt, sehe ich sogar als Standard an, bei Amazon und allen größeren Shops ist das ja auch so. Da haben die Kunden natürlich eine gewisse Erwartungshaltung.
Aber nach der Bestellung sollte der Warenkorb auch leer sein. Und sich vor allem nicht später wieder mit den “alten” Artikeln von selbst befüllen.
Hast du da auch Links für die Forum-Threads oder Bugreports? Dass der WK am nächsten Tag aus der Session befüllt wird ist extrem unwahrscheinlich weil die Session normalerweise nicht so lange lebt (default 24 min).
Ich kenne keinen größeren Shop bei dem beim Einloggen während des Checkouts Artikel in den WK gelegt werden wie bei Oxid, das sehe ich als potentielle Quelle für Verwirrung.
[QUOTE=leofonic;141811]Hast du da auch Links für die Forum-Threads oder Bugreports? Dass der WK am nächsten Tag aus der Session befüllt wird ist extrem unwahrscheinlich weil die Session normalerweise nicht so lange lebt (default 24 min).
Ich kenne keinen größeren Shop bei dem beim Einloggen während des Checkouts Artikel in den WK gelegt werden wie bei Oxid, das sehe ich als potentielle Quelle für Verwirrung.[/QUOTE]
Nochmal die Kurzbeschreibung was ich meine:
Einloggen -> WK füllen -> Bestellprozess abschließen -> WK ist leer (-> ausloggen [machen bestimmt nicht alle Kunden] ) -> Shop verlassen
Bis hierher alles iO. Bestellt, WK leer und alles gut. Dann manchmal das:
Nächster Tag -> Einloggen -> [B]WK ist voll mit bereits bestellten Waren von gestern[/B] -> Kunde bestellt doppelt wenn er es nicht bemerkt
Wie gesagt: In der DB ist in dem Moment in der oxuserbasket kein Eintrag für den User, sein WK sollte also laut DB leer sein.
Der Kunde benutzt für alles den selben Rechner und Browser (z.B. Chrome oder FF).
Noch ein paar relevante Backgroundinfo’s zu meinem Shop die ich nach unterschlagen habe (sorry, viel mir zu spät ein ):
B2B-Shop: Nur eingeloggt kann man den Warenkorb befüllen, unangemeldet werden die Bestellbuttons bei den Produkten einfach ausgeblendet.
Einfaches Modul: Beim ausloggen wird die Session mit oxSession::destroy() beendet -> Warenkorb leer
Was z.B. ohne Probleme geht: Einloggen -> Warenkorb vom User wird wiederhergestellt, Ausloggen -> Warenkorb leer, EInloggen -> Warenkorb vom User wird wiederhergestellt.
Das meinte ich auch mit: Das erwarten die Kunden. Deswegen haben sie ja einen Account im Shop. Und es funktioniert ja auch zu 90% für meine Kunden, bis halt bis auf besagtes Problem.
Sorry, das ich mich nicht gleich klar ausgedrückt habe.
Vielleicht hat ja noch jemand eine Idee was ich da probieren könnte
Super. Habe es gleich im Testshop eingebaut.
Beim ersten Versuch mit einem neuen Auftrag war es ok. Beim zweiten Versuch bekam ich dann diese Fehelrmeldung:
Fatal error: oxSession::_validateBasket() [<a href=‘oxsession.-validatebasket’>oxsession.-validatebasket</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition “oePayPalOxBasketItem” of the object you are trying to operate on was loaded before unserialize() gets called or provide a __autoload() function to load the class definition in /***/testshop/shop1/core/oxsession.php on line 718
Konnte den Shop dann erst nach deaktivieren des Moduls wieder aufrufen.
Könnte aber auch daran liegen, dass ich zwischenzeitlich das Paypal-Modul deaktiviert hatte.
Lösch mal die Cookies und schau ob der Fehler nochmal auftritt. Soweit ich weiß kommt der “incomplete object”-Fehler wenn noch ein alter basket in der Session ist.
Edit: ja das liegt daran dass du Paypal deaktiviert hast: “that the class definition “oePayPalOxBasketItem””, da war ein PayPalOxBasketItem-Objekt in der Session und wenn Paypal deaktiviert wird gibt’s die Klasse zum Objekt nicht mehr.