Neu master / "Warenkorb zusammenfassen" zeigt seltsames Verhalten

hotzeplotz

Aktives Mitglied
4. Februar 2019
65
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
454
77
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
65
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
65
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
65
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
454
77
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
65
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 "Kaufen" statt in den Warenkorb Plugins für JTL-Shop 2
Neu Warenkorb Hinweise bei Bestandsänderung und Preisänderung Allgemeine Fragen zu JTL-Shop 2
Neu Warenkorb Menge aktualisiert nicht den Preis (Reload geht nicht) JTL-Shop - Fehler und Bugs 5
Neu NEU ✔️ PDF-Angebots-Plugin für den JTL-Shop 5 - PDF Angebote von der Produktseite oder aus dem Warenkorb heraus generieren B2C / B2B Plugins für JTL-Shop 5
Neu Warenkorb per Link teilen Allgemeine Fragen zu JTL-Shop 6
Neu Versandkosten Berechnung im Warenkorb wird nicht aktualisiert JTL-Shop - Fehler und Bugs 1
Neu Warenkorb nach X Tagen löschen JTL-Shop - Ideen, Lob und Kritik 2
Neu OPC - productstream als Liste wir keine Warenkorb Button angezeigt Betrieb / Pflege von JTL-Shop 2
Neu Versandkosten im Warenkorb werden als Artikel angezeigt Allgemeine Fragen zu JTL-Shop 6
Anzeige der VPE neben "Warenkorb hinzufügen" Einrichtung JTL-Shop5 1
Neu Crosselling - Warenkorb Allgemeine Fragen zu JTL-Shop 10
Gelöst WF Aufträge zusammenfassen Gelöste Themen in diesem Bereich 2
In Bearbeitung Workflow offene Aufträge zusammenfassen bei ausgelieferten JTL-Workflows - Ideen, Lob und Kritik 1
Neu Amazon-Artikel nachträglich als Parent zusammenfassen? User helfen Usern - Fragen zu JTL-Wawi 9
Neu 1.7.15.3: Aufträge zusammenfassen - Shop unterschiedlich JTL-Wawi - Fehler und Bugs 0

Ähnliche Themen