Kowal Custom Header Links para Magento 2
12,50 € 12,50 €
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.
El módulo está destinado a:
store view seleccionado.store view seleccionado.update.insert.select y multiselect por labels de opción.dry-run, es decir, validación completa de la importación sin guardar datos.url_key.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:
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,El módulo admite dos modos de exportación de valores:
resolved_value - se exporta el valor visible en un store view determinado, es decir, teniendo en cuenta el fallback de Magento al valor predeterminado.store_override_only - se exporta solo el valor sobrescrito directamente para un store view determinado; 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.
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:
url_key,updateEl 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:
Ejemplo de escenario de traducción:
store_view_code en el CSV al código del store view de destino.entity_id.name, description, meta_title, meta_description.update para 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.
insertEl 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,parent_path.El modo insert se recomienda para:
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.
La primera fila del archivo CSV debe contener los encabezados de columna. Las columnas se dividen en:
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.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.
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 fitnessstore_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,1El 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.
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.
El módulo permite configurar la estrategia de gestión de url_key:
use_csv_value - utiliza el valor del CSV.generate_from_name - genera url_key a partir del atributo name.keep_existing - en modo update, conserva el url_key actual.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:
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.El modo dry-run permite ejecutar la validación de la importación sin guardar datos en Magento.
En este modo, el módulo:
select y multiselect,Es el primer paso recomendado antes de cualquier importación de mayor tamaño.
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.
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.
Después de la importación, el módulo genera un informe CSV que contiene:
El historial de importaciones está disponible en el panel de administración. El administrador puede comprobar:
dry-run,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:
El módulo no elimina categorías ni importa productos asignados a 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.
Exportas los atributos meta_title, meta_description, url_key, los editas en CSV e importas solo las columnas seleccionadas.
Preparas un archivo CSV con category_path, parent_path, name y otros atributos necesarios, y luego lo importas en modo insert.
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.
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.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.
8.1 o superior.pub/media/import/categories.El módulo está disponible a través del repositorio Composer.
composer config repositories.export.import.categories vcs https://github.com/kowalco/export-import-categoriesSi el repositorio es privado, configura el token de GitHub:
composer config --global --auth github-oauth.github.com Sustituye por tu propio token de acceso.
composer require kowal/module-export-import-categoriesbin/magento module:enable Kowal_ExportImportCategoriesbin/magento setup:upgradebin/magento cache:flushEn entornos de producción o en modo production:
bin/magento setup:di:compileSi el entorno lo requiere:
bin/magento setup:static-content:deploybin/magento cache:flushComo 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:compileDespué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.El módulo añade permisos administrativos independientes:
Export/Import Categories,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.
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.La vista de exportación permite generar un archivo CSV con categorías.
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.
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.
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.
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.
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.
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.
La vista de importación permite cargar CSV y guardar datos de categorías.
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:
store_id = 1,store_view_code correspondiente a ese store view,store_id = 1.Modos disponibles:
update,insert.update actualiza categorías existentes.
insert crea nuevas categorías.
Archivo CSV con encabezados en la primera fila.
El archivo debe estar codificado en UTF-8.
Separador CSV. Debe corresponder al separador utilizado en el archivo.
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:
errorDefine 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_emptyDefine 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.
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.
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.jpgDefine 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_rowsNú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.
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.
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.
El modo update sirve para actualizar categorías existentes.
El CSV debe contener:
store_view_code,entity_id o category_path,El módulo intenta encontrar la categoría por:
entity_id,category_path, si entity_id está 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.
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,Dry Run, después la importación real.El modo insert sirve para crear nuevas categorías.
El CSV debe contener:
store_view_code,category_path,parent_entity_id o parent_path,name,entity_id no es obligatorio, porque Magento lo asigna automáticamente.
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_value o generate_from_name,Error Policy: skip_invalid_rows,Dry Run.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.
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,image, thumbnail.El módulo comprobará si los archivos existen y tienen extensiones admitidas.
Después de la importación, el módulo genera un informe CSV.
El informe contiene:
Los estados pueden incluir:
success,error,skipped_no_change,skipped_existing.El historial de importaciones está disponible en:
System > Data Transfer > Export/Import Categories > Import HistoryEl historial contiene:
dry-run,store_view_code corresponda al store view de destino.update.Empty Values Policy en skip_empty.Dry Run.category_path, parent_path o parent_entity_id.insert.name y otros atributos requeridos.Dry Run.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.
Comprueba si el código de la columna store_view_code corresponde al store view seleccionado en el formulario de importación.
Comprueba:
Attributes to Import,Empty Values Policy no está configurado como skip_empty,Dry Run.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.
Comprueba:
pub/media/import/categories,Comprueba parent_entity_id o parent_path. El padre debe existir en Magento o encontrarse antes en el archivo de importación.
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_historytandembaits.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.
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:
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.
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:
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.
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.
En el proyecto fueron clave las siguientes funciones del módulo:
entity_id como identificador estable de la categoría,store_view_code al código de la versión de idioma de destino,update,url_key,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.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.
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.
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.
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.
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:
store_view_code coincidía con el store view seleccionado,entity_id apuntaba a categorías existentes,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.
CSV era un formato práctico para este proyecto, porque:
entity_id y store_view_code.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:
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:
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.