ACP2E-4603: El reíndice de productos de Permisos de catálogo deja filas de índice de permisos obsoletas y el interbloqueo de MySQL
El parche ACP2E-4603 corrige el problema en el que la reindexación de productos de Permisos de catálogo deja sin cambios las filas de índice de permisos existentes, por lo que las concesiones de permisos de categorías actualizadas no se reflejan correctamente en los productos. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.79. El ID del parche es ACP2E-4603. 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-p3
Compatible con versiones de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.6 - 2.4.7-p9
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 reindexación de productos de Permisos de catálogo deja sin cambios las filas de índice de permisos existentes, por lo que las concesiones de permisos de categoría actualizadas no se reflejan correctamente en los productos.
Pasos a seguir:
-
Habilitar permisos de categoría:
- Inicie sesión en Admin.
- Ir a Stores > Configuration.
- En Catalog, seleccione Catalog.
- Expandir Category Permissions.
- Establezca Enable en Sí.
- Guarde la configuración.
-
Cree 50 o más grupos de clientes (Opción A u Opción B):
- Opción A — Administrador: Vaya a Customers > Customer Groups y seleccione Add New. Escriba un nombre de grupo (por ejemplo,
ACSD70034_01) y seleccione la clase de impuestos predeterminada, y después Save. Repita el proceso para crear 50 grupos o más. - Opción B (recomendada) — API de REST: Envíe una solicitud de POST a
/rest/V1/customerGroupscon el cuerpo de solicitud{"group":{"code":"ACSD70034_01","taxClassId":0}}. Repita el proceso para crear 50 grupos (ACSD70034_01hastaACSD70034_50).
- Opción A — Administrador: Vaya a Customers > Customer Groups y seleccione Add New. Escriba un nombre de grupo (por ejemplo,
-
Agregar permisos de categoría en Administración:
- Ir a Catalog > Categories.
- Edite entre 10 y 20 categorías o más para aumentar la reproducibilidad.
- En cada categoría, desplácese hasta Category Permissions y seleccione Add Permission.
- Seleccione un sitio web (por ejemplo, Sitio web principal) y asigne uno de los grupos de clientes creados anteriormente.
- Configure Grant Catalog Category View, Grant Product Price y Grant Checkout según sea necesario.
- Seleccione Save.
- Escala recomendada: Cree un conjunto de datos más grande (por ejemplo, 20 categorías y 20-50 grupos de clientes) para generar de 400 a 1.000 filas de permisos.
-
Asegúrese de que hay una sola tabla de índices (predeterminada):
- Vaya a Stores > Configuration > Catalog > Catalog > Category Permissions.
- Si aparece Dimensions o Indexer Dimensions, establézcalo en Ninguno (no en Grupo de clientes) para usar una sola tabla de índice.
-
Ejecute reindex con subprocesos paralelos desde la CLI:
- Exportar
MAGE_INDEXER_THREADS_COUNT=4. - Ejecutar
php bin/magento indexer:reset catalogpermissions_category catalogpermissions_product. - Ejecutar
php bin/magento indexer:reindex catalogpermissions_category catalogpermissions_product. - Repita los comandos reset y reindex 5-10 veces para reproducir el interbloqueo durante la ejecución en paralelo.
- Exportar
Resultados esperados:
El reindexado se completa correctamente con subprocesos paralelos y los permisos de categoría actualizados se reflejan correctamente en los productos de la tabla magento_catalogpermissions_index_product.
Resultados reales:
Se produce un error de interbloqueo de MySQL (1213) de forma intermitente durante el reindexado y los procesos secundarios fallan con errores que hacen referencia a REPLACE INTO en magento_catalogpermissions_index_replica o magento_catalogpermissions_index_product.
Incluso cuando el reindexado se completa sin errores, no actualiza las filas de índice de permisos existentes, por lo que los productos siguen reflejando concesiones de permisos de categorías antiguas.
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.