ACSD-68064: voci duplicate create durante gli aggiornamenti pianificati in ambienti con categorie profondamente nidificate
La patch ACSD-68064 risolve il problema relativo alla creazione di aggiornamenti pianificati in ambienti con un numero elevato di categorie nidificate, che si traduce in voci duplicate e impedisce il salvataggio delle categorie. Questa patch è disponibile quando è installato Quality Patches Tool (QPT) 1.1.72. L’ID della patch è ACSD-68064. Questo problema è pianificato per la risoluzione in Adobe Commerce 2.4.9.
Prodotti e versioni interessati
La patch è stata creata per la versione di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.7-p6
Compatibile con le versioni di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.7 - 2.4.7-p7
magento/quality-patches alla versione più recente e verificare la compatibilità nella pagina Quality Patches Tool: Cerca patch. Utilizza l’ID patch come parola chiave di ricerca per individuare la patch.Problema
La creazione di aggiornamenti pianificati in ambienti con un numero elevato di categorie nidificate genera voci duplicate, causando errori e il mancato salvataggio della categoria.
Passaggi da riprodurre:
-
Installa un’istanza pulita.
-
Modificare il file degli staffaggi delle prestazioni (small.xml) in modo che includa:
- Categories: 2500
- Products: 250.000
-
Genera i dati utilizzando il comando:
code language-none bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
Dopo aver creato prodotti e categorie, assicurati che tutte le categorie siano impostate come ancoraggi eseguendo la seguente query:
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'); -
Reindicizzare i dati.
-
Accedere al pannello di amministrazione e passare a Catalog > Categories.
-
Sposta Categoria 2 in Categoria 1 per creare una struttura nidificata.
-
Passare a una categoria annidata in modo profondo, ad esempio Categoria 2.1.1.
-
Crea un Scheduled Update.
-
Fare clic su Save.
Risultati previsti:
La categoria è stata salvata correttamente.
Risultati effettivi:
Si verifica un errore e la categoria non viene salvata. var/log/exception.log contiene un errore simile a:
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 .......
Applicare la patch
Per applicare singole patch, utilizzare i collegamenti seguenti, a seconda del metodo di distribuzione utilizzato:
- Adobe Commerce o Magento Open Source on-premise: Quality Patches Tool > Utilizzo nella guida di Quality Patches Tool.
- Adobe Commerce su infrastruttura cloud: Aggiornamenti e patch > Applica patch nella guida Commerce su infrastruttura cloud.
Lettura correlata
Per ulteriori informazioni su Quality Patches Tool, vedere:
- Quality Patches Tool: strumento self-service per patch di qualità nella guida degli strumenti.