[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

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
NOTE
Le correctif peut s’appliquer à d’autres versions avec de nouvelles versions de Quality Patches Tool. Pour vérifier si le correctif est compatible avec votre version d’Adobe Commerce, mettez à jour le package 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 :

  1. 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 **

  2. Exécutez la commande suivante :

    code language-bash
    bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml
    
  3. 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');
    
  4. Exécutez une réindexation complète.

  5. Connectez-vous au serveur principal et ouvrez la page Categories.

  6. Déplacez Catégorie 2 vers Catégorie 1 pour augmenter l’imbrication des arbres.

  7. Accédez à la catégorie la plus imbriquée (par exemple : Catégorie 2.1.1).

  8. 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 :

Lecture connexe

Pour en savoir plus sur Quality Patches Tool, consultez :

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