Gelöst Logout > Login Warenkorb leer?

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Shopversion 4.05 (Build: 6)

Bei einem Shop ging ich heute die Testprozedur vor dem Launch durch. Dazu gehört natürlich auch ein Kundenkonto zu erstellen etc.

Dabei fiel mir auf, wenn ich einen Artikel in den Warenkorb lege, mich abmelde & wieder anmelde.
Bekomme ich nach dem Login Beträge im Warekorb angezeigt (s.Bild)
shot.jpg
auch direkt auf der Warenkorb Seite
shot2.PNG

aber leider ist der Artikel weg?

Bei dem Artikel handelt es sich um einen Konfigurationsartikel, da es nur diesen einen Artikel gibt kann ich gerade nicht testen ob das auch bei "einfachen" Artikeln so ist.

Ist hier eine Fehlerhafte Einstellung schuld?
 

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
So, da ich keine Antwort bekomme ;) hab ich selbst ein wenig gegraben.
Das Problem scheint wohl mit dem Laden des WK aus der DB zusammenzuhängen, soweit ich sagen kann verändert sich durch den Logout nichts an der DB, beim Login wird aber der WK nicht richtig geladen.
Bis sich eine Lösung findet bleibt wohl nur "Persistenten Warenkorb nutzen(540)" auf Nein zu setzen, leider kann der KD so keine WK speichern :(
 

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Kann es sein dass mit den "Eigenschaften" etwas nicht ganz rund läuft?
In der "twarenkorbpersposeigenschaft" fehlt z.B. der Name?
wertname_fehlt.PNG
"teigenschaft"
name_teigenschaft.PNG

Ich habe mir jetzt Mal die "class.JTL- Shop.WarenkorbPers.php" angesehen, hier fiel mir auch etwas seltsames auf, der Bereich ist so ca. Zeile 288.
Wenn ich mir hier das array "$oWarenkorbPersPosEigenschaft_arr" ausspucken lasse:

PHP:
           [kWarenkorbPersPosEigenschaft] => 1
            [kWarenkorbPersPos] => 1
            [kEigenschaft] => 3
            [kEigenschaftWert] => 0
            [cFreifeldWert] => 1000
            [cEigenschaftName] =>
            [cEigenschaftWertName] =>

Wenn ich mir aber vor "return $this" das $this ausgeben lasse ist der cFreifeldWert plötzlich leer?

PHP:
                                    [kWarenkorbPersPosEigenschaft] =>
                                    [kWarenkorbPersPos] => 1
                                    [kEigenschaft] => 3
                                    [kEigenschaftWert] => 0
                                    [cFreifeldWert] =>
                                    [cEigenschaftName] =>
                                    [cEigenschaftWertName] =>

Das verwirrt mich ein wenig und ich denke da stimmt irgendetwas nicht so ganz?
 

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.244
1.521
Hast du mal geprüft ob es eventuell mit einem Plugin zusammenhängen könnte?
Also alle Plugins deaktivieren und dann nochmal prüfen.
 

Mirko.Schmidt User deaktiviert

Guest
Kann es sein, dass es sich hier eher um einen Varkombi- oder Variationsartikel handelt? Weil twarenkorbperposeigenschaft speichert keine Konfigurationssachen, die Komponenten werden in twarenkorbperpos gespeichert. Bzw. oder handelt es sich um eine Varkombi, wo der Kindartikel Konfiggruppen hat?
 

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Also "echte" Variationen hat der Hauptartikel nicht, es sind nur 4 Freifelder beim diesem, die Konfigurationsartikel sind alles nur "einfache" Artikel, Variationen lassen sich ja bei Konfigurationsartikeln keine anlegen.
Varkombi auch Nein.
Kindartikel haben auch keine Konfig o.ä.
 

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Ok, also in einem Punkt bin ich weitergekommen, der WK wird nach dem Login nun geladen.
Habe in der "class.JTL- Shop.WarenkorbPers.php" Zeile 293 geändert:
vorher:
PHP:
                                    ((isset($oWarenkorbPersPosEigenschaftTMP->cFreiFeldWert))
                                        ? $oWarenkorbPersPosEigenschaftTMP->cFreiFeldWert
                                        : null),
jetzt:
PHP:
(isset($oWarenkorbPersPosEigenschaftTMP->cFreifeldWert)) ? $oWarenkorbPersPosEigenschaftTMP->cFreifeldWert : null,

Allerdings funktioniert das NUR bei einem Artikel im WK.
Wenn ich den selben Artikel mit anderer Konfiguration, also sowohl anderer "FREITEXT" als auch andere Konfiguration in den WK lege. Ist zunächst alles OK.
Abmelden > Anmelden und ich habe den Artikel zusammengefasst im WK

d.h.
Vor dem Logout:
2 Artikel:
1x "Shirt" grün / 1x "Shirt" blau

danach:
1 Artikel
2x Shirt
 

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Naja, viele Ansätze scheint es nicht zu geben, aber vielleicht kann ich in eigenem Interesse zur Behebung etwas beisteuern.

Ich lege 2x den selben Artikel (unterschiedlich konfiguriert) in den Warenkorb "twarenkorbpersposeigenschaft" sieht so aus:
vor-loeschen.PNG
Nun lösche ich einen der beiden Artikel und voila..... da stehen urplötzlich die "cE....Name" in der DB... anscheinend gibt es in der Löschfunktion etwas das beim einfügen "fehlt" ?
nach-loeschen.PNG
 

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Bin nun 2 Schritte weiter gekommen, also die Einträge in die DB würden nun passen, aber das laden des Warenkorbs nach dem Login scheitert wohl an der "ladeWarenkorbPers" Funktion.
Aber da ist mir die Einarbeitung dann doch zu aufwändig, ist hier in naher Zukunft eine Lösung angestrebt, damit ich dem Kunden ein "Licht" bieten kann?
Stecken knapp 3 Wochen arbeit drin und nun scheiterst am Warenkorb :(

Gerade bei den Konfigurationsartikeln wäre der persistente WK ja wichtig.
Kaum ein Kunde wird sich nochmal hinsetzen und den Artikel konfigurieren wenn er versehentlich den Browser zugemacht hat, abstürzt oder einfach nur das Timeout erreicht hat und sich neu einloggen muss?
 

Mirko.Schmidt User deaktiviert

Guest
  • Gefällt mir
Reaktionen: Nicson

Nicson

Sehr aktives Mitglied
29. August 2012
516
94
Bayern
Klasse, vielen Dank für den nützlichen Hinweis :)
Hätte ich den gestern gehabt.... ;) aber lieber so.
Habe heute auch das Update und die individuellen Anpassungen übertragen. Kann ich bestätigen in 4.06 wird auch der Konfi Artikel im WK gespeichert.

Vielen Dank nochmals, hast mir quasi den Tag gerettet :)

Somit dann *closed* *gelöst* !
 

Ähnliche Themen