Módulo Export Import Categories para Magento 2
Requiere cambios en la plantilla
No
Pequeños cambios
Cambios significativos
Se requieren conocimientos de programación
No
Básico
Avanzado
Dificultad de configuración
Repercusión en el rendimiento
Compatibilidad con los estándares de Magento
Kowal_ExportImportCategories es un módulo Magento 2 que permite exportar e importar atributos de categorías en formato CSV teniendo en cuenta el store view seleccionado. La extensión se ha preparado para tiendas que trabajan con varias versiones de idioma, múltiples vistas de tienda o que necesitan actualizar masivamente los datos de categorías sin editar manualmente cada categoría en el panel de administración.
El módulo permite exportar categorías a un archivo CSV, modificar los atributos seleccionados fuera de Magento y, a continuación, volver a importar los datos en modo de actualización de categorías existentes o de creación de nuevas categorías. La importación funciona sobre el store view indicado, lo que permite preparar cómodamente traducciones de nombres, descripciones, meta tags, URL y otros atributos de categoría.
Para quién es este módulo
El módulo está destinado a:
- tiendas Magento 2 con varias versiones de idioma,
- equipos de contenido que trabajan con hojas CSV,
- agencias que despliegan catálogos de categorías entre entornos,
- administradores que necesitan actualizar masivamente nombres, descripciones, metadatos y URL de categorías,
- tiendas que tienen atributos de categoría propios y quieren gestionarlos de forma masiva,
- proyectos en los que los datos de categorías se preparan fuera de Magento, por ejemplo, por traductores, el departamento SEO o un sistema PIM.
Funciones principales
- Exportación de categorías a CSV para el
store viewseleccionado. - Importación de categorías desde CSV para el
store viewseleccionado. - Modo de actualización de categorías existentes:
update. - Modo de creación de nuevas categorías:
insert. - Selección de atributos exportados a CSV.
- Selección de atributos importados desde CSV.
- Columnas de sistema automáticas necesarias para identificar categorías.
- Validación de encabezados CSV antes de la importación.
- Validación de nombres de columnas frente a los atributos reales de categorías Magento.
- Compatibilidad con atributos de categoría propios añadidos en Magento.
- Compatibilidad con valores de texto para todos los atributos.
- Compatibilidad con atributos
selectymultiselectpor labels de opción. - Posibilidad de trabajar con valores visibles en el store view o solo con sobrescrituras del store view.
- Modo
dry-run, es decir, validación completa de la importación sin guardar datos. - Política de valores vacíos.
- Estrategias de gestión de
url_key. - Creación opcional de permanent redirect al cambiar la URL de la categoría.
- Compatibilidad con rutas a imágenes de categorías.
- Batch processing para archivos más grandes.
- Políticas de gestión de errores.
- Informe de importación en CSV.
- Historial de importaciones en el panel de administración.
Exportación de categorías
La exportación permite generar un archivo CSV con categorías para el store view seleccionado. El administrador elige la vista de tienda y los atributos de categoría que deben incluirse en el archivo. El módulo añade automáticamente las columnas de sistema necesarias para identificar las categorías y conservar la estructura del árbol.
La exportación se puede utilizar para:
- preparar traducciones de categorías,
- auditar datos de categorías,
- corregir masivamente metadatos SEO,
- comparar valores entre store views,
- preparar un archivo para importarlo en el mismo entorno o en otro,
- archivar los datos actuales de categorías antes de realizar cambios.
Alcance de la exportación
La exportación incluye atributos de categorías. El módulo no exporta productos asignados a categorías. Tampoco realiza operaciones de eliminación de categorías.
El administrador puede seleccionar:
Store View,- categoría inicial,
- atributos para exportar,
- separador CSV,
- modo de valores de store view.
Modos de valores de store view en la exportación
El módulo admite dos modos de exportación de valores:
resolved_value- se exporta el valor visible en unstore viewdeterminado, es decir, teniendo en cuenta el fallback de Magento al valor predeterminado.store_override_only- se exporta solo el valor sobrescrito directamente para unstore viewdeterminado; si el valor se hereda, la celda CSV queda vacía.
El modo resolved_value resulta práctico para el trabajo editorial, porque muestra el valor real visible en la tienda. El modo store_override_only es útil cuando se necesita controlar únicamente traducciones o sobrescrituras específicas de una vista de tienda determinada.
Importación de categorías
La importación permite cargar un archivo CSV y guardar los atributos de categoría seleccionados para el store view indicado. El store view elegido en el formulario de importación es prioritario, y la columna store_view_code del CSV se utiliza para validar si el archivo coincide con la vista de tienda seleccionada.
La importación se puede utilizar para:
- traducir categorías,
- actualizar nombres de categorías,
- actualizar descripciones de categorías,
- actualizar meta tags,
- actualizar
url_key, - crear nuevas categorías,
- importar atributos de categoría propios,
- actualizar atributos de menú y visibilidad,
- importar rutas de imágenes de categorías.
Modo update
El modo update actualiza categorías existentes. El módulo no crea nuevas categorías en este modo.
La categoría se busca principalmente por entity_id. Si entity_id no está disponible, el módulo puede utilizar category_path, siempre que la ruta identifique de forma inequívoca una única categoría.
El modo update se recomienda para:
- traducciones de categorías entre store views,
- correcciones SEO,
- actualizaciones de descripciones,
- actualizaciones de nombres,
- cambios de valores de atributos de categoría propios.
Ejemplo de escenario de traducción:
- Exportación de categorías desde el store view base.
- Cambio de
store_view_codeen el CSV al código del store view de destino. - Conservación de los mismos
entity_id. - Completar traducciones en las columnas
name,description,meta_title,meta_description. - Importación en modo
updatepara el store view de destino.
En esta variante, el módulo guarda los atributos seleccionados en el contexto del store_id numérico elegido en el formulario de importación.
Modo insert
El modo insert crea nuevas categorías. En este modo, entity_id no es obligatorio, porque Magento lo asigna automáticamente.
La nueva categoría debe tener indicado el padre mediante:
parent_entity_id,- o
parent_path.
El modo insert se recomienda para:
- crear nuevas estructuras de categorías,
- mover el árbol de categorías entre entornos,
- preparar categorías en una hoja CSV,
- crear categorías a partir de datos externos.
Si la importación contiene tanto el padre como el hijo, los datos deben estar ordenados desde las categorías de nivel superior hasta las categorías de nivel inferior.
Formato CSV
La primera fila del archivo CSV debe contener los encabezados de columna. Las columnas se dividen en:
- columnas de sistema,
- columnas de atributos de categoría.
Las columnas de atributos deben corresponder a los códigos de atributos Magento, por ejemplo:
name,url_key,description,meta_title,meta_description,is_active,include_in_menu.
Columnas de sistema
El módulo utiliza las siguientes columnas de sistema:
store_view_code,entity_id,parent_entity_id,category_path,parent_path,level,position,attribute_set_id.
Las columnas de sistema no se tratan como atributos EAV. Sirven para identificar categorías, validar el store view y reconstruir la estructura del árbol.
Ejemplo de CSV para actualización
store_view_code,entity_id,category_path,name,url_key,is_active,include_in_menu,meta_titlepl,13,Default Category/Gear/Bags,Torby,torby,1,1,Torbypl,14,Default Category/Gear/Fitness Equipment,Sprzet fitness,sprzet-fitness,1,1,Sprzet fitnessEjemplo de CSV para crear categorías
store_view_code,parent_entity_id,parent_path,category_path,name,url_key,is_active,include_in_menudefault,12,Default Category/Gear,Default Category/Gear/Helmets,Helmets,helmets,1,1default,12,Default Category/Gear,Default Category/Gear/Gloves,Gloves,gloves,1,1Trabajo con atributos de texto
El módulo guarda los valores en CSV como texto. Gracias a ello, el archivo se puede editar en una hoja de cálculo, enviar a un traductor o preparar automáticamente en un sistema externo.
Para los atributos de tipo select y multiselect, el módulo trabaja con labels de opción, no con los ID técnicos de opción. Esto significa que en el CSV se muestran valores legibles, como Products only, Position o Price.
Para multiselect, varios valores se separan con el separador |.
Ejemplo:
store_view_code,entity_id,category_path,display_mode,available_sort_by,default_sort_bydefault,13,Default Category/Gear/Bags,Products only,Position|Product Name|Price,PositionSi el label de la opción no existe o no es inequívoco, la importación mostrará un error de validación.
Política de valores vacíos
Durante la importación, el administrador elige cómo interpretar las celdas CSV vacías:
skip_empty- una celda vacía no cambia el valor existente.clear_value- una celda vacía limpia el valor del atributo para el store view seleccionado.use_default- una celda vacía elimina la sobrescritura del store view y permite que Magento utilice el valor predeterminado.
De forma predeterminada, la variante recomendada para actualizaciones es skip_empty, porque limita el riesgo de borrar datos accidentalmente.
Gestión de URL de categorías
El módulo permite configurar la estrategia de gestión de url_key:
use_csv_value- utiliza el valor del CSV.generate_from_name- generaurl_keya partir del atributoname.keep_existing- en modoupdate, conserva elurl_keyactual.magento_default- deja la gestión de URL al mecanismo estándar de Magento.
El administrador también puede decidir si al cambiar url_key se deben crear permanent redirects.
Esta configuración es especialmente importante en las traducciones, porque distintas tiendas pueden aplicar estrategias diferentes:
- URL traducidas para cada idioma,
- URL compartidas entre versiones de idioma,
- URL generadas automáticamente a partir de los nombres de categorías,
- URL SEO gestionadas manualmente.
Imágenes de categorías
El módulo puede importar atributos de imágenes de categorías si se seleccionan las columnas correspondientes para la importación.
Directorio fuente predeterminado:
pub/media/import/categoriesEn el CSV se indica una ruta de texto relativa a este directorio, por ejemplo:
gear/bags.jpgEl módulo valida la existencia del archivo y la extensión. Se admiten formatos gráficos seguros, como:
jpg,jpeg,png,webp,gif.
Modo dry-run
El modo dry-run permite ejecutar la validación de la importación sin guardar datos en Magento.
En este modo, el módulo:
- lee el CSV,
- valida los encabezados,
- valida el store view,
- comprueba la existencia de categorías o padres,
- comprueba los atributos,
- mapea valores
selectymultiselect, - comprueba las imágenes,
- genera un informe de errores y advertencias,
- no guarda categorías.
Es el primer paso recomendado antes de cualquier importación de mayor tamaño.
Batch processing
La importación funciona por lotes. El tamaño del batch se puede configurar en el formulario de importación.
Valor predeterminado:
100 wierszyEl batch processing reduce el riesgo de timeouts y de consumo excesivo de memoria con archivos más grandes.
Política de errores
El módulo admite tres variantes de comportamiento ante errores:
skip_invalid_rows- las filas incorrectas se omiten y las correctas se siguen importando.stop_on_first_error- la importación se detiene tras el primer error.all_or_nothing- si cualquier fila contiene un error, los datos no se guardan.
La variante recomendada para importaciones grandes es skip_invalid_rows, porque permite procesar los datos correctos y obtener un informe de problemas para las filas restantes.
Informes e historial de importaciones
Después de la importación, el módulo genera un informe CSV que contiene:
- número de fila,
- identificador de categoría,
- estado,
- mensaje,
- lista de atributos modificados.
El historial de importaciones está disponible en el panel de administración. El administrador puede comprobar:
- fecha de importación,
- usuario administrador,
- store view,
- modo de importación,
- nombre del archivo,
- número de filas,
- número de éxitos,
- número de errores,
- información sobre si la importación se ejecutó como
dry-run, - descargar el informe de importación.
Seguridad
El módulo utiliza ACL Magento y añade permisos independientes para la exportación, la importación y el historial de importaciones.
La importación está protegida mediante:
- validación de encabezados,
- validación de códigos de atributos,
- validación de store view,
- validación de columnas obligatorias,
- validación de tipos de valores,
- validación de labels de opciones,
- validación de archivos de imagen,
- notificación de errores por fila.
El módulo no elimina categorías ni importa productos asignados a categorías.
Usos habituales
Traducciones de categorías
Exportas categorías desde el store view base, completas las traducciones en el CSV, cambias store_view_code al código del store view de destino e importas los datos en modo update.
Actualización SEO masiva
Exportas los atributos meta_title, meta_description, url_key, los editas en CSV e importas solo las columnas seleccionadas.
Creación de una nueva estructura de categorías
Preparas un archivo CSV con category_path, parent_path, name y otros atributos necesarios, y luego lo importas en modo insert.
Actualización de atributos de categoría propios
Si la tienda tiene atributos de categoría propios, el módulo los obtiene dinámicamente desde EAV y permite seleccionarlos tanto en la exportación como en la importación.
Ubicación en el panel Magento
Después de la instalación, el módulo está disponible en:
System > Data Transfer > Export/Import CategoriesVistas disponibles:
Export Categories,Import Categories,Import History.
Instrucciones de instalación y configuración del módulo Kowal_ExportImportCategories
Este documento describe la instalación, configuración y uso del módulo Kowal_ExportImportCategories para Magento 2. La guía incluye información del archivo README.md y las funciones implementadas en el módulo.
Requisitos
- Magento 2.
- PHP compatible con la instalación de Magento, se recomienda PHP
8.1o superior. - Acceso a CLI Magento.
- Acceso a Composer.
- Permisos de administrador Magento.
- Acceso al repositorio del módulo.
- Para la importación de imágenes: posibilidad de colocar archivos en el directorio
pub/media/import/categories.
Instalación mediante Composer
El módulo está disponible a través del repositorio Composer.
1. Añade el repositorio Composer
composer config repositories.export.import.categories vcs https://github.com/kowalco/export-import-categories2. Añade el token de acceso al repositorio privado de GitHub
Si el repositorio es privado, configura el token de GitHub:
composer config --global --auth github-oauth.github.com Sustituye por tu propio token de acceso.
3. Instala el módulo
composer require kowal/module-export-import-categories4. Activa el módulo en Magento
bin/magento module:enable Kowal_ExportImportCategories5. Ejecuta la actualización de Magento
bin/magento setup:upgrade6. Limpia la caché
bin/magento cache:flush7. Opcionalmente, ejecuta la compilación DI
En entornos de producción o en modo production:
bin/magento setup:di:compile8. Opcionalmente, despliega los recursos estáticos
Si el entorno lo requiere:
bin/magento setup:static-content:deploybin/magento cache:flushInstalación manual en app/code
Como alternativa, el módulo se puede colocar manualmente en el directorio:
app/code/Kowal/ExportImportCategoriesDespués de copiar los archivos, ejecuta:
bin/magento module:enable Kowal_ExportImportCategoriesbin/magento setup:upgradebin/magento cache:flushEn modo production, ejecuta también:
bin/magento setup:di:compileComprobación de la instalación
Después de la instalación, comprueba si el módulo está activo:
bin/magento module:status Kowal_ExportImportCategoriesEl módulo debería aparecer en la lista de módulos activos.
En el panel de administración, ve a:
System > Data Transfer > Export/Import CategoriesDeberían mostrarse tres opciones:
Export Categories,Import Categories,Import History.
Permisos ACL
El módulo añade permisos administrativos independientes:
- acceso a la sección principal
Export/Import Categories, - exportación de categorías,
- importación de categorías,
- historial de importaciones.
Si el usuario administrador no ve el menú del módulo, comprueba el rol de usuario en:
System > Permissions > User RolesA continuación, asigna los permisos adecuados para los recursos del módulo.
Ubicación del módulo en el panel
El módulo está disponible en:
System > Data Transfer > Export/Import CategoriesVistas:
Export Categories- exportación de categorías a CSV.Import Categories- importación de categorías desde CSV.Import History- historial de importaciones e informes.
Configuración de la exportación
La vista de exportación permite generar un archivo CSV con categorías.
Campos de exportación
Store View
Selecciona el store view desde el que se leerán los valores de atributos de categorías.
Si seleccionas un store view de idioma, la exportación puede contener valores específicos de ese store view o valores heredados del scope predeterminado, según el modo de valores.
Start Category ID
Campo opcional que permite limitar la exportación a una categoría seleccionada y su subárbol.
Si el campo se deja vacío, el módulo exporta las categorías desde la root category del store view seleccionado.
Store View Value Mode
Define cómo exportar valores dependientes del store view.
Variantes disponibles:
resolved_value,store_override_only.
resolved_value exporta el valor visible en el store view seleccionado tras aplicar el fallback de Magento.
store_override_only exporta solo el valor sobrescrito para el store view seleccionado. Si el valor se hereda del default scope, la celda CSV estará vacía.
CSV Delimiter
Separador CSV. Por defecto:
,Se puede utilizar otro separador si el archivo se va a editar en una herramienta que requiera, por ejemplo, punto y coma.
Attributes
Lista de atributos de categoría disponibles en Magento.
El módulo obtiene los atributos dinámicamente desde EAV, por lo que en la lista también pueden aparecer atributos de categoría propios añadidos en el proyecto.
Las columnas de sistema se añaden automáticamente y no es necesario seleccionarlas.
Columnas de sistema en la exportación
La exportación siempre debería contener columnas de sistema:
store_view_code,entity_id,parent_entity_id,category_path,parent_path,level,position,attribute_set_id.
Estas columnas sirven para identificar categorías, validar el store view y gestionar la estructura del árbol.
Configuración de la importación
La vista de importación permite cargar CSV y guardar datos de categorías.
Campos de importación
Store View
Selecciona el store view en el que se guardarán los valores.
Este campo determina el store_id numérico utilizado al guardar en las tablas Magento.
La columna store_view_code del CSV no se convierte directamente en store_id. Se utiliza para validar si el archivo corresponde al store view seleccionado.
Ejemplo:
- en el formulario seleccionas un store view con
store_id = 1, - en el CSV debe aparecer un
store_view_codecorrespondiente a ese store view, - el módulo guarda los datos usando
store_id = 1.
Import Mode
Modos disponibles:
update,insert.
update actualiza categorías existentes.
insert crea nuevas categorías.
CSV File
Archivo CSV con encabezados en la primera fila.
El archivo debe estar codificado en UTF-8.
CSV Delimiter
Separador CSV. Debe corresponder al separador utilizado en el archivo.
Unknown Columns Policy
Define el comportamiento para columnas que no son columnas de sistema ni atributos de categoría conocidos.
Variantes disponibles:
error- la importación muestra un error para columnas desconocidas.ignore- las columnas desconocidas se ignoran.
Variante recomendada:
errorEmpty Values Policy
Define cómo interpreta el módulo las celdas CSV vacías.
Variantes disponibles:
skip_empty,clear_value,use_default.
skip_empty significa que una celda vacía no cambiará el valor actual.
clear_value significa que una celda vacía limpiará el valor del atributo.
use_default significa que una celda vacía eliminará la sobrescritura del store view y permitirá que Magento utilice el valor predeterminado.
Variante recomendada para importaciones de actualización:
skip_emptyURL Key Strategy
Define cómo gestionar el atributo url_key.
Variantes disponibles:
use_csv_value,generate_from_name,keep_existing,magento_default.
use_csv_value guarda url_key desde el CSV.
generate_from_name genera url_key a partir del valor name.
keep_existing conserva el url_key existente en modo update.
magento_default deja la gestión de URL al mecanismo estándar de Magento.
Create permanent redirect for URL key changes
La opción define si Magento debe crear un permanent redirect al cambiar url_key.
Conviene activarla cuando el cambio de URL de categoría debe conservar redirecciones SEO desde las direcciones antiguas.
Images Base Directory
Directorio base para la importación de imágenes de categorías relativo a pub/media.
Por defecto:
import/categoriesRuta completa en Magento:
pub/media/import/categoriesSi en el CSV indicas:
gear/bags.jpgel módulo buscará el archivo:
pub/media/import/categories/gear/bags.jpgError Policy
Define el comportamiento de la importación ante errores.
Variantes disponibles:
skip_invalid_rows,stop_on_first_error,all_or_nothing.
skip_invalid_rows omite las filas incorrectas y continúa la importación.
stop_on_first_error detiene la importación tras el primer error.
all_or_nothing requiere que todo el archivo sea correcto; si se produce un error, la importación no debería guardar datos.
Variante recomendada para archivos grandes:
skip_invalid_rowsBatch Size
Número de filas procesadas en un lote.
Por defecto:
100Un valor más bajo reduce el consumo de memoria. Un valor más alto puede acelerar la importación en entornos más potentes.
Attributes to Import
Lista de atributos que deben importarse.
La importación actualiza solo los atributos seleccionados. Si una columna existe en el CSV, pero el atributo no se marca en el formulario, el módulo no debería guardarlo.
Dry Run
Modo de validación sin guardar datos.
Se recomienda ejecutar dry-run antes de la importación real, especialmente para archivos grandes o cambios SEO.
Modo import/update
El modo update sirve para actualizar categorías existentes.
Datos requeridos
El CSV debe contener:
store_view_code,entity_idocategory_path,- al menos una columna de un atributo seleccionado.
Cómo funciona la identificación de categorías
El módulo intenta encontrar la categoría por:
entity_id,category_path, sientity_idestá vacío.
entity_id es el mejor identificador cuando la importación se realiza en el mismo entorno Magento.
category_path es más portable entre entornos, pero debe ser inequívoco.
Ejemplo de actualización de traducciones
store_view_code,entity_id,category_path,name,url_key,meta_title,meta_descriptionpl,13,Default Category/Gear/Bags,Torby,torby,Torby,Torby i akcesoriapl,14,Default Category/Gear/Gloves,Rekawiczki,rekawiczki,Rekawiczki,Rekawiczki sportoweConfiguración de importación:
Store View: store view polaco,Import Mode:update,Attributes to Import:name,url_key,meta_title,meta_description,URL Key Strategy:use_csv_value,Empty Values Policy:skip_empty,- primero
Dry Run, después la importación real.
Modo import/insert
El modo insert sirve para crear nuevas categorías.
Datos requeridos
El CSV debe contener:
store_view_code,category_path,parent_entity_idoparent_path,name,- al menos una columna de un atributo seleccionado.
entity_id no es obligatorio, porque Magento lo asigna automáticamente.
Ejemplo de creación de categorías
store_view_code,parent_entity_id,parent_path,category_path,name,url_key,is_active,include_in_menudefault,12,Default Category/Gear,Default Category/Gear/Helmets,Helmets,helmets,1,1default,12,Default Category/Gear,Default Category/Gear/Gloves,Gloves,gloves,1,1Configuración de importación:
Store View: default store view,Import Mode:insert,Attributes to Import:name,url_key,is_active,include_in_menu,URL Key Strategy:use_csv_valueogenerate_from_name,Error Policy:skip_invalid_rows,- primero
Dry Run.
Trabajo con select y multiselect
El módulo admite select y multiselect por labels de opción.
No es necesario indicar los ID técnicos de opción.
Ejemplo:
store_view_code,entity_id,category_path,display_mode,available_sort_by,default_sort_bydefault,13,Default Category/Gear/Bags,Products only,Position|Product Name|Price,PositionPara multiselect, varios valores se separan con el separador:
|Si el label no existe o es ambiguo, la importación mostrará un error.
Importación de imágenes de categorías
Antes de importar imágenes, coloca los archivos en el directorio:
pub/media/import/categoriesEjemplo de CSV:
store_view_code,entity_id,category_path,image,thumbnaildefault,13,Default Category/Gear/Bags,gear/bags.jpg,gear/bags-thumb.jpgConfiguración de importación:
Images Base Directory:import/categories,- atributos marcados:
image,thumbnail.
El módulo comprobará si los archivos existen y tienen extensiones admitidas.
Informe de importación
Después de la importación, el módulo genera un informe CSV.
El informe contiene:
- número de fila,
- identificador de categoría,
- estado,
- mensaje,
- atributos modificados.
Los estados pueden incluir:
success,error,skipped_no_change,skipped_existing.
Historial de importaciones
El historial de importaciones está disponible en:
System > Data Transfer > Export/Import Categories > Import HistoryEl historial contiene:
- fecha de importación,
- usuario administrador,
- store view,
- modo de importación,
- nombre del archivo,
- número de filas,
- número de éxitos,
- número de errores,
- información sobre
dry-run, - enlace para descargar el informe.
Proceso de trabajo recomendado
Importación de actualización segura
- Realiza una exportación de las categorías actuales.
- Conserva el archivo original como backup.
- Prepara los cambios en una copia del CSV.
- Asegúrate de que
store_view_codecorresponda al store view de destino. - Selecciona la importación
update. - Selecciona solo los atributos que quieras cambiar.
- Configura
Empty Values Policyenskip_empty. - Ejecuta
Dry Run. - Revisa el informe.
- Ejecuta la importación real.
- Limpia la caché si los cambios no son visibles de inmediato.
Importación segura de nuevas categorías
- Prepara un CSV con
category_path,parent_pathoparent_entity_id. - Asegúrate de que los padres existan o aparezcan antes en el archivo.
- Selecciona la importación
insert. - Marca al menos
namey otros atributos requeridos. - Ejecuta
Dry Run. - Corrige los errores del informe.
- Ejecuta la importación real.
Caché e índices
Después de importar cambios en categorías, conviene actualizar la caché Magento:
bin/magento cache:cleanSi la tienda requiere reindexación manual después de cambios importantes en el catálogo:
bin/magento indexer:reindexEn instalaciones Magento habituales, el guardado de categorías mediante los mecanismos estándar de Magento debería ejecutar los procesos adecuados vinculados al modelo de categoría, pero tras importaciones grandes se recomienda comprobar la caché y los índices.
Problemas más frecuentes
La importación indica un store_view_code no coincidente
Comprueba si el código de la columna store_view_code corresponde al store view seleccionado en el formulario de importación.
La importación no cambia valores
Comprueba:
- si el atributo se ha marcado en
Attributes to Import, - si la celda CSV no está vacía,
- si
Empty Values Policyno está configurado comoskip_empty, - si la importación no se ejecutó como
Dry Run.
Select o multiselect muestra un error
Comprueba si el label de la opción en el CSV corresponde exactamente al label de la opción en Magento para el store view seleccionado.
La imagen no se importa
Comprueba:
- si el archivo existe en
pub/media/import/categories, - si la ruta en el CSV es correcta,
- si la extensión del archivo está admitida,
- si el atributo de imagen se ha marcado para la importación.
Insert indica que falta el padre
Comprueba parent_entity_id o parent_path. El padre debe existir en Magento o encontrarse antes en el archivo de importación.
Desinstalación del módulo
Si el módulo se instaló mediante Composer:
composer remove kowal/module-export-import-categoriesbin/magento setup:upgradebin/magento cache:flushAntes de desinstalarlo, asegúrate de si el historial de importaciones puede eliminarse. El módulo crea la tabla:
kowal_export_import_categories_historyImplemented in real Magento 2 stores
Caso práctico: ampliación de tandembaits.com con nuevas versiones de idioma
Cliente
tandembaits.com es una tienda online que opera en el sector de la pesca. La oferta de la tienda se basa en un surtido especializado, en el que los nombres correctos de las categorías, las descripciones precisas y las URL bien preparadas tienen una importancia directa para la usabilidad de la tienda, el SEO y la comunicación con los clientes en distintos países.
Reto
En el marco de la ampliación de la tienda con nuevas versiones de idioma, el cliente necesitaba una forma eficaz de gestionar las categorías en Magento 2.
El mayor problema era la especificidad del sector de la pesca. Los nombres de las categorías no son etiquetas simples y universales. A menudo hacen referencia a técnicas concretas de pesca, tipos de cebos, accesorios, series de productos o conceptos utilizados solo por pescadores avanzados.
Con 10 versiones de idioma, la gestión manual de las categorías en el panel de Magento resultaba demasiado laboriosa y propensa a errores. El cliente necesitaba tener un control total sobre:
- los nombres de las categorías,
- las URL de las categorías,
- las descripciones de las categorías,
- los metadatos SEO,
- los valores específicos para cada store view,
- la coherencia de la estructura de categorías entre las versiones de idioma.
El alcance del trabajo incluía varias decenas de categorías en 10 versiones de idioma. Esto significaba cientos de valores de texto que preparar, revisar, corregir e importar.
Problema de negocio
El trabajo estándar en el panel de Magento requeriría editar cada categoría por separado para cada store view. Con varias decenas de categorías y 10 idiomas, este proceso sería lento y difícil de controlar.
Los riesgos más importantes del trabajo manual:
- errores al seleccionar el store view,
- traducciones incoherentes de los nombres de las categorías,
- sobrescritura accidental de los valores predeterminados,
- URL incorrectas o duplicadas,
- falta de una vista cómoda de todas las categorías en un solo lugar,
- dificultad para pasar los datos a traductores o a las personas responsables del SEO,
- falta de una forma sencilla de validar los cambios antes de guardarlos.
El cliente necesitaba un proceso que permitiera preparar los datos de forma masiva, comprobarlos antes de la importación y guardar de forma segura solo los atributos seleccionados para un store view concreto.
Solución
Para este escenario se utilizó el módulo Export Import Categories para Magento 2.
El módulo permitió exportar las categorías a un archivo CSV, preparar los datos de idioma fuera del panel de Magento y volver a importar los valores al store view seleccionado.
El proceso se basó en el modo update, ya que la estructura de categorías ya existía en la tienda. El objetivo no era crear un nuevo árbol de categorías, sino completar y corregir los datos para las siguientes versiones de idioma.
Alcance de uso del módulo
En el proyecto fueron clave las siguientes funciones del módulo:
- exportación de categorías desde el store view base,
- mantenimiento de
entity_idcomo identificador estable de la categoría, - cambio de
store_view_codeal código de la versión de idioma de destino, - importación en modo
update, - selección de atributos concretos para importar,
- gestión de los nombres de las categorías,
- gestión de
url_key, - gestión de las descripciones de las categorías,
- control de valores vacíos,
- validación del archivo antes de la importación propiamente dicha,
- informe de importación.
Proceso implantado en el proyecto
1. Exportación de categorías
Primero se realizó la exportación de categorías desde el store view base. El archivo CSV contenía columnas del sistema y los atributos seleccionados necesarios para preparar las versiones de idioma.
Las columnas del sistema más importantes:
store_view_code,entity_id,category_path,parent_path.
Los atributos de trabajo más importantes:
name,url_key,description,meta_title,meta_description.
2. Preparación de los datos de idioma
Sobre la base del CSV exportado, se prepararon datos independientes para cada versión de idioma.
Gracias a ello, las personas responsables del contenido podían trabajar en la hoja de cálculo viendo muchas categorías al mismo tiempo. Esto era especialmente importante en el sector de la pesca, donde los nombres de las categorías deben ser coherentes con la terminología local y con la forma real en que los clientes buscan los productos.
3. Mantenimiento de los identificadores de categoría
En los archivos de importación se mantuvo entity_id para que el módulo pudiera asociar de forma inequívoca las filas del CSV con las categorías existentes de Magento.
Esto permitió importar las traducciones sin riesgo de crear categorías duplicadas.
4. Cambio de store view
Para cada versión de idioma se configuraba el store_view_code correspondiente en el CSV y se seleccionaba ese mismo store view en el formulario de importación.
El módulo validaba la coherencia de estos datos. Gracias a ello, se redujo el riesgo de importar por error las traducciones al escaparate equivocado.
5. Importación en modo update
La importación se realizaba en modo update, seleccionando solo los atributos que debían modificarse para esa versión de idioma.
Gracias a ello, el módulo no intervenía en los demás datos de la categoría.
6. Validación y dry-run
Antes de la importación propiamente dicha, se podía ejecutar una validación sin guardar los datos.
El modo dry-run permitía comprobar:
- si el archivo CSV tenía las columnas correctas,
- si
store_view_codecoincidía con el store view seleccionado, - si
entity_idapuntaba a categorías existentes, - si los atributos seleccionados existían en Magento,
- si la importación no contenía errores que bloquearan el guardado.
7. Informe posterior a la importación
Después de la importación, el módulo generaba un informe que permitía comprobar el estado de cada fila.
El informe era especialmente útil al trabajar con muchos idiomas, ya que permitía detectar rápidamente posibles errores en un archivo concreto o en una categoría concreta.
Por qué CSV era el formato adecuado
CSV era un formato práctico para este proyecto, porque:
- se puede editar fácilmente en una hoja de cálculo,
- se puede pasar a los traductores,
- se pueden comparar los valores entre idiomas,
- se pueden preparar muchas versiones de idioma a partir de una sola exportación,
- se puede trabajar con columnas concretas sin hacer clic manualmente en el panel de Magento,
- se puede mantener el control sobre
entity_idystore_view_code.
Resultado
El módulo permitió al cliente gestionar las categorías en 10 versiones de idioma de forma ordenada y repetible.
En lugar de editar manualmente cada categoría en el panel de Magento, el equipo podía trabajar con archivos CSV, preparar las traducciones de forma masiva e importar solo los atributos seleccionados para un store view concreto.
Las ventajas más importantes:
- preparación más rápida de nuevas versiones de idioma,
- mayor control sobre los nombres de las categorías,
- control total sobre las URL,
- gestión más sencilla de las descripciones de las categorías,
- posibilidad de trabajar fuera del panel de Magento,
- menor riesgo de errores con muchos store view,
- validación de datos antes de guardarlos,
- informes de resultados de importación.
Importancia para el SEO
En el proyecto tuvo especial importancia la posibilidad de controlar url_key, los nombres de las categorías y las descripciones.
Para una tienda que opera en varios idiomas, la traducción automática o la copia accidental de los nombres de las categorías no es suficiente. Cada mercado puede utilizar términos sectoriales diferentes, y en la pesca las diferencias terminológicas son especialmente importantes.
El módulo permitió preparar los valores SEO de forma consciente para cada versión de idioma:
- nombres de categorías locales,
- URL locales,
- descripciones adaptadas al idioma,
- meta títulos,
- meta descripciones.
Resumen
La ampliación de tandembaits.com con 10 versiones de idioma requería una herramienta que permitiera gestionar eficazmente las categorías de Magento 2 a nivel de store view.
Export Import Categories resolvió este problema al trasladar el trabajo de la edición manual en el panel de Magento a un proceso controlado basado en CSV, validación e importación de atributos seleccionados.
Como resultado, el cliente obtuvo la posibilidad de gestionar cómodamente nombres de categorías especializados, URL y descripciones para muchos idiomas sin riesgo de sobrescribir accidentalmente toda la estructura de categorías.
Write Your Own Review





















