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 fast 4 Jahren hinzugefügt. Vor fast 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 fast 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 fast 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 fast 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 fast 4 Jahren aktualisiert

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

Aktionen #5

Von Ulrich Wenk vor fast 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 fast 4 Jahren aktualisiert

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

Von Moritz Bunjes vor fast 4 Jahren aktualisiert

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

Von Moritz Bunjes vor fast 4 Jahren aktualisiert

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

Von Ronald Loyko vor fast 4 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
Aktionen

Auch abrufbar als: Atom PDF