Fehler in sAddAccessoriesQuantity

Ich habe einen seltsamen Effekt bei reinlegen von Zusatzartikeln in den Warenkorb mit obiger Funktion. Einstellige Mengen gehen, zweistellige nicht, da wird immer nur “1” im Warenkorb hinterlegt. Hat jemand einen ähnlichen Effekt beobachtet ?

Die Problematik “zwei Semikonlon-Trennung bei Artikelname in sAddAccessories und ein Semikolon-Trennung für die Menge in sAddAccessoriesQuantity” habe ich berücksichtigt.

Ich nutze die Community-Version 5.6.4

Mir ist dies beim Update auf die 5.6.6 ebenfalls aufgefallen. Bei der 5.6.2 hat das mit den doppelten Semikolons funktioniert.

Zudem erscheint nun im Warenkorb, wenn man diesen öffnet nachdem man mehrere Artikel mittles sAddAccessories hinzugefügt hat immer die Meldung “Der eingegebene Artikel konnte nicht gefunden werden.”

Weiß jemand was da geändert wurde?

Vielen Dank im Voraus!

Hat niemand eine Lösung? Irgendetwas muss ja geändert worden sein.

Grundsätzlich scheint es wohl zu funktionieren, aber es erscheint jedes mal die Nachricht im Warenkorb, dass der eingegebene Artikel nicht gefunden werden konnte.

Grüße

Wie legt ihr denn die Artikel in den Warenkorb? Per Formular oder versucht ihr es per GET über die URL?

Hallo @R4M‍,

danke für Deine Antwort!

Ich lege die Artikel über folgendes Formular in den Warenkorb:

                    In den Warenkorb

Die Werte werden entsprechend mit einem ;; getrennt als Value angegeben. Aber auch nur mit einem ; tritt das Problem auf.

Der Code oben funktioniert in der 5.6.2 einwandfrei, nur in der jetzigen 5.6.6 erscheint eben diese Meldung im Warenkorb.

Link bezgl der Semikolon Geschichte:

https://forum.shopware.com/discussion/43298/fehler-bei-saddaccessoriesquantity

Hm, ich werde das auch mal testen …

… ging schneller als gedacht: Stimmt, die Zeile “Der eingegebene Artikel konnte nicht gefunden werden.” kommt bei mir auch, aber sonst sind alle Artikel im Warenkorb.

Habe den Fehler jetzt gefunden:

Die Funktion, dass eine Meldung ausgeworfen wird wenn ein Artikel nicht nicht existiert wurde in der 5.6.5 eingebaut (https://issues.shopware.com/issues/SW-24733)

Folgende Zeile wurde hinzugefügt: https://github.com/shopware/shopware/blob/v5.6.5/engine/Shopware/Controllers/Frontend/Checkout.php#L574:L576

Die Function prüft ob der Wert von dem sAdd param in der Datenbank existiert. Allerdings wird dieser Wert mittels sAddAccessories nicht befüllt, somit wird der Fehler also immer ausgeworfen. Auf die schnelle werde ich vorübergehend einfach die Meldung mit folgender if Abfrage für die sAddAccessories ausblenden. Ich werde mein Ticket gleich mal updaten.

if(!$this->Request()->getParam('sAddAccessories')) {
            $this->session->offsetSet('sErrorMessages', $this->container->get('snippets')->getNamespace('frontend/basket/internalMessages')->get('WrongArticleNumberMessage', 'Please enter a valid article number'));
          }

BTW: Bezüglich der “;;” Problematik für die Werte der sAddAccessories und sAddAccessoriesQuantity ist diese Funktion schuld: https://github.com/shopware/shopware/blob/v5.6.5/engine/Shopware/Controllers/Frontend/Checkout.php#L1842:L1863

Dort würde noch folgender Eintrag fehlen:

$quantities = explode(';', $quantities);