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
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:
-
Instale una instancia limpia.
-
Modifique el archivo de correcciones de rendimiento (small.xml) para incluir:
- Categories: 2500
- Products: 250.000
-
Genere los datos con el comando:
code language-none bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
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'); -
Reindexe los datos.
-
Inicie sesión en el panel de administración y vaya a Catalog > Categories.
-
Mueva Categoría 2 bajo Categoría 1 para crear una estructura más anidada.
-
Vaya a una categoría anidada profundamente, por ejemplo, Categoría 2.1.1.
-
Crear un Scheduled Update.
-
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:
- Adobe Commerce o Magento Open Source local: Quality Patches Tool > Uso en la guía Quality Patches Tool.
- Adobe Commerce en la infraestructura de la nube: Actualizaciones y parches > Aplicar parches en la guía Commerce en la infraestructura de la nube.
Lectura relacionada
Para obtener más información sobre Quality Patches Tool, consulte:
- Quality Patches Tool: herramienta de autoservicio para parches de calidad en la guía Herramientas.