GX-Abgewiesen #69219
geschlossenMan kann keine Artikel aus dem Warenkorb löschen, wenn die selben Optionswerte unterschiedlichen Optionen zugeordnet sind
0%
Artikel können nun wieder sauber aus dem Warenkorb gelöscht werden, wenn diese Optionswerte haben die noch in anderen Artikeln genutzt werden und über eine Schnittstelle importiert wurden
Beschreibung
Wenn die gleichen Optionswerte unterschiedlichen Optionen zugeordnet sind, kann man die Artikel nicht mehr aus dem Warenkorb löschen, da die Ids dann beim Auslesen nicht mehr eindeutig sind.
Das kann wie folgt reproduziert werden:
- Artikel anlegen
- Option "Farbe" anlegen
- Option "Metallfarbe" anlegen
- Optionswerte "rot", "grün" "blau" anlegen
- In der Datenbanktabelle die Zuweisung für die Optionswerte so anpassen, dass die gleichen IDs einmal der Option "Farbe" und einmal der Option "Metallfarbe" zugewiesen sind
- Einem Artikel die Farbe mit den Optionen zuweisen
- Einem anderen Artikel die "Metallfarbe" mit den gleichen Optionen zuweisen
- Den Artikel in den Korb legen
- Den Artikel aus dem Korb löschen
Erwartetet Ergebnis:
Wenn man ein Artikel in den Korb legt, dann sollte der auch wieder gelöscht werden, auch wenn die gleichen Optionswerte einer anderen Option zugeordnet wurden
Tatsächliches Ergebnis:
Man mann Artikel nicht mehr aus dem Korb löschen, wenn die gleichen Optionswerte unterschiedlichen Optionen zugewiesen sind.
Das könnte passieren z.B. wenn man die Optionswerte über eine Wawi in den Shop importiert und die Zuordnung in der Tabelle "products_options_values_to_products_options" dann vornimmt.
Da die Werte in der Tabelle products_attributes nicht eindeutig sind mit dieser Zuweisung muss die products_id mit angegben werden im ein eindeutiges Ergebnis zu erhalten.
Ein distinct reicht in diesem Fall dann nicht mehr aus.
$optionIdResult = $builder->select('options_id, options_values_id')
->distinct()
->from('products_attributes')
->where('options_values_id IN (' . implode(', ', $valueIds) . ')')
->execute();
If the same option values are assigned to different options, it is no longer possible to delete the products from the shopping cart, because the ids are then no longer unique when read out.
This can be reproduced as follows:
- create product
- create option "color
- create option "metal color
- create option values "red", "green" "blue
- adjust the assignment for the option values in the database table so that the same IDs are assigned once to the "color" option and once to the "metal color" option
- assign the color with the options to one product
- assign the "Metal color" with the same options to another product
- put the product into the basket
- delete the product from the basket
Expected result:
If you put a product in the basket, it should be deleted, even if the same option values were assigned to another option
Actual result:
You can't delete products from the basket if the same option values are assigned to different options.
This could happen e.g. if you import the option values into the db via a ERP and then make the assignment in the table "products_options_values_to_products_options".
Since the values in the table products_attributes are not unique with this assignment, the products_id must be specified to get a unique result.
A distinct is then no longer sufficient in this case.
Checkliste 0/0
Von Till Tepelmann vor mehr als 3 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
Von Till Tepelmann vor mehr als 3 Jahren aktualisiert
- Status wurde von Gemeldet zu Testing geändert
- Release Notes Langtext aktualisiert (Vergleich)
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Zugewiesen an wurde auf Moritz Bunjes gesetzt
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Zugewiesen an
Moritz Bunjeswurde gelöscht
Von Mirko Janssen vor mehr als 3 Jahren aktualisiert
- Zugewiesen an wurde auf Mirko Janssen gesetzt
Von Mirko Janssen vor mehr als 3 Jahren aktualisiert
- Zugewiesen an
Mirko Janssenwurde gelöscht
Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert
- Zugewiesen an wurde auf Marvin Muxfeld gesetzt
Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert
- Status wurde von Testing zu Feedback geändert
- Zugewiesen an wurde von Marvin Muxfeld zu Lennard Kläfker geändert
Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert
- Tags
4.5.2wurde gelöscht - Zugewiesen an wurde von Lennard Kläfker zu Till Tepelmann geändert
Von Till Tepelmann vor mehr als 2 Jahren aktualisiert
- Tracker wurde von GX-Bug zu GX-Abgewiesen geändert
- Status wurde von Feedback zu Abgewiesen geändert
- Zugewiesen an
Till Tepelmannwurde gelöscht - Betroffene Versionen
4.2.0.0, 4.2.0.1, 4.2.1.0, 4.2.1.0 beta1, 4.3.1.0, 4.3.1.0 RC1, 4.3.1.0 beta1, 4.3.1.0 beta2, 4.3.1.0 beta3, 4.3.2.0, 4.3.2.0 beta1, 4.3.2.1, 4.3.3.0, 4.3.3.0 beta1, 4.3.3.1, 4.4.0.0, 4.4.0.0 beta1, 4.4.0.1, 4.4.0.2, 4.4.0.3, 4.5.1.0 beta1, 4.5.1.0 beta2wurde gelöscht
Von Till Tepelmann vor etwa 1 Jahr aktualisiert
- Status wurde von Abgewiesen zu Anerkannt geändert
Von Till Tepelmann vor etwa 1 Jahr aktualisiert
- Tracker wurde von GX-Abgewiesen zu GX-Bug geändert
- Status wurde von Anerkannt zu Testing geändert
- Betroffene Versionen 4.2.0.0, 4.2.0.1, 4.2.1.0, 4.2.1.0 beta1, 4.3.1.0, 4.3.1.0 RC1, 4.3.1.0 beta1, 4.3.1.0 beta2, 4.3.1.0 beta3, 4.3.2.0, 4.3.2.0 beta1, 4.3.2.1, 4.3.3.0, 4.3.3.0 beta1, 4.3.3.1, 4.4.0.0, 4.4.0.0 beta1, 4.4.0.1, 4.4.0.2, 4.4.0.3, 4.5.1.0 beta1, 4.5.1.0 beta2, 4.9.3.0 wurde hinzugefügt
Von Rico Schreiber vor 11 Monaten aktualisiert
- Tracker wurde von GX-Bug zu GX-Abgewiesen geändert
- Status wurde von Testing zu Abgewiesen geändert
- Betroffene Versionen
4.2.0.0, 4.2.0.1, 4.2.1.0, 4.2.1.0 beta1, 4.3.1.0, 4.3.1.0 RC1, 4.3.1.0 beta1, 4.3.1.0 beta2, 4.3.1.0 beta3, 4.3.2.0, 4.3.2.0 beta1, 4.3.2.1, 4.3.3.0, 4.3.3.0 beta1, 4.3.3.1, 4.4.0.0, 4.4.0.0 beta1, 4.4.0.1, 4.4.0.2, 4.4.0.3, 4.5.1.0 beta1, 4.5.1.0 beta2, 4.9.3.0wurde gelöscht