Dica Sobre Módulos Customizados para Magento

Ultimamente tenho percebido que existem algumas críticas sobre módulos desenvolvidos para Magento que não funcionam para alguns e funcionam para outros.

Como por exemplo meu próprio módulo para integração com PagSeguro (veja <a href=”http://www.magentocommerce.com/magento-connect/pagseguro-by-os-studios-1439.html”>aqui</a&gt;), que funciona para a maioria e para alguns existem problemas e erros que inicialmente são difíceis de se entender ou identificar.

No exemplo que citei no meu módulo, posso dizer que há alguns motivos que podem ocasionar erros em algumas lojas, mas se tivermos conhecimento de alguns processos podemos evitar dores de cabeça. Por exemplo:

Erro: Fatal error: Call to a member function setMethod() on a non-object in /home/storage/f/cd/cc/moschen/public_html/includes/src/Mage_Payment_Helper_Data.php on line 106;
Possível causa: Esta loja está com a opção de compiler ativado e o desenvolvedor, no momento em que fez a instalação, se esqueceu de desativar o compiler e só ativá-lo novamente após ter instalado e rodado o processo de compilação novamente.

Erro: Fatal error: Call to a member function toOptionArray() on a non-object in /home/wwwtatuu/public_html/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php on line 463;
Erro: Fatal error: Class ‘OsStudios_PagSeguro_Helper_Data’ not found in /home/luciorod/public_html/app/Mage.php on line 546;
Possível causa: Para ambos os erros, muito provavelmente esta loja possui mais de um módulo para PagSeguro instalado, ou seja, pode ser o módulo do Bruno Assarisse ou o do próprio PagSeguro. O problema aqui é que ambos os módulos utilizam como seu identificador a palavra ‘pagseguro’ e, claro, confunde o Magento no momento em que vai procurar certo arquivo.
Para você entender melhor o Magento procurou um arquivo que deveria estar em App/Code/Community/OsStudios/PagSeguro/Helper/Data.php, porém o módulo que ele está levando em consideração quando o helper é chamado com o nickname ‘pagseguro’ (Mage::helper(‘pagseguro’)) pode não ser o desenvolvido por mim, com o namespace ‘OsStudios’. Isso com certeza causará um erro.

Enfim, não vou comentar sobre todos os erros aqui, pois não é meu objetivo.
O meu objetivo neste post é deixar claro que nenhum módulo desenvolvido por um terceiro está livre de erros tando por questão de versão do Magento em questão, quanto em questão de compatibilidade com outros módulos.

Levando isso em consideração se faz importante que todo e qualquer módulo que você pretenda instalar em sua loja Magento, esteja ela em produção ou não, deve ser instalado primeiramente em uma versão de cópia ou um ambiente de testes antes que o código entre para o projeto real.
Isso com certeza vai te ajudar a diminuir (e muito!) a possibilidade de sua loja literalmente quebrar após a instalação ou limpeza de cache, pois o módulo já deve estar previamente homologado e com bandeira branca para ser colocado em produção.

Não existe fórmula mágica para se desenvolver um módulo 100% compatível com todos os outros, pois você pode cair no caso de ter um módulo que extenda um model específico no Magento e instale outro que extenda o mesmo model, então como prever isso? Impossível.

O jeito é sempre deixar este trabalho para desenvolvedores que conheçam a plataforma e saibam o que estão fazendo no momento da instalação de um módulo.

Até a próxima!

Tiago Sampaio

11 thoughts on “Dica Sobre Módulos Customizados para Magento

  1. Elane

    Oi Tiago,
    tem como resolver o erro da linha 546?

    Erro: Fatal error: Class ‘OsStudios_PagSeguro_Helper_Data’ not found in /home/luciorod/public_html/app/Mage.php on line 546;

    Like

    1. Elane,

      Muito provavelmente você possui outro módulo para PagSeguro instalado em sua loja, correto? Em caso afirmativo você precisa desabilitá-lo para que meu módulo possa funcionar.

      Um abraço!

      Tiago Sampaio

      Like

      1. wag

        erradooo ! fiz a instalação em uma versão que ainda não tinha sido adicionado módulo nenhum e obtive o mesmo erro.

        Like

  2. Felipe

    Tiago, comigo deu esse erro:
    Erro: Fatal error: Call to a member function toOptionArray() on a non-object in /home/wwwtatuu/public_html/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php on line 463;

    Só que já tá desabilitado a compilação, não tenho nenhum módulo do Pagseguro instalado. Só tenho o módulo dos correios e do BCash além dos módulos que vem por padrão do Magento.

    Você saberia o que pode ser esse erro? Estou que nem um doido procurando isso já faz horas e ngm tem resposta!

    Obrigado! Se responder, vai salvar minha vida 😀

    Like

  3. Pingback: Problemas no Módulo PagSeguro Magento 1.7 | Tresloukadu | Programação, Tecnologia, Atualidades, Linguística, etc

  4. Olá Thiago,

    Estou testando o seu módulo versão 1.0 do pagseguro no magento 1.5.1 e está dando erro ao processar pedido.

    Sabe me informar o que poderia ser? Se é algo que configurei errado?

    Fico no aguardo, obrigada!

    Like

    1. Olá Lane,

      Pode ser qualquer coisa… RSrsrs
      Para identificar o problema que está acontecendo com sua loja é preciso primeiramente analisá-la. Só assim posso lhe dar um diagnóstico.

      Abraços,

      Tiago Sampaio

      Like

  5. Gabriel

    Olá,
    Primeiramente parabéns pelo trabalho com o modulo.
    Estou enfrentando um problema com o mesmo, ao finalizar a compra e ser redirecionado para a tela do pagseguro, caio no seguinte erro:
    “Transação inválida. Sempre inicie transações a partir de sites confiáveis.”

    Já fiz a configuração no painel do pagseguro, liberando o pagamento apenas para ser feito via API, gerei o Token e coloquei as URL’s de retorno.

    Realmente não sei o porque desse erro, se puder me ajudar ficarei grato.

    Vlw!

    Like

  6. Angelica

    Olá Tiago,
    estou com um grande problema, não consigo acessar o painel do magento, esta apresentando o erro:

    Fatal error: Class ‘Zitec_Branding_Helper_Data’ not found in /var/www/html/sexloj.com.br/web/app/Mage.php on line 546

    pode me ajudar?

    Like

  7. Olá amigo! Vejo que és um expert no assunto, estou tentando instalar o PagSeguro na minha loja, mas está dando o seguinte erro: Fatal error: Class ‘PagSeguroLibrary’ not found in /home/gaute387/public_html/loja/app/code/local/PagSeguro/PagSeguro/Model/PaymentMethod.php on line 130

    Se tiver que fazer novamente a configuração, como faço isso? Simplesmente substituir o antigo copiando ou quê?

    Aproveitando seu poder, tem como acessar a pagina html do frontend? Precisava alterar as dimensões de algumas imagens direto no código html, mas pelo firebird do firefox só consigo chegar no css código.

    Grato,

    Like

Leave a comment