Módulos Incompatíveis no Magento

Escrito por Mario SAM

A maioria dos problemas que ocorrem no Magento estão relacionados a quatro fatores básicos: Servidor(Hospedagem), Configuração, Templates, e Módulos.

Eu venho mantendo um fórum sobre Magento desde 2009, e os problemas são sempre os mesmos, entra versão, sai versão, mudam as empresas, e as dificuldades são as mesmas.

1. Infraestrutura – Que se refere exatamente ao servidor e hospedagem. Muita gente prefere ignorar os pré-requisitos do sistema e acha que pode instalar o Magento em qualquer lugar. Resultado disso? Problemas.

2. Configuração – Assim que você instala o sistema, você precisa fazer todos os ajustes necessários para o bom funcionamento da ferramenta. E muita gente nem faz idéia disso, apenas instala e quer usar de imediato. Resultado disso? Problemas.

3. Templates – Muitos webdesigners e curiosos saem modificando os temas do Magento sem se preocupar com estruturas e padrões, modificam o sistema da maneira que acham melhor, mais rápido, ou mais fácil. Ou até mesmo compram templates que não são compatíveis com a versão do Magento. Resultado disso? Problemas.

4. Módulos – O Magento Connect oferece milhares de módulos, muitos deles grátis. O que acaba aguçando o desejo de ter todos eles rodando ao mesmo tempo na sua loja (é grátis mesmo, vou baixar). Resultado disso? Problemas.

Nesse post vamos nos aprofundar um pouco mais neste último item, dos módulos.

Como assim incompatível?

A cada nova versão do Magento, muitas coisas são alteradas. Desde tradução, novos módulos, novos campos, novas tabelas, até mesmo nova estrutura de arquivos (como foi da versão 1.3 para 1.4).

Então um módulo que funciona perfeitamente na versão 1.4.x do Magento, pode não funcionar da mesma forma na versão 1.7.x, devido as mudanças da plataforma.

Feito nas coxas

Sim. Tem módulo que é incompatível até mesmo na versão em que foi desenvolvido. A empresa (desenvolvedor) cria o módulo para um cenário específico, e quando a loja possui uma configuração mais avançada, o módulo deixa de funcionar porque não estava preparado para tal situação.

Desenvolver módulos para Magento não é algo trivial, e não se aprende em 15 minutos. Por isso mesmo muita gente quando começa, acaba fazendo fora dos padrões, o que torna o módulo incompatível com outras versões e com as configurações do sistema.

Muitas empresas também não possuem equipe de testes (controle de qualidade). Então o módulo sai da fase de desenvolvimento direto para a máquina dos clientes, que vão utilizar o módulo de maneira não prevista pelos desenvolvedores, que testam sempre em cenários perfeitos.

Evolução natural

Se o próprio sistema (Magento) evolui, e acaba alterando sua estrutura e incluindo novas funcionalidades, é natural que o mesmo ocorra com os módulos.

Então observe as informações do módulo que deseja baixar, veja para qual versão ele foi criado, e se possui atualizações. Muitos módulos são abandonados e não contam com nenhum suporte.

Aliás, até a tradução português brasil do Magento CE feita pelo Mario SAM evolui constantemente. Não fique preso a traduções automatizadas e engessadas, baixe a melhor tradução do Magento aqui no blog.

Área 51

É absurdamente importante que você tenha um ambiente simulado para realizar seus testes. Seja uma alteração simples de leiaute, ou um novo módulo no sistema.

Realize backups regularmente, atualize os caches depois de qualquer modificação no sistema (inclusive instalação/remoção de módulos).

E ao finalizar os testes, antes de enviar para o ambiente de produção, verifique os arquivos de log’s. Veja se o módulo gerou erros/alertas “silenciosos” (que não aparecem na tela). Aproveite e leia o post: Identificando o problema.

Ah! Importante falar também. Enquanto estiver testando o módulo, verifique o consumo de memória do sistema. Alguns módulos podem apresentar bom funcionamento, mas na verdade possuem problemas de desenvolvimento e acabam consumindo todos os recursos da máquina de maneira indevida/inesperada.

Vou atualizar tudo pra garantir

Grande erro! Não saia atualizando o sistema só porque é grátis. Antes de qualquer coisa, faça backup do que já funciona.

Depois olhe o release disponibilizado no site oficial da Magento, veja o que foi alterado de uma versão para outra. Muitas vezes foi adicionado um recurso ou melhorado uma funcionalidade que você não utiliza, então não faz sentido nenhum atualizar.

Se você optar por atualizar. Atualize primeiro um ambiente de testes, depois de ver tudo funcionando, então você se prepara para atualizar o ambiente de produção.

Antes de atualizar o sistema, veja se seus módulos são compatíveis com a nova versão a ser instalada. Algumas vezes não é aconselhável atualizar, pois você perde a compatibilidade de diversos módulos importantes (como correios e meios de pagamentos).

Não quero mais

Como eu já falei diversas vezes aqui no blog, o Magento é um sistema modularizado, que permite que você ligue/desligue módulos que pretende usar. Veja mais informações no post Habilitar/Desabilitar Módulos.

Mas como citado acima, alguns módulos foram criados fora dos padrões do Magento, então não adianta você desligar o módulo, pois o estrago já está feito, e ele vai continuar causando problemas, mesmo desabilitado. Você precisa excluir este módulo do seu sistema.

Se você instalou pelo Magento Connect, vai precisar excluir o módulo da pasta downloader, da pasta app/code/(local ou community), apagar o xml da pasta app/etc/modules, e talvez até do banco de dados (inclusive tabelas criadas pelo módulo).

E mesmo assim o módulo pode continuar assombrando seu sistema. Por exemplo, um módulo de pagamento, você faz um pedido, e depois resolve apagar o módulo de pagamento. Quando for acessar esse pedido, e o sistema não encontrar mais o módulo, vai dar erro ao abrir o pedido. 

Damn it. Do it.

Bom, digamos que o erro já aconteceu, e agora você precisa encontrar uma solução. Muita gente começa a procurar pela resposta sem ter a pergunta. Você precisa primeiro descobrir a causa do problema, para então buscar uma solução.

Não fique filosofando “e se…“, “será que…“, “funciona?“, “dá certo?“.

Esse tipo de pergunta eu não respondo. Pois basta que você faça, que você tente, para descobrir a resposta. Então tome a iniciativa.

Como obter ajuda

Não são apenas os módulos que são criados fora dos padrões e apresentam problemas. Os templates também sofrem do mesmo mal.

Então quando algo não funcionar como deveria, coloque o template/tema padrão (default) do Magento e veja se o erro persiste.

O blog possui muita informação, então use o campo de busca antes de fazer uma pergunta. Utilize também o fórum da escola magento, criado justamente pra tirar dúvidas da comunidade, então é bem provavel que alguém já tenha passado pelo mesmo problema que você e resolvido. (use o campo de busca)

E meu dia tem 24 horas como o seu, não use a falta de tempo como desculpas para não procurar as respostas.

Se você comprou um módulo ou pegou um módulo de outro site (empresa/desenvolvedor), e este possui bug’s, tente resolver diretamente com o responsável pelo módulo. Eu posso te orientar no fórum, mas não vou de forma alguma resolver problemas que outros criaram.

E não adianta insistir, dar uma de louco, ou usar psicologia infantil para obter uma resposta por email. Eu NÃO vou tirar dúvidas por email, usem o fórum.

Sucesso!

O Autor

Mario SAM

Enquanto não surge uma oportunidade para ir morar em Portugal, sigo ajudando à distância.