Migração WooCommerce para PrestaShop: guia completo
Instalar, ligar e executar a migração completa WooCommerce → PrestaShop: as 7 etapas, o mapeamento, o dry-run e a resolução de problemas.
Apresentação
A Migração WooCommerce (dfmigratewoocommerce) migra uma loja WooCommerce completa para o PrestaShop 8 ou 9: categorias, tags, atributos globais, produtos simples e variáveis (variações convertidas em combinações), imagens, metadados personalizados, clientes com moradas e encomendas. O módulo liga-se diretamente à base de dados MySQL do WordPress, trabalha por lotes AJAX sem timeout e conserva um mapeamento Woo ↔ PS na base de dados que torna cada etapa relançável sem duplicados.
A base de dados WooCommerce de origem é unicamente lida, nunca modificada. Todas as escritas são feitas do lado do PrestaShop.
Instalação
- No back-office PrestaShop, abra Módulos > Gestor de módulos > Carregar um módulo e selecione o ZIP
dfmigratewoocommerce.zip. - O módulo cria três tabelas técnicas:
df_woomig_mapping(correspondências Woo ↔ PS),df_woomig_log(registo) edf_woomig_progress(progressão das etapas). - Clique em Configurar para abrir a interface de migração.
Ligação ao WooCommerce
No separador Ligação, preencha:
- Anfitrião / Porta: servidor MySQL da base de dados WordPress (porta 3306 por defeito);
- Base de dados, Utilizador, Palavra-passe: credenciais da base de dados WordPress;
- Prefixo de tabelas: geralmente
wp_, verifique emwp-config.php($table_prefix); - URL do site: o endereço público da loja WooCommerce, usado para descarregar as imagens (modo HTTP), ou um caminho no sistema de ficheiros em modo local.
Clique em Testar a ligação: o módulo mostra o número de produtos, categorias, tags, atributos globais, clientes e encomendas detetados na origem.
Se o seu alojamento bloquear as ligações MySQL remotas, importe um dump da base de dados WordPress para um esquema dedicado no servidor PrestaShop (ex. wp_source) e ligue o módulo a esse esquema em localhost. Um túnel SSH também funciona.
Parâmetros
- Idioma por defeito: idioma PrestaShop no qual os conteúdos Woo (monolingues) serão escritos;
- Grupo de impostos por defeito: aplicado a todos os produtos migrados. Os preços Woo são copiados tal como estão para o preço sem IVA do PrestaShop;
- Atributos em características: ativa o duplo mapeamento (cada atributo global torna-se também uma característica, visível nos produtos simples) e a recuperação das postmeta personalizadas em características
meta:*; - Tamanho do lote: número de entidades processadas por pedido AJAX (25 por defeito; reduza em alojamento partilhado lento);
- Modo de imagens:
http(descarregamento a partir do URL do site) oulocal(o URL do site é tratado como um caminho de sistema de ficheiros que contémwp-content/uploads); - Dry-run: modo de simulação: tudo é registado, nada é escrito;
- Transportadora por defeito: atribuída às encomendas migradas.
Ponto sensível para uma loja portuguesa: o WooCommerce guarda muitas vezes os preços com IVA, enquanto o PrestaShop espera preços sem IVA. Antes de migrar, verifique a definição « Introduzir preços com imposto » no WooCommerce; se estiver ativa, os preços migrados ficarão 23 % acima do esperado no continente e deverão ser recalculados. Crie também de antemão os grupos de impostos correspondentes às taxas do continente (23 %, 13 %, 6 %) e, se necessário, às dos Açores e da Madeira.
Lançar a migração
No separador Migração, execute as etapas pela ordem: cada uma assenta no mapeamento criado pelas anteriores:
- Atributos: cada atributo global Woo (
pa_*) torna-se um grupo de atributos PS (os grupos de cor são detetados) e, se a opção estiver ativa, uma característica. Todos os valores são criados dos dois lados. - Categorias: a árvore completa é reconstruída; as categorias-mãe em falta são resolvidas recursivamente, as órfãs associadas à raiz com um aviso.
- Tags: desduplicados por nome.
- Produtos: produtos simples e variáveis: preços, preços riscados (SpecificPrice), SKU, peso, dimensões, stock, estado, produto virtual, ligações a categorias/tags, características, metadados personalizados. As variações tornam-se combinações com impacto de preço, stock e referência próprios. As imagens do produto são migradas na sequência.
- Imagens: etapa de recuperação: percorre os produtos já migrados e importa as imagens em falta (imagem principal + galeria), com regeneração de todas as miniaturas.
- Clientes: contas com moradas de faturação e de entrega. Palavras-passe regeneradas em bcrypt: os clientes usam « esqueci-me da palavra-passe » no primeiro início de sessão. Os e-mails já existentes do lado do PS são reutilizados, nunca duplicados.
- Encomendas: deteção automática HPOS (WooCommerce 8+, tabelas
wc_orders) ou legacy (wp_posts). Linhas, totais, moeda e estados mapeados para os estados do PrestaShop. Não é enviado nenhum e-mail.
Cada etapa mostra uma barra de progresso em direto e pode ser interrompida e relançada: retoma exatamente onde tinha parado.
Faça primeiro uma passagem completa em dry-run para validar o perímetro no registo, e desative depois o dry-run e relance.
Mapeamento e relançamentos
O separador Mapeamento mostra o número de correspondências por tipo de entidade. Qualquer entidade presente no mapeamento é ignorada nos relançamentos: pode relançar uma etapa completa sem criar duplicados. O botão de reinicialização apaga o mapeamento de um tipo (ou de tudo); as entidades já criadas do lado do PrestaShop permanecem.
Registo
O separador Registo lista os eventos por etapa e por nível (info, sucesso, aviso, erro): produtos criados, variações ignoradas por falta de atributo global, imagens não encontradas, encomendas sem cliente… Purga num clique.
Depois da migração
- Lance uma reindexação da pesquisa: Parâmetros da loja > Pesquisa > Indexar todos os produtos;
- Verifique uma amostra de preços se a sua loja Woo guardava preços com IVA (o PrestaShop espera valores sem IVA);
- Controle o grupo de impostos, as transportadoras e os meios de pagamento;
- Elimine a configuração de ligação (ou desinstale o módulo): as credenciais MySQL ficam guardadas na configuração do PrestaShop.
Limites conhecidos
- Os atributos locais (definidos num único produto, não
pa_*) usados em variação não podem tornar-se combinações: o PrestaShop exige atributos globais. Essas variações são ignoradas e assinaladas no registo. Converta-as em atributos globais do lado do Woo antes da migração, se necessário. - As encomendas são migradas a título de histórico: os impostos não são recalculados, os totais Woo são copiados tal como estão. Não substituem as faturas emitidas pelo seu software certificado pela AT.
- Os cupões, as avaliações de produtos e as subscrições não são migrados nesta versão.
Resolução de problemas
« Falha de ligação » no teste
Verifique que o utilizador MySQL está autorizado a ligar-se a partir do IP do servidor PrestaShop (GRANT ... ON base.* TO 'user'@'ip') e que a porta 3306 está aberta. Caso contrário, use um dump local ou um túnel SSH.
Imagens em falta em modo HTTP
O site WooCommerce deve estar acessível em HTTP/HTTPS a partir do servidor PrestaShop. Se o site de origem estiver encerrado, use o modo local copiando wp-content/uploads para o servidor PrestaShop e indicando o seu caminho como URL do site.
Variações ausentes num produto
Consulte o registo: se as variações usavam atributos locais (não globais), são ignoradas por conceção. O produto-mãe é migrado com os seus dados de base.