[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-68064: entradas duplicadas creadas durante actualizaciones programadas en entornos con categorías profundamente anidadas

El parche ACSD-68064 soluciona el problema de que la creación de actualizaciones programadas en entornos con un elevado número de categorías anidadas genera entradas duplicadas e impide que se guarden categorías. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.72. El ID del parche es ACSD-68064. 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.7-p6

Compatible con versiones de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.7 - 2.4.7-p7
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

La creación de actualizaciones programadas en entornos con un número elevado de categorías anidadas da como resultado entradas duplicadas, lo que provoca errores y no se puede guardar la categoría.

Pasos a seguir:

  1. Instale una instancia limpia.

  2. Modifique el archivo de correcciones de rendimiento (small.xml) para incluir:

    1. Categories: 2500
    2. Products: 250.000
  3. Genere los datos con el comando:

    code language-none
    bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml
    
  4. Después de crear productos y categorías, asegúrese de que todas las categorías estén configuradas como anclajes ejecutando la siguiente consulta:

    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. Reindexe los datos.

  6. Inicie sesión en el panel de administración y vaya a Catalog > Categories.

  7. Mueva Categoría 2 bajo Categoría 1 para crear una estructura más anidada.

  8. Vaya a una categoría anidada profundamente, por ejemplo, Categoría 2.1.1.

  9. Crear un Scheduled Update.

  10. Haga clic en Save.

Resultados esperados:

La categoría se ha guardado correctamente.

Resultados reales:

Se produce un error y la categoría no se puede guardar. var/log/exception.log contiene un error similar al siguiente:

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

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