Instruções de instalação e configuração do módulo Kowal_ExportImportCategories
Este documento descreve a instalação, a configuração e a utilização do módulo Kowal_ExportImportCategories para Magento 2. As instruções têm em conta as informações do ficheiro README.md e as funcionalidades implementadas no módulo.
Requisitos
- Magento 2.
- PHP compatível com a instalação Magento, recomendado PHP
8.1 ou mais recente. - Acesso ao CLI do Magento.
- Acesso ao Composer.
- Permissões de administrador Magento.
- Acesso ao repositório do módulo.
- Para importação de imagens: possibilidade de colocar ficheiros no diretório
pub/media/import/categories.
Instalação através do Composer
O módulo está disponível através de um repositório Composer.
1. Adicione o repositório Composer
composer config repositories.export.import.categories vcs https://github.com/kowalco/export-import-categories
2. Adicione o token de acesso ao repositório privado GitHub
Se o repositório for privado, configure o token GitHub:
composer config --global --auth github-oauth.github.com
Substitua pelo seu próprio token de acesso.
3. Instale o módulo
composer require kowal/module-export-import-categories
4. Ative o módulo no Magento
bin/magento module:enable Kowal_ExportImportCategories
5. Execute a atualização do Magento
bin/magento setup:upgrade
6. Limpe a cache
bin/magento cache:flush
7. Opcionalmente, execute a compilação DI
Em ambientes de produção ou no modo production:
bin/magento setup:di:compile
8. Opcionalmente, implemente os recursos estáticos
Se o ambiente o exigir:
bin/magento setup:static-content:deploybin/magento cache:flush
Instalação manual em app/code
Em alternativa, o módulo pode ser colocado manualmente no diretório:
app/code/Kowal/ExportImportCategories
Depois de copiar os ficheiros, execute:
bin/magento module:enable Kowal_ExportImportCategoriesbin/magento setup:upgradebin/magento cache:flush
No modo production, execute também:
bin/magento setup:di:compile
Verificação da instalação
Após a instalação, verifique se o módulo está ativo:
bin/magento module:status Kowal_ExportImportCategories
O módulo deve constar na lista de módulos ativos.
No painel de administração, aceda a:
System > Data Transfer > Export/Import Categories
Devem estar visíveis três opções:
Export Categories,Import Categories,Import History.
Permissões ACL
O módulo adiciona permissões administrativas separadas:
- acesso à secção principal
Export/Import Categories, - exportação de categorias,
- importação de categorias,
- histórico de importações.
Se o utilizador administrador não vir o menu do módulo, verifique a função do utilizador em:
System > Permissions > User Roles
Em seguida, atribua as permissões adequadas para os recursos do módulo.
Localização do módulo no painel
O módulo está disponível em:
System > Data Transfer > Export/Import Categories
Vistas:
Export Categories - exportação de categorias para CSV.Import Categories - importação de categorias a partir de CSV.Import History - histórico de importações e relatórios.
Configuração da exportação
A vista de exportação permite gerar um ficheiro CSV com categorias.
Campos de exportação
Store View
Seleciona o store view a partir do qual serão lidos os valores dos atributos das categorias.
Se selecionar um store view linguístico, a exportação pode conter valores específicos desse store view ou valores herdados do scope predefinido, consoante o modo de valores.
Start Category ID
Campo opcional que permite limitar a exportação à categoria selecionada e à sua subárvore.
Se o campo ficar vazio, o módulo exporta as categorias a partir da root category do store view selecionado.
Store View Value Mode
Define como exportar valores dependentes do store view.
Opções disponíveis:
resolved_value,store_override_only.
resolved_value exporta o valor visível no store view selecionado, após considerar o fallback do Magento.
store_override_only exporta apenas o valor substituído para o store view selecionado. Se o valor for herdado do default scope, a célula CSV ficará vazia.
CSV Delimiter
Separador CSV. Por predefinição:
,
Pode ser utilizado outro separador se o ficheiro for editado numa ferramenta que exija, por exemplo, ponto e vírgula.
Attributes
Lista de atributos de categorias disponíveis no Magento.
O módulo obtém os atributos dinamicamente a partir do EAV, por isso a lista também pode incluir atributos de categorias personalizados adicionados no projeto.
As colunas de sistema são adicionadas automaticamente e não precisam de ser selecionadas.
Colunas de sistema na exportação
A exportação deve incluir sempre as colunas de sistema:
store_view_code,entity_id,parent_entity_id,category_path,parent_path,level,position,attribute_set_id.
Estas colunas servem para identificar categorias, validar o store view e gerir a estrutura da árvore.
Configuração da importação
A vista de importação permite carregar um CSV e guardar dados de categorias.
Campos de importação
Store View
Seleciona o store view no qual os valores serão guardados.
Este campo determina o store_id numérico utilizado na gravação nas tabelas Magento.
A coluna store_view_code do CSV não é convertida diretamente em store_id. É utilizada para validar se o ficheiro corresponde ao store view selecionado.
Exemplo:
- no formulário seleciona um store view com
store_id = 1, - no CSV deve existir
store_view_code correspondente a esse store view, - o módulo guarda os dados utilizando
store_id = 1.
Import Mode
Modos disponíveis:
update atualiza categorias existentes.
insert cria novas categorias.
CSV File
Ficheiro CSV com cabeçalhos na primeira linha.
O ficheiro deve estar codificado em UTF-8.
CSV Delimiter
Separador CSV. Deve corresponder ao separador utilizado no ficheiro.
Unknown Columns Policy
Define o comportamento para colunas que não são colunas de sistema nem atributos de categorias conhecidos.
Opções disponíveis:
error - a importação comunica um erro para colunas desconhecidas.ignore - as colunas desconhecidas são ignoradas.
Opção recomendada:
error
Empty Values Policy
Define como o módulo interpreta células CSV vazias.
Opções disponíveis:
skip_empty,clear_value,use_default.
skip_empty significa que uma célula vazia não altera o valor atual.
clear_value significa que uma célula vazia limpa o valor do atributo.
use_default significa que uma célula vazia remove a substituição do store view e permite que o Magento utilize o valor predefinido.
Opção recomendada para importação de atualização:
skip_empty
URL Key Strategy
Define a forma de gerir o atributo url_key.
Opções disponíveis:
use_csv_value,generate_from_name,keep_existing,magento_default.
use_csv_value guarda url_key a partir do CSV.
generate_from_name gera url_key com base no valor name.
keep_existing mantém o url_key existente no modo update.
magento_default deixa a gestão do URL ao mecanismo padrão do Magento.
Create permanent redirect for URL key changes
A opção define se o Magento deve criar um permanent redirect ao alterar url_key.
Vale a pena ativá-la quando a alteração do URL da categoria deve manter os redirecionamentos SEO a partir dos endereços antigos.
Images Base Directory
Diretório base para importação de imagens de categorias relativo a pub/media.
Por predefinição:
import/categories
Caminho completo no Magento:
pub/media/import/categories
Se no CSV indicar:
gear/bags.jpg
o módulo procurará o ficheiro:
pub/media/import/categories/gear/bags.jpg
Error Policy
Define o comportamento da importação em caso de erros.
Opções disponíveis:
skip_invalid_rows,stop_on_first_error,all_or_nothing.
skip_invalid_rows ignora linhas incorretas e continua a importação.
stop_on_first_error interrompe a importação após o primeiro erro.
all_or_nothing exige que todo o ficheiro esteja correto; se ocorrer um erro, a importação não deve guardar dados.
Opção recomendada para ficheiros grandes:
skip_invalid_rows
Batch Size
Número de linhas processadas num único lote.
Por predefinição:
100
Um valor mais baixo reduz o consumo de memória. Um valor mais alto pode acelerar a importação em ambientes mais potentes.
Attributes to Import
Lista de atributos que devem ser importados.
A importação atualiza apenas os atributos selecionados. Se a coluna existir no CSV, mas o atributo não estiver selecionado no formulário, o módulo não deve guardá-lo.
Dry Run
Modo de validação sem gravação de dados.
Recomenda-se executar dry-run antes da importação efetiva, especialmente para ficheiros grandes ou alterações SEO.
Modo import/update
O modo update serve para atualizar categorias existentes.
Dados obrigatórios
O CSV deve conter:
store_view_code,entity_id ou category_path,- pelo menos uma coluna de atributo selecionado.
Como funciona a identificação de categorias
O módulo tenta encontrar a categoria por:
entity_id,category_path, se entity_id estiver vazio.
entity_id é o melhor identificador quando a importação ocorre no mesmo ambiente Magento.
category_path é mais portátil entre ambientes, mas deve ser inequívoco.
Exemplo de atualização de traduções
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 sportowe
Configurações de importação:
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,- primeiro
Dry Run, depois a importação efetiva.
Modo import/insert
O modo insert serve para criar novas categorias.
Dados obrigatórios
O CSV deve conter:
store_view_code,category_path,parent_entity_id ou parent_path,name,- pelo menos uma coluna de atributo selecionado.
entity_id não é necessário, porque o Magento o atribui automaticamente.
Exemplo de criação de categorias
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,1
Configurações de importação:
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 ou generate_from_name,Error Policy: skip_invalid_rows,- primeiro
Dry Run.
Trabalho com select e multiselect
O módulo suporta select e multiselect através dos labels das opções.
Não é necessário indicar os IDs técnicos das opções.
Exemplo:
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,Position
Para multiselect, vários valores são separados pelo separador:
|
Se o label não existir ou for ambíguo, a importação comunicará um erro.
Importação de imagens de categorias
Antes de importar imagens, coloque os ficheiros no diretório:
pub/media/import/categories
Exemplo de CSV:
store_view_code,entity_id,category_path,image,thumbnaildefault,13,Default Category/Gear/Bags,gear/bags.jpg,gear/bags-thumb.jpg
Configurações de importação:
Images Base Directory: import/categories,- atributos selecionados:
image, thumbnail.
O módulo verificará se os ficheiros existem e têm extensões suportadas.
Relatório de importação
Após a importação, o módulo gera um relatório CSV.
O relatório contém:
- número da linha,
- identificador da categoria,
- estado,
- mensagem,
- atributos alterados.
Os estados podem incluir:
success,error,skipped_no_change,skipped_existing.
Histórico de importações
O histórico de importações está disponível em:
System > Data Transfer > Export/Import Categories > Import History
O histórico contém:
- data da importação,
- utilizador administrador,
- store view,
- modo de importação,
- nome do ficheiro,
- número de linhas,
- número de sucessos,
- número de erros,
- informação sobre
dry-run, - link para descarregar o relatório.
Processo de trabalho recomendado
Importação de atualização segura
- Exporte as categorias atuais.
- Guarde o ficheiro original como backup.
- Prepare as alterações numa cópia do CSV.
- Certifique-se de que
store_view_code corresponde ao store view de destino. - Selecione a importação
update. - Selecione apenas os atributos que pretende alterar.
- Defina
Empty Values Policy como skip_empty. - Execute
Dry Run. - Verifique o relatório.
- Execute a importação efetiva.
- Limpe a cache se as alterações não ficarem imediatamente visíveis.
Importação segura de novas categorias
- Prepare um CSV com
category_path, parent_path ou parent_entity_id. - Certifique-se de que os elementos pai existem ou aparecem antes no ficheiro.
- Selecione a importação
insert. - Marque pelo menos
name e outros atributos obrigatórios. - Execute
Dry Run. - Corrija os erros do relatório.
- Execute a importação efetiva.
Cache e índices
Após importar alterações em categorias, é recomendável atualizar a cache do Magento:
bin/magento cache:clean
Se a loja exigir reindexação manual após alterações maiores no catálogo:
bin/magento indexer:reindex
Em instalações Magento típicas, a gravação de categorias através dos mecanismos padrão do Magento deve acionar os processos adequados associados ao modelo de categoria, mas após grandes importações recomenda-se verificar a cache e os índices.
Problemas mais frequentes
A importação comunica store_view_code incompatível
Verifique se o código na coluna store_view_code corresponde ao store view selecionado no formulário de importação.
A importação não altera os valores
Verifique:
- se o atributo foi selecionado em
Attributes to Import, - se a célula CSV não está vazia,
- se
Empty Values Policy não está definido como skip_empty, - se a importação não foi executada como
Dry Run.
Select ou multiselect comunica um erro
Verifique se o label da opção no CSV corresponde exatamente ao label da opção no Magento para o store view selecionado.
A imagem não é importada
Verifique:
- se o ficheiro existe em
pub/media/import/categories, - se o caminho no CSV está correto,
- se a extensão do ficheiro é suportada,
- se o atributo da imagem foi selecionado para importação.
Insert comunica falta de elemento pai
Verifique parent_entity_id ou parent_path. O elemento pai deve existir no Magento ou encontrar-se antes no ficheiro de importação.
Desinstalação do módulo
Se o módulo tiver sido instalado através do Composer:
composer remove kowal/module-export-import-categoriesbin/magento setup:upgradebin/magento cache:flush
Antes de desinstalar, certifique-se de que o histórico de importações pode ser eliminado. O módulo cria a tabela:
kowal_export_import_categories_history