Neu master / "Warenkorb zusammenfassen" zeigt seltsames Verhalten

hotzeplotz

Aktives Mitglied
4. Februar 2019
53
3
Beim Zusammenführen von Warenkörben stimmt was nicht. Glaube ich :)

1. Wenn ein Warenkorb aus _nicht_ angemeldetem Zustand in einen bestehenden/gepeicherten Warenkorb zusammengeführt werden soll läuft was schief
2. Es macht anscheinend einen Unterschied ob der gepeicherte Warenkorb bereits Positionen enthält oder nicht.

Szenario 1.

Ausgangslage: Nicht angemeldet, Warenkorb leer.

- 1. "A1" in WK; OK
- 2. Login; WK: "A1"; OK
- 3. Logout
- 4. "A2" in WK; OK
- 5. Login

Nun würde man erwarten, dass die Rückfrage erscheint und bei Bestätigung, der WK "A1" und "A2" bereithält.

Das passiert aber nicht, sondern: Es erfolgt keine Rückfrage und "A1" fehlt im WK.

Szenario 2.

Anders verhält es sich wenn man angemeldet anfängt.

Ausgangslage: Angemeldet, Warenkorb leer.

- 1. Login
- 2. "A1" in WK; OK
- 3. Logout // Ab hier ähnlich wie Szenario 1, mit dem Unterschied, dass der gespeicherte WK nicht leer ist.
- 4. "A2" in WK; OK
- 5. Login

Wieder erwartet man die Rückfrage und dass bei Bestätigung der WK die Artikel "A1" und "A2" bereithält.

Die Rückfrage erscheint, allerdings bei Bestätigung…

Code:
Kontext: Warnung ×Der Artikel „A1“ konnte nicht in den Warenkorb übernommen werden.
Kontext: Warnung ×Der Artikel „A2“ konnte nicht in den Warenkorb übernommen werden.
Kontext: Achtung ×Ihr Warenkorb ist leer.

Im Warenkorb werden keine Artikel angezeigt. Er ist aber nur scheinbar leer.

Der Status ist: Angemeldet, WK leer.

Nun kommt es darauf an wie es weitergeht.

Weg 1.

- 1. Logut
- 2. Login

Beide, "A1" und "A2", sind ohne weitere Rückfrage oder Kommentar im Warenkorb

Weg 2.

Neues Produkt in, scheinbar leeren, Warenkorb legen.

- 1. "A3" in WK; OK
- 2. Logout
- 3. Login

"A1", "A2" und "A3" sind ohne weitere Rückfrage oder Kommentar im Warenkorb

Weg 3.

Ähnlich wie Schritt 2, nur mit abmelden bevor ein neues Produkt in den WK gelegt wird.

- 1. Logout // Szenario 1; gespeicherter WK nicht leer ist.
- 2. "A3" in WK; OK
- 3. Login

Die Rückfrage nach Zusammenführung erscheint zwar, führt aber wieder scheinbar leerem Warenkorb.

Code:
Kontext: Warnung ×Der Artikel „A1“ konnte nicht in den Warenkorb übernommen werden.
Kontext: Warnung ×Der Artikel „A2“ konnte nicht in den Warenkorb übernommen werden.
Kontext: Warnung ×Der Artikel „A3“ konnte nicht in den Warenkorb übernommen werden.
Kontext: Achtung ×Ihr Warenkorb ist leer.

Ab hier wieder wie "Weg 1" oder "Weg 2", der Kreis schließt sich.

Ist das Nachvollziehbar?

Zweite Sache: Artikel mit Varianten / Array to string conversion

Ob das direkt mit der Beobachtung zusammenhängt weiß ich nicht, ich kann die genannten Schritte mit auch mit Artikel nachvollziehen, die keine Varianten haben.

"/includes/src/DB/NiceDB.php" meldet zwei "Array to string conversion " in ~415 und ~430.

- siehe https://gitlab.com/jtl-software/jtl-shop/core/-/blob/master/includes/src/DB/NiceDB.php#L415
- siehe https://gitlab.com/jtl-software/jtl-shop/core/-/blob/master/includes/src/DB/NiceDB.php#L430

PHP:
// Bei Artikel mit Varianten ist $val ein Array
$val = [
    'ger' => 'Grün'
];

// ~415
$lc = \mb_convert_case((string)$val, \MB_CASE_LOWER);
// Array to string conversion

// Ist $val ein Array, wird dieses in $assigns einsortiert und in 430 benutzt.
// ~430 

