[Nur PaaS]{class="badge informative" title="Gilt nur für Adobe Commerce in Cloud-Projekten (von Adobe verwaltete PaaS-Infrastruktur) und lokale Projekte."}

ACSD-68064: Doppelte Einträge, die bei geplanten Aktualisierungen in Umgebungen mit tief verschachtelten Kategorien erstellt werden

Mit dem Patch ACSD-68064 wird das Problem behoben, dass das Erstellen geplanter Aktualisierungen in Umgebungen mit einer hohen Anzahl verschachtelter Kategorien zu doppelten Einträgen führt und das Speichern von Kategorien verhindert. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.72 installiert ist. Die Patch-ID ist ACSD-68064. Dieses Problem wird voraussichtlich in Adobe Commerce 2.4.9 behoben.

Betroffene Produkte und Versionen

Der Patch wird für die Adobe Commerce-Version erstellt:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.7-p6

Kompatibel mit Adobe Commerce-Versionen:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.7 - 2.4.7-p7
NOTE
Der Patch könnte mit neuen Quality Patches Tool-Versionen auch für andere Versionen gelten. Um zu überprüfen, ob der Patch mit Ihrer Adobe Commerce-Version kompatibel ist, aktualisieren Sie das magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.

Problem

Das Erstellen geplanter Aktualisierungen in Umgebungen mit einer hohen Anzahl verschachtelter Kategorien führt zu doppelten Einträgen, was zu Fehlern und zum Fehlschlagen des Speicherns der Kategorie führt.

Schritte zur Reproduktion:

  1. Installieren Sie eine neue Instanz.

  2. Ändern Sie die Datei Performance Fixtures (small.xml), um Folgendes einzuschließen:

    1. Categories: 2500
    2. Products: .000
  3. Generieren Sie die Daten mit dem Befehl :

    code language-none
    bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml
    
  4. Stellen Sie nach dem Erstellen von Produkten und Kategorien sicher, dass alle Kategorien als Anker festgelegt sind, indem Sie die folgende Abfrage ausführen:

    code language-none
    UPDATE catalog_category_entity_int set value = 1 where attribute_id = (select attribute_id from eav_attribute where attribute_code = 'is_anchor');
    
  5. Indizieren Sie die Daten neu.

  6. Melden Sie sich beim Admin-Bedienfeld an und navigieren Sie zu Catalog > Categories.

  7. Verschieben Sie Kategorie 2 unter Kategorie 1, um eine stärker verschachtelte Struktur zu erstellen.

  8. Wechseln Sie zu einer tief verschachtelten Kategorie, z. B. Kategorie 2.1.1.

  9. Erstellen Sie eine Scheduled Update.

  10. Klicken Sie auf Save.

Erwartete Ergebnisse:

Die Kategorie wurde gespeichert.

Tatsächliche Ergebnisse:

Ein Fehler tritt auf und die Kategorie kann nicht gespeichert werden. var/log/exception.log enthält einen Fehler, der in etwa folgendermaßen lautet:

Exception #0 (Magento\Framework\DB\Adapter\DuplicateException): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '229-255' for key 'temp_category_descendants_619aaaaaaaaaa.PRIMARY', query was: INSERT INTO `temp_category_descendants_619aaaaaaaaaa` (`category_id`, `descendant_id`) SELECT `ce`.`entity_id` AS `category_id`, `ce2`.`entity_id` AS `descendant_id` FROM `catalog_category_entity` AS `ce`
 INNER JOIN `catalog_category_entity` AS `ce2` ON ce2.path LIKE CONCAT(ce.path, '/%') OR ce2.entity_id = ce.entity_id AND (ce2.created_in <= '1750287600' AND ce2.updated_in > '1750287600') WHERE ((ce.entity_id IN (4, 6, 7, 8, 10, 24, 25, 27, 30, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 48, 51, 54, 56, 57, 59, 60, 63, 64, 65, 66, 67 .......

Patch anwenden

Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:

Verwandtes Lesen

Weitere Informationen zu Quality Patches Tool finden Sie unter:

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3