[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-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
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

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 :

  1. Installez une instance propre.

  2. Modifiez le fichier d'appareils de performance (small.xml) pour inclure :

    1. Categories : 2500
    2. Products : 250 000 **
  3. 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
    
  4. 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');
    
  5. Réindexez les données.

  6. Connectez-vous au panneau d’administration et accédez à Catalog > Categories.

  7. Déplacez Catégorie 2 sous Catégorie 1 pour créer une structure plus imbriquée.

  8. Accédez à une catégorie profondément imbriquée, par exemple Catégorie 2.1.1.

  9. Créez un Scheduled Update.

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

Lecture connexe

Pour en savoir plus sur Quality Patches Tool, consultez :

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