$assigns = [
  ":kWarenkorbPersPos" => 125
  ":kEigenschaft" => 1
  ":kEigenschaftWert" => 2
  ":cFreifeldWert" => ""
  ":cEigenschaftName"=> [
     "ger" => "Farbe"
  }
  ":cEigenschaftWertName" => [
     "ger" => "Grün"
  }   
]
      
$res = $s->execute($assigns);
// Array to string conversion

Keine Ahnung ob das relevant ist.

Schönen Tag noch.
 

Patrick Gugelsberger

Moderator
Mitarbeiter
1. Februar 2019
399
60
Hallo @hotzeplotz,

Szenario 1 konnte ich auch im aktuellen Master nachstellen und habe hierzu auch entsprechend ein Ticket für unsere Entwicklung eröffnet, das passende Ticket findest du hier:

https://issues.jtl-software.de/issues/SHOP-4138

Szenario 2 konnte ich so leider nicht nachstellen, das klappte alles bei mir, hier aber auch im aktuellen Master wohlgemerkt. Ich werde das ganze mal ein wenig weiter testen, eventuell hab ich hier ja auch einen Fehler gemacht.

Bei dem zweiten Thema Artikel mit Varianten / Array to string conversion bin ich leider raus, wo genau passiert da der Fehler?
 

hotzeplotz

Aktives Mitglied
4. Februar 2019
53
3
Danke für die Rückmeldung. Hab's nicht mitbekommen.

Was das Problem mit dem Warenkorb betrifft muss ich selbst noch mal nachvollziehen.

Das Problem "Artikel mit Varianten / Array to string conversion" muss eigentlich hier raus und in ein neues Ticket.

Aufgefallen ist mir das eben beim wursteln bezüglich des Warenkorbes. Wenn Artikel mit Variationen (hier "Farbe: Grün") in den Warenkorb gelegt werden, wird die Meldung als "notice" ausgegeben, wenn "display_errors" aktiviert ist.

Es geht darum, dass …

- 1.) "mb_convert_case" eine Zeichenkette erwartet (um deren Schreibweise nach Kleinbuchstaben zu ändern), aber ein Array geliefert bekommt.
- 2.) die Zuordnung der Platzhalter zu deren Wert wie z.B. ":cEigenschaftName=>" als Wert eine Zeichenkette erwartet ("Farbe"), aber ebenfalls ein Array ("['ger'=> 'Farbe']") geliefert wird.

Richtig müsste es hier lauten:

Code:
// 1.) Hier muss "Grün" ankommen "$val['ger']". Es ist aber das Array, welches auf "string" gecastet wird > "Array to string conversion"
$val = [ 'ger' => 'Grün'];
$lc = \mb_convert_case((string)$val['ger'], \MB_CASE_LOWER);

// 2.) Hier wäre rechts der Zuweisung nur der Wert ("Farbe", bzw. "Grün") richtig. Geliefert wird aber Array. ['ger' => 'Farbe'] bzw. ['ger' => 'Grün']
$assigns = [
  ":cEigenschaftName"=> "Farbe",
  ":cEigenschaftWertName" => "Grün"
]
 

hotzeplotz

Aktives Mitglied
4. Februar 2019
53
3
mmh … also, bis auf das von Dir ebenfalls bestätigte Verhalten aus "Szenario 1.", kann ich nun den Rest auch nicht mehr nachvollziehen. Grade habe ich's noch mal versucht und auch auch der zweite Teil ("Array to string conversion") verhält sich genau so wie er soll. Tjo, Fehlalarm. Vielleicht hing beides zusammen, allerdings halt genau nur in meinem Fall/Bedingungen, welche sich jetzt nicht mehr nachvollziehen lassen. Obwohl ich mir eigentlich sicher war, dass die Basis ein frisch ausgecheckter master war, grade weil ich ja eben keinen selbst fabrizierten Schlamassel als "Fehler im System" vortragen möchte … Ich denke das habt Ihr schon zur Genüge :)

Schönes Wochenende.
ciao, Stefan
 

hotzeplotz

Aktives Mitglied
4. Februar 2019
53
3
Es war der master vom 28. oder 29. April. Wie geschrieben kann ich das mittlerweile selbst auch nicht mehr nachvollziehen. Ist mir schleierhaft, keine Ahnung was das war.

Bestätigen kann ich nur was auch Patrick nachvollziehen konnte:

Szenario 1.

Ausgangslage: Nicht angemeldet, Warenkorb leer.

- 1. "A1" in WK; OK
- 2. Login; WK: "A1"; OK
- 3. Logout
- 4. "A2" in WK; OK
- 5. Login

Nun würde man erwarten, dass die Rückfrage erscheint und bei Bestätigung, der WK "A1" und "A2" bereithält.

