ACSD-68064 : entrées en double créées lors des mises à jour planifiées dans les environnements comportant des catégories profondément imbriquées
Le correctif ACSD-68064 corrige le problème en raison duquel la création de mises à jour planifiées dans des environnements comportant un grand nombre de catégories imbriquées entraîne des entrées en double et empêche l’enregistrement des catégories. Ce correctif est disponible lorsque la version 1.1.72 de Quality Patches Tool (QPT) est installée. L’ID du correctif est ACSD-68064. Notez que ce problème doit être résolu dans Adobe Commerce 2.4.9.
Produits et versions concernés
Le correctif est créé pour la version Adobe Commerce :
- Adobe Commerce (toutes les méthodes de déploiement) 2.4.7-p6
Compatible avec les versions d’Adobe Commerce :
- Adobe Commerce (toutes les méthodes de déploiement) 2.4.7 - 2.4.7-p7
magento/quality-patches vers la dernière version et vérifiez la compatibilité sur la page Quality Patches Tool : Rechercher des correctifs. Utilisez l’ID du correctif comme mot-clé de recherche pour localiser le correctif.Problème
La création de mises à jour planifiées dans des environnements comportant un grand nombre de catégories imbriquées entraîne des entrées en double, ce qui entraîne des erreurs et l’échec de l’enregistrement de la catégorie.
Procédure à suivre :
-
Installez une instance propre.
-
Modifiez le fichier d'appareils de performance (small.xml) pour inclure :
- Categories : 2500
- Products : 250 000 **
-
Générez les données à l'aide de la commande :
code language-none bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
Après avoir créé des produits et des catégories, assurez-vous que toutes les catégories sont définies comme ancres en exécutant la requête suivante :
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'); -
Réindexez les données.
-
Connectez-vous au panneau d’administration et accédez à Catalog > Categories.
-
Déplacez Catégorie 2 sous Catégorie 1 pour créer une structure plus imbriquée.
-
Accédez à une catégorie profondément imbriquée, par exemple Catégorie 2.1.1.
-
Créez un Scheduled Update.
-
Cliquez sur Save.
Résultats attendus :
La catégorie a été enregistrée.
Résultats réels :
Une erreur se produit et l’enregistrement de la catégorie échoue. var/log/exception.log contient l’erreur et est similaire à :
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 .......
Application du correctif
Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre méthode de déploiement :
- Adobe Commerce ou Magento Open Source On-premise : Quality Patches Tool > Utilisation dans le guide de Quality Patches Tool.
- Adobe Commerce sur les infrastructures cloud : Mises à niveau et correctifs > Appliquer des correctifs dans le guide Commerce sur les infrastructures cloud .
Lecture connexe
Pour en savoir plus sur Quality Patches Tool, consultez :
- Quality Patches Tool : un outil en libre-service pour les correctifs de qualité dans le guide Outils .