GX-Bug #70376
geschlossenAfterbuy: Möglicher Crash bei Verwendung von Produktmerkmalen/Zusatzfeldern | Use of Produktmerkmale/Zusatzfelder can cause crash on import
0%
Afterbuy: Fehler beim Import von Produktmerkmalen (Zusatzfeldern) behoben
Beschreibung
Beim Import von Artikeln kann es zu einem Abbruch (Exception) kommen, wenn Zusatzfelder (AB: Produktmerkmale) verwendet werden. Das Problem tritt auf, wenn der Name eines Zusatzfeldes ein Substring des Namens eines (oder mehrerer) anderen Zusatzfeldes ist.
Beispiel: eine Schallplatte mit den Zusatzfeldern „Zustand“ und „Zustand Cover“. Da beim Import die ID des Zusatzfeldes anhand des Namens gesucht wird, kann es passieren, dass für beide Zusatzfelder die gleiche ID ermittelt wird. Die resultierende mehrfache Zuweisung von Werten zum gleichen Zusatzfeld führt dann zu einer Exception.
Schritte zum Reproduzieren:
- Voraussetzung: Afterbuy-Artikelimport funktionsfähig konfiguriert
- Bei Afterbuy Artikel mit Produktmerkmalen „Zustand“ und „Zustand Cover“ anlegen.
- Artikelimport durchführen
- Artikel bei Afterbuy ändern (z. B. Artikelnummer)
- Artikelimport erneut durchführen
Erwartetes Ergebnis:
Der Artikel wird beim ersten Import angelegt und beim zweiten die Änderung übernommen.
Tatsächliches Ergebnis:
Beim zweiten Import bricht der Vorgang ab, im Error-Log erscheint ein Fehler wie dieser:
exception: class: Gambio\MainComponents\Services\Core\AdditionalProductFields\Services\Exceptions\CreationOfAdditionalProductFieldFailedException message: There are already values assigned to the field id "26" for the product id "165"
When importing articles, an exception may occur if additional fields (AB: Produktmerkmale) are used. The problem occurs when the name of an additional field is a substring of the name of one (or more) other additional fields.
Example: a record with the additional fields "Condition" and "Cover Condition". Since the ID of the additional field is searched for on the basis of the name during import, it can happen that the same ID is determined for both additional fields. The resulting multiple assignment of values to the same additional field then leads to an exception.
Steps to reproduce:
- Prerequisite: Afterbuy article import functionally configured.
- Create articles with product characteristics "Condition" and "Condition Cover" in Afterbuy.
- Carry out article import
- Change article at Afterbuy (e.g. article number)
- Perform article import again
Expected result:
The item is created on the first import and the change is applied on the second.
Actual result:
On the second import the process aborts, an error like this appears in the error log:
exception: class: Gambio\MainComponents\Services\Core\AdditionalProductFields\Services\Exceptions\CreationOfAdditionalProductFieldFailedException. message: There are already values assigned to the field id "26" for the product id "165".