Das passiert aber nicht, sondern: Es erfolgt keine Rückfrage und "A1" fehlt im WK.
 

Patrick Gugelsberger

Moderator
Mitarbeiter
1. Februar 2019
399
60
Hallo Stefan,

danke für die Rückmeldung, ich konnte das ganze auch nach weiteren Prüfungen nicht nachstellen, wenn du das nun bestätigst werde ich das Thema mal als erledigt ansehen :)

weil ich ja eben keinen selbst fabrizierten Schlamassel als "Fehler im System" vortragen möchte
Wenn du der Meinung bist einen Fehler gefunden zu haben dann sind wir über konstruktive Beiträge wie diesen hier sehr froh. Also keine falsche Scham, lieber eine Meldung zu viel als eine zu wenig, ob es wie in diesem Fall ein Fehlalarm ist kann man dann immer noch feststellen.
 

hotzeplotz

Aktives Mitglied
4. Februar 2019
53
3
Das Verhalten, dass Artikel aus dem Warenkorb verschwinden, ist nach wie vor zu beobachten.

Es reicht sich ein-/ausloggen, um die Artikel aus dem Warenkorb verschwinden zu lassen.

- 1. Login - Warenkorb leeren. Sicherstellen, dass es keinen gepeicherten Warenkorb gibt.
- 2. Logout - (mehrere) Artikel in Warenkorb legen. / OK
- 3. Login - Die Artikel sind weiterhin im Warenkorb. / OK
- 4. Logout - Warenkorb leer / OK
- 5. Login - Warenkorb leer / KO

Versuch Du es doch auch noch mal. Wenn Du dass nicht nachstellen kannst … ja dann, bitte kompletten Thread löschen :)

Außerdem schließen bzw. nach "Gelöst" verschieben kann man noch die beiden

- https://forum.jtl-software.de/threads/master-nova-theme-path-default-fehlt-in-clear.128561/
- https://forum.jtl-software.de/threa...iste-newwl-1-undefined-index-kumfrage.128487/

Danke und schönen Tag noch.
ciao, Stefan
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Cross-Site-Request-Forgery! Sind Cookies aktiviert? Fehlerhafter Token bei Warenkorb Nutzung JTL-Shop - Fehler und Bugs 2
Falscher Versandkostenanzeige im Warenkorb Einrichtung JTL-Shop5 0
Sessiondauer für Warenkorb verlängern Einrichtung JTL-Shop5 8
Neu Freiposition im Warenkorb? Allgemeine Fragen zu JTL-Shop 4
Neu Artikel nicht in den Warenkorb, sondern auf externe Webseite weiterverlinken - geht das? Allgemeine Fragen zu JTL-Shop 5
Neu Konfigurator - Warenkorb Button angezeigt lassen Einrichtung JTL-Shop5 2
Neu Fehlermeldung bei hinzufügen von Artikeln mit Variationen in den Warenkorb Allgemeine Fragen zu JTL-Shop 1
Neu Info im Warenkorb nur für bestimmte Kundengruppe Allgemeine Fragen zu JTL-Shop 4
Neu Fehlerhafte Versandkostenberchnung im Warenkorb JTL-Shop - Fehler und Bugs 0
Neu Warenkorb immer wieder leer, sobald der Browser geschlossen wird JTL-Shop - Fehler und Bugs 9
Hinweisfeld od. Popup im Warenkorb anzeigen unter Bedingungen Einrichtung JTL-Shop5 2
Neu Konfigurator - Warenkorb JTL-Shop - Ideen, Lob und Kritik 2
Neu $Warenkorb->PositionenArr[]->Artikel->fLagerbestand im Bestellvorgang Templates für JTL-Shop 0
Kommentarfeld im Warenkorb und in Mein Konto / Bestellung ausblenden? Einrichtung JTL-Shop5 2
Neu Warenkorb - Variations -if-Abfrage - wo habe ich den Fehler gemacht?????????? User helfen Usern 1
JTL Shop 5: Warenkorb - Fehler bei Steuer B2B-Kunden? Ausblenden der Versandkosten, wenn 0,00 € möglich? Einrichtung JTL-Shop5 2
Neu Varianten im Warenkorb - welche Variable? --- $Variationswert->cPreisInklAufpreis[$NettoPreise) Templates für JTL-Shop 1
Warenkorb wird nicht angezeigt Einrichtung JTL-Shop5 2
Neu Statistik: Artikelname zusammenfassen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Aufträge zusammenfassen - Positionshinweis auf ursprüngliche Bestellung hinterlegen Arbeitsabläufe in JTL-Wawi 0

Ähnliche Themen