[Solo PaaS]{class="badge informative" title="Se aplica solo a proyectos de Adobe Commerce en la nube (infraestructura PaaS administrada por Adobe) y a proyectos locales."}

ACSD-67643: entradas duplicadas creadas durante actualizaciones programadas en entornos de categoría anidados

El parche ACSD-67643 corrige el problema en el que se crean entradas duplicadas durante las actualizaciones programadas en entornos con un alto número de categorías anidadas. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.71. El ID del parche es ACSD-67643. Este problema está programado para solucionarse en Adobe Commerce 2.4.9.

Productos y versiones afectados

El parche se ha creado para la versión de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.8-p1

Compatible con versiones de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.8 - 2.4.8-p2
NOTE
El parche podría ser aplicable a otras versiones con las nuevas versiones de Quality Patches Tool. Para comprobar si el parche es compatible con su versión de Adobe Commerce, actualice el paquete magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches ​. Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.

Problema

Las entradas duplicadas se producen al crear actualizaciones programadas para entornos que tienen un gran número de categorías anidadas.

Pasos a seguir:

  1. Generar datos de ejemplo:
    Usar un archivo de correcciones de rendimiento (por ejemplo: small.xml) con modificaciones:
    Categories: 2.500
    Products: 250.000

  2. Ejecute el siguiente comando:

    code language-bash
    bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml
    
  3. Después de crear productos y categorías, asegúrese de que todas las categorías sean anclajes ejecutando:

    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. Ejecute un reindexado completo.

  5. Inicie sesión en el servidor y abra la página Categories.

  6. Mueva Categoría 2 a Categoría 1 para aumentar el anidamiento del árbol.

  7. Vaya a la categoría más anidada (por ejemplo: Categoría 2.1.1).

  8. Cree una actualización programada y guarde la categoría.

Resultados esperados:

La categoría se ha guardado correctamente.

Resultados reales:

Se produce un error 500 y se muestra el siguiente mensaje en los registros:

    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, '/%')

Aplicar el parche

Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:

Lectura relacionada

Para obtener más información sobre Quality Patches Tool, consulte:

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