Projekt

Allgemein

Profil

Aktionen

GX-Bug #67138

geschlossen

Das hinzufügen von unterschiedlichen Artikeln in den Warenkorb und Merkzettel führt teilweise zur Hinzufügung des immer gleichen Artikels

Von Wilken Haase vor mehr als 4 Jahren hinzugefügt. Vor mehr als 4 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Sofort
Zugewiesen an:
Ronald Loyko
Kategorie:
Core
Zielversion:
% erledigt:

0%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
4.1.1.1
Release Notes Langtext:

Das Hinzufügen unterschiedlicher Artikel zum Warenkorb und Merkzettel funktioniert wieder zuverlässig


Beschreibung

Das Problem tritt vor allem bei einfachen Artikeln ohne Eigenschaften oder Attributen auf



Zugehörige Tickets

Beziehung mit GX-Entwicklung - GX-Abgewiesen #67130: Artikel ohne Artikelbild verursachen viele Probleme im MerkzettelAbgewiesenMoritz Bunjes

Aktionen
Aktionen #1

Von Timo Backhaus vor mehr als 4 Jahren aktualisiert

public function sanitizeProductidentifier(string $identifier): string
    {                                
        $propertyPart                = strrchr($identifier, 'x');
        $identifierWithoutPropertyId = $propertyPart ? substr($identifier, 0, strlen($propertyPart) * -1) : $identifier;
        $identifierParts             = str_replace('}', '{', $identifierWithoutPropertyId);
        $identifierParts             = explode('{', $identifierParts);

        foreach ($this->contents as $contentIdentifier => $value) {
            $matches                            = 0;
            $contentIdentifierPropertyPart      = strrchr($contentIdentifier, 'x');
            $contentIdentifierWithoutPropertyId = $contentIdentifierPropertyPart ? substr($contentIdentifier,
                                                                                          0,
                                                                                          strlen($contentIdentifierPropertyPart)
                                                                                          * -1) : $contentIdentifier;
            $contentIdentifierParts             = str_replace('}', '{', $contentIdentifierWithoutPropertyId);
            $contentIdentifierParts             = explode('{', $contentIdentifierParts);

            if ($propertyPart !== false && $contentIdentifierPropertyPart !== false && $propertyPart !== $contentIdentifierPropertyPart) {
                continue;
            }

            if ($contentIdentifierParts[0] === $identifierParts[0]) {
                for ($i = 1; $i < count($contentIdentifierParts); $i += 2) {
                    for ($j = 1; $j < count($identifierParts); $j += 2) {
                        if ($contentIdentifierParts[$i] === $identifierParts[$j]
                            && $contentIdentifierParts[$i + 1] === $identifierParts[$j + 1]) {
                            $matches++;
                        }
                    }
                }
            }

            if ($matches > 0 && $matches === (count($contentIdentifierParts) - 1) / 2) {   
                return $contentIdentifier;
            }
        }

        return $identifier;
    }

2 Korrekturen:

if ($propertyPart !== false && $contentIdentifierPropertyPart !== false && $propertyPart !== $contentIdentifierPropertyPart) {

Die Prüfung auf Eigenschaften war fehlerhaft. Die Inhaltsprüfung darf nur erfolgen, wenn beide Vergleichsartikel Eigenschaften besitzen ( !== false)

2.

if ($matches > 0 && $matches === (count($contentIdentifierParts) - 1) / 2) {   

$matches ist standardmäßig 0 und wird bei jedem Attributtreffer hochgezählt. Die Rückgabe einer gefundenen Attributartikelnummer darf nur erfolgen, wenn $matches größer 0 ist. Beim aktuellen Verhalten ist die Bedingung bei Artikeln ohne Attribute immer erfüllt, wodurch der erste Artikel aus dem Warenkorb als Treffer erkennt wird.

Aktionen #2

Von Wilken Haase vor mehr als 4 Jahren aktualisiert

  • Thema wurde von Das hinzufügen von unterschiedlichen Artikeln in den Warenkorb führt teilweise zur Hinzufügung des immer gleichen Artikels zu Das hinzufügen von unterschiedlichen Artikeln in den Warenkorb und Merkzettel führt teilweise zur Hinzufügung des immer gleichen Artikels geändert
Aktionen #3

Von Moritz Bunjes vor mehr als 4 Jahren aktualisiert

  • Status wurde von Gemeldet zu Testing geändert
  • Zielversion wurde von 133 zu 4.1.1.2 geändert
  • Release Notes Langtext aktualisiert (Vergleich)
Aktionen #4

Von Moritz Bunjes vor mehr als 4 Jahren aktualisiert

Der Lösungsvorschlag von Timo ist ebenso fehlerhaft. Die richtige Korrektur ist im Commit.

Aktionen #5

Von Ulrich Wenk vor mehr als 4 Jahren aktualisiert

  • Beziehung mit GX-Abgewiesen #67130: Artikel ohne Artikelbild verursachen viele Probleme im Merkzettel wurde hinzugefügt
Aktionen #6

Von Ronald Loyko vor mehr als 4 Jahren aktualisiert

  • Zugewiesen an wurde von Core-Entwickler zu Ronald Loyko geändert
Aktionen #7

Von Moritz Bunjes vor mehr als 4 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
Aktionen #8

Von Moritz Bunjes vor mehr als 4 Jahren aktualisiert

  • Status wurde von Erledigt zu Testing geändert
Aktionen #9

Von Ronald Loyko vor mehr als 4 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
Aktionen

Auch abrufbar als: Atom PDF