ACSD-67643 : entrées en double créées lors des mises à jour planifiées dans les environnements de catégories fortement imbriqués
Le correctif ACSD-67643 corrige le problème de création d’entrées en double lors des mises à jour planifiées dans les environnements comportant un grand nombre de catégories imbriquées. Ce correctif est disponible lorsque la version 1.1.71 de Quality Patches Tool (QPT) est installée. L’ID du correctif est ACSD-67643. 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.8-p1
Compatible avec les versions d’Adobe Commerce :
- Adobe Commerce (toutes les méthodes de déploiement) 2.4.8 - 2.4.8-p2
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
Des entrées en double se produisent lors de la création de mises à jour planifiées pour les environnements comportant un grand nombre de catégories imbriquées.
Procédure à suivre :
-
Générer des données d’exemple :
Utilisez un fichier d'installations de performance (par exemple :small.xml) avec les modifications suivantes :
Categories : 2 500 **
Products : 250 000 ** -
Exécutez la commande suivante :
code language-bash 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 des ancres en exécutant :
code language-sql UPDATE catalog_category_entity_int SET value = 1 WHERE attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'is_anchor'); -
Exécutez une réindexation complète.
-
Connectez-vous au serveur principal et ouvrez la page Categories.
-
Déplacez Catégorie 2 vers Catégorie 1 pour augmenter l’imbrication des arbres.
-
Accédez à la catégorie la plus imbriquée (par exemple : Catégorie 2.1.1).
-
Créez une Mise à jour planifiée et enregistrez la catégorie.
Résultats attendus :
La catégorie a été enregistrée.
Résultats réels :
Une Erreur 500 se produit et le message suivant s’affiche dans les journaux :
Magento\Framework\DB\Adapter\DuplicateException:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '6-165' for key 'PRIMARY',
query was: INSERT INTO `temp_category_descendants_68a35aea273fc` (`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, '/%')
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 .