Migrar do PrestaShop 1.7 para o 9 passo a passo: o plano que evita surpresas
Migrar do PrestaShop 1.7 para o 9 não é carregar num botão. É um projeto com fases, e cada fase tem as suas armadilhas. Aqui tem o plano completo, da cópia em local ao dia da mudança, com o que costuma avariar.
Uma migração do PrestaShop 1.7 para o 9 corre bem quando o dia da mudança é aborrecido. Para que o seja, tudo o que é difícil tem de ter acontecido antes, numa cópia, com tempo para errar. Este é o plano que seguimos, com as armadilhas que costumamos encontrar em cada fase.
1. Inventário: o que faz a sua loja
Antes de mexer em qualquer coisa, faça duas listas:
- Módulos instalados, com a versão, o autor e se estão ativos. Tire a lista da base de dados para que não escape nenhum.
- Funções da loja: como se cobra, como se envia, como se fatura, com que se liga (ERP, marketplaces, transportadoras), o que há de SEO, que automatizações de email.
Para cada função, decida o que a vai resolver no PrestaShop 9: o mesmo módulo atualizado, um substituto, algo que o núcleo já traz ou nada, porque já não se usa. É habitual que uma loja com anos de funcionamento descubra que uma parte dos seus módulos não faz falta.
Reveja também a pasta override/. Cada override é código que modifica o núcleo, e no PrestaShop 9 muitas classes mudaram. O que depender de um override tem de ser refeito, de preferência com hooks.
2. A cópia em local
Traga uma cópia completa da loja atual (ficheiros e base de dados) para um ambiente de testes que não esteja no mesmo servidor da loja real e que não possa enviar emails a clientes. Este último ponto é importante: uma cópia com a base de dados real e o correio configurado pode escrever a um cliente verdadeiro com uma simples mudança de estado de encomenda.
Anonimize os dados pessoais se a cópia for manuseada por mais pessoas, e desative ou ponha em modo de testes os gateways de pagamento, as ligações ao ERP e qualquer cron que comunique com o exterior.
3. Escolher o caminho: atualizar ou migrar dados
Há duas formas de chegar ao PrestaShop 9:
- Atualizar sobre a instalação existente com o assistente oficial. Mantém tudo, mas arrasta também os restos de anos: tabelas de módulos desinstalados, configuração antiga, overrides.
- Instalação limpa do PrestaShop 9 e migração de dados: catálogo, clientes, encomendas, moradas, CMS. Mais trabalho no início, mas a loja nova só tem o que se decidiu levar.
Com uma 1.7 que tenha muitos módulos de terceiros, overrides e um tema muito modificado, a segunda costuma dar menos problemas a médio prazo. Com uma 1.7.8 cuidada e poucos módulos, atualizar pode ser suficiente. Decida sobre a cópia, não sobre a teoria.
4. Os dados
Ao migrar dados, verifique cada tipo com números, não a olho:
- Produtos, combinações, preços específicos, stock e imagens: o mesmo número na origem e no destino.
- Clientes, moradas e grupos, com os seus descontos.
- Encomendas, com os seus estados, faturas e notas de crédito. A numeração das faturas deve continuar, não recomeçar.
- Regras de carrinho e vales em vigor.
- Páginas CMS, categorias com as suas descrições e metadados SEO.
- Traduções de todos os idiomas.
Mantenha os identificadores de produtos e categorias sempre que puder: facilitam os redirecionamentos, as integrações e os relatórios.
5. O tema
Um tema da 1.7 raramente funciona tal como está no PrestaShop 9. As opções habituais são adaptá-lo, fazer um tema filho do tema por defeito do PrestaShop 9 com o seu design ou escolher um tema comercial compatível. Tenha em conta que o tema não é só design: também traz templates de email, textos traduzidos e, às vezes, módulos próprios. Reveja a loja no telemóvel e no computador, página a página.
6. URL e redirecionamentos 301
Se os URL mudarem, o Google tem de saber. O ideal é manter a mesma estrutura de URL; se não for possível, cada URL antigo com tráfego ou ligações deve redirecionar com um 301 para o seu equivalente novo, não para a página inicial. Tire a lista de URL antigos do sitemap, da Search Console e dos registos do servidor, e verifique os redirecionamentos com um rastreio antes do dia da mudança.
7. Pagamentos em modo de testes
Cada método de pagamento é testado em modo sandbox de ponta a ponta: pagamento correto, pagamento recusado, pagamento cancelado, reembolso e, se o usar, pagamento com autenticação forte. Confirme que a encomenda é criada com o estado correto e que a notificação do gateway chega. No PrestaShop 9, os módulos que recebiam essas notificações num .php direto dentro de modules/ podem deparar-se com um 403, porque o .htaccess de origem recusa esses pedidos. É uma das causas mais frequentes de «o cliente pagou e não há encomenda» depois de uma migração.
8. O ensaio geral
Com tudo pronto, repita a migração inteira a partir de uma cópia nova da loja real, cronometrando cada passo. O ensaio serve para três coisas: confirmar que o processo é repetível, saber quanto tempo a loja vai estar em manutenção e descobrir o que mudou na loja real desde a primeira cópia.
9. O dia da mudança
- Avise com antecedência se vai haver uma janela de manutenção.
- Ponha a loja antiga em manutenção e pare os seus crons e integrações.
- Migre as encomendas, clientes e alterações de catálogo desde a última cópia.
- Ative na loja nova os gateways em modo real, as ligações ao ERP e os crons.
- Aponte o domínio para a loja nova e confirme o certificado.
- Faça uma encomenda real com cada método de pagamento e reembolse-a.
- Envie o sitemap novo para a Search Console e vigie os erros 404 nos dias seguintes.
- Mantenha a loja antiga parada e sem acesso público durante algum tempo, caso seja preciso consultar algo.
O que costuma avariar
- Overrides que já não encaixam nas classes do núcleo.
- Módulos que não se instalam ou não mostram a sua configuração no PrestaShop 9.
- Crons que apontavam para ficheiros
.phpde módulos e agora recebem 403 sem que ninguém dê por isso. - Templates de email que voltam aos de origem ou perdem traduções.
- Numeração de faturas que recomeça.
- Imagens que é preciso regenerar com os formatos e tamanhos novos.
- Analítica e píxeis que ficam na loja antiga.
E uma vantagem que se esquece: no fim, tem a loja numa versão com suporte, com PHP atual e com os módulos atualizados. A partir daí, mantê-la atualizada é muito menos trabalho do que voltar a saltar várias versões de uma vez.
Como resolvê-lo no PrestaShop
As migrações de 1.6 e 1.7 para o PrestaShop 9 são uma parte importante do nosso trabalho na Rekire. Com os pacotes de horas de suporte (20, 50 ou 100 horas, conforme o tamanho da loja) fazemos o projeto inteiro ou a parte de que precisar: inventário de módulos e funções, cópia num ambiente de testes sem correio de saída, migração de dados verificada com números, adaptação do tema, redirecionamentos, testes de pagamentos, ensaio e acompanhamento no dia da mudança. As horas são consumidas conforme o trabalho real.