Projekt

Allgemein

Aktionen

GX-Abgewiesen #69219

geschlossen

Man kann keine Artikel aus dem Warenkorb löschen, wenn die selben Optionswerte unterschiedlichen Optionen zugeordnet sind

Von Till Tepelmann vor mehr als 3 Jahren hinzugefügt. Vor 11 Monaten aktualisiert.

Status:
Abgewiesen
Priorität:
Normal
Zugewiesen an:
-
Kategorie:
Checkout
Zielversion:
-
Beginn:
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:
Steps to reproduce:
Release Notes Langtext:

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:

  1. Artikel anlegen
  2. Option "Farbe" anlegen
  3. Option "Metallfarbe" anlegen
  4. Optionswerte "rot", "grün" "blau" anlegen
  5. 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
  6. Einem Artikel die Farbe mit den Optionen zuweisen
  7. Einem anderen Artikel die "Metallfarbe" mit den gleichen Optionen zuweisen
  8. Den Artikel in den Korb legen
  9. 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:

  1. create product
  2. create option "color
  3. create option "metal color
  4. create option values "red", "green" "blue
  5. 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
  6. assign the color with the options to one product
  7. assign the "Metal color" with the same options to another product
  8. put the product into the basket
  9. 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

Aktionen #1

Von Till Tepelmann vor mehr als 3 Jahren aktualisiert

Aktionen #2

Von Till Tepelmann vor mehr als 3 Jahren aktualisiert

  • Status wurde von Gemeldet zu Testing geändert
  • Release Notes Langtext aktualisiert (Vergleich)
Aktionen #3

Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert

  • Zielversion 133 wurde gelöscht
Aktionen #4

Von Lennard Kläfker vor mehr als 3 Jahren aktualisiert

  • Tags wurde auf 4.5.2 gesetzt
Aktionen #5

Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert

  • Zugewiesen an wurde auf Moritz Bunjes gesetzt
Aktionen #7

Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert

  • Zugewiesen an Moritz Bunjes wurde gelöscht
Aktionen #8

Von Mirko Janssen vor mehr als 3 Jahren aktualisiert

  • Zugewiesen an wurde auf Mirko Janssen gesetzt
Aktionen #9

Von Mirko Janssen vor mehr als 3 Jahren aktualisiert

  • Zugewiesen an Mirko Janssen wurde gelöscht
Aktionen #10

Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert

  • Zugewiesen an wurde auf Marvin Muxfeld gesetzt
Aktionen #11

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
Aktionen #12

Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert

  • Tags 4.5.2 wurde gelöscht
  • Zugewiesen an wurde von Lennard Kläfker zu Till Tepelmann geändert
Aktionen #14

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 Tepelmann wurde 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 beta2 wurde gelöscht
Aktionen #15

Von Till Tepelmann vor etwa 1 Jahr aktualisiert

  • Status wurde von Abgewiesen zu Anerkannt geändert
Aktionen #16

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
Aktionen #17

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.0 wurde gelöscht
Aktionen