Enriquece los catálogos de Magento sin romper su indexador

Muchos usuarios de Magento se enfrentan al mismo problema. Tienes miles de productos con atributos faltantes, descripciones pobres o sin traducciones.

Encontrar fuentes de datos es fácil. Lo difícil es introducir esos datos en tu catálogo sin que la tienda colapse.

El error común es utilizar un bucle simple para guardar los productos uno por uno.

Si utilizas el método de guardado del repositorio de productos en un bucle, activas un ciclo de vida completo para cada artículo. Ejecutas validaciones, observadores y disparadores de reindexación miles de veces. Esto hace que los scripts se ejecuten durante horas y ralentiza tu panel de administración drásticamente.

La ruta de guardado está diseñada para humanos que editan un solo producto. Es la herramienta incorrecta para actualizaciones masivas.

Sigue estos pasos para actualizar tu catálogo de forma segura:

  • Utiliza actualizaciones masivas de atributos. En lugar de guardar todo el modelo de producto, utiliza Magento\Catalog\Model\Product\Action. Usa el método updateAttributes para escribir directamente en las tablas de la base de datos. Hazlo en lotes de 1.000 a 2.000 IDs a la vez.

  • Cambia la configuración de tu indexador. Configura tus indexadores en Update by Schedule antes de empezar. Si utilizas Update on Save, cada escritura activará una reindexación síncrona. Con la programación, las escrituras van a un changelog y el trabajo de cron se encarga de ello.

  • Gestiona las traducciones correctamente. Una traducción es un valor de atributo para una vista de tienda (store view) específica. Pasa el ID de la tienda correcto al método updateAttributes. No sobrescribas tus valores predeterminados globales al añadir idiomas locales.

  • Gestiona el contenido de IA con cuidado. Los LLM escriben textos excelentes, pero a menudo alucinan hechos. Podrían decir que una camisa es de algodón cuando es de poliéster. • Escribe primero el contenido de la IA en un campo de preparación (staging field) o en un ámbito deshabilitado. • Revisa una pequeña muestra antes de lanzarlo. • Mantén las especificaciones técnicas, como dimensiones y materiales, provenientes de datos verificados.

Resumen para el enriquecimiento masivo:

  1. Configura los indexadores en modo programado.
  2. Utiliza un campo de preparación para los nuevos datos.
  3. Aplica las actualizaciones en lotes de 1.000 a 2.000 IDs.
  4. Evita la ruta completa de guardado de productos.
  5. Reindexa los cambios.
  6. Prueba una muestra de tus páginas de producto.

Las fuentes de datos son la parte fácil. Gestionar un catálogo en vivo requiere un enfoque diferente.

Fuente: https://dev.to/iamrobindhiman/enriching-a-large-magento-catalog-without-melting-the-indexer-3mk9