Fork me on GitHub
Você esta em:Home » Destaque » Como tratar erros no Magento?

Como tratar erros no Magento?

Um série de ótimas dicas para tratamento de erros  do seu Magento. Exemplo: Como desligar o compilador pelo código?
Olá pessoal,
Segue uma série de dicas que há tempo queria postar, pois acredito que irá ajudar muito rs:
1 – Desabilitando um módulo Magento pelo código
Para desabilitar um modulo/plugin sem ter acesso pelo admin do magento basta ir em /app/etc/modules editar o arquivo correspondente ao modulo que deseja desabilitar, editando a linha <active>true</active>  para <active>false</active>
2 – Desabilitando a compilação do Magento pelo código
Para desabilitar a compilação sem ter acesso pelo admin do magento basta ir em /includes editar o arquivo chamado config.php comentando a linha abaixo com # na frente
Com o compilador ligado
define(‘COMPILER_INCLUDE_PATH’, dirname(__FILE__).DIRECTORY_SEPARATOR.’src’);  
Com o compilador desligado
#define(‘COMPILER_INCLUDE_PATH’, dirname(__FILE__).DIRECTORY_SEPARATOR.’src’);  
2.1 – Forçar Recompilação do Magento pelo código
Obs: A pasta que fica localizada dentro da pasta /includes chamada de SRC é onde se encontra todos os arquivos compilados pelo Magento, para forçar pelo código uma nova compilação do Magento, basta renomear essa pasta para -old ou removela. (Recomendo antes só renomeia e se tudo der certo e uma nova pasta SRC for criada automaticamente, ai sim pode remover ela)
3 – Para verificar se um módulo Magento esta instalado pelo banco com o phpmyadmin
Basta ir na tabela core_resource e verificar se o módulo encontra-se nessa tabela.
4 – Para forçar a reinstalação de um módulo do Magento
Basta ir na tabela core_resource verificar se o mesmo encontra-se na tabela e remover a linha do banco. Por exemplo para forçar a reinstalação do módulo OSC basta excluir a linha correspondente a:
onepagecheckout_setup 4.0.0 4.0.0
E assim ao entrar na adm do Magento irá forçar o Magento a reinstalar o módulo OSC
5 – Para verificar se existe um campo(Atributo) criado no Magento
Quando se instala o OSC ele faz uma série de instalações de novos campos no bd, no script de install coloquei que verifique antes se o mesmo já existe em sua base Magento. Por exemplo:
Para verificar se seu banco já possui um campo chamado cpf ou tipopessoa basta ir na tabela chamada eav_attribute e ver se o mesmo já encontra-se em seu bd.
6 – Para tornar um campo obrigatório ou remover a obrigatoriedade no Magento
Primeiro basta vc procurar pelo campo na tabela eav_attribute depois basta ver na coluna required, se ele estiver com 0(zero) ele não é obrigatório, mas se ele tiver com o 1(um) ele é obrigatório. Nas versões anteriores do OSC eu coloquei obrigatório o campo tipopessoa, dai ao desabilitar o OSC o usuário não conseguia terminar o seu checkout padrão do Magento, pois o campo tipopessoa esta como obrigatório, ou sejam, required = 1
7 – Para verificar se já existe os estados brasileiros em seu Magento
Basta visitar as tabelas directory_country_region directory_country_region_name e ver se existe os estados brasileiros em seu banco.
Essa parte foi bem difícil de se mexer com o Install do OSC, pois algumas lojas já possuíam essa personalização, só que como esperado os inputs não são padronizados, existem loja que usam somente o UF ao invés do nome do estado. E nem sempre o id correspondente de cada região bate.
No esquema de busca cep, onde tenho que setar qual estado é correspondente ao cep digitado, tive que fazer 3x para tentar chegar num denominador comum a todos.
  • Na primeira  tentativa fiz com que o estado fosse setado de acordo com seu ID ou seja para o Sao Paulo era setado 508 (Ou seja, para alguns usuários que possuíam uma loja personalizada setava o estado errado, pois para uns São Paulo seria outro número que não seja 508)
  • Na segunda tentativa eu setava de acordo com a posição dentro do select de cada estado. (Ou seja, funcionava, porém o numero de options dentro de um select variava de acordo com o browser, por isso setava errado em alguns navegadores)
  • Na terceira e espero ser a última seto de acordo com o contends do select, ou seja +/- assim:
    $j(‘select[id*=”‘billing:region”]’).children(“option:contains(‘Sao Paulo’)”).attr(‘selected’, ‘selected’); 
 8 – Habilitar exibição do erro no Magento
Não sei se esse é o melhor caminho, mas o uso rs. Para habilitar a visualização dos erros do Magento eu edito o arquivo index.php que fica na raiz do Magento. Ai então basta procurar a linha #ini_set(‘display_errors’, 1);   e remover o comentário dela tirando o # da frente.
Geralmente eu também coloco a linha Mage::setIsDeveloperMode(true);  abaixo da ini_set(‘display_errors’, 1); Para me mostrar os erros do Magento tb. Dai depois que o projeto estiver ok, eu volto para o estado original.
9 – Erro de codificação.
Bicho essa é foda D+ rs, recententemente peguei para desenvolver o módulo de integração com Ábacos da KPL. Então num certo ponto peguei esse trecho de source na web:

            <sales_order_save_after>
                <observers>
                    <deivisonarthur_abacos_observer>
                        <class>cronexec/observer</class>
                        <method>addOrder</method>
                    </deivisonarthur_abacos_observer>
                </observers>
            </sales_order_save_after>

E adicionei ao meu XML. Só que após add me apresentou um erros que nunca iria saber onde era se não eu ter notado que o erro aconteceu após inserir esse trecho de source. Pois ao add esse trecho acima me apresentou o seguinte erro:

Warning: simplexml_load_string(): Entity: line 35: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xA0 0xA0 0xA0 0xA0 in /usr/share/nginx/html/lib/Varien/Simplexml/Config.php on line 510

#0 [internal function]: mageCoreErrorHandler(2, ‘simplexml_load_…’, ‘/usr/share/ngin…’, 510, Array)
#1 /usr/share/nginx/html/lib/Varien/Simplexml/Config.php(510): simplexml_load_string(‘loadString(‘loadFile(‘/usr/share/ngin…’)
#4 /usr/share/nginx/html/app/code/core/Mage/Core/Model/Config.php(318): Mage_Core_Model_Config->loadModulesConfiguration(Array, Object(Mage_Core_Model_Config))
#5 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(414): Mage_Core_Model_Config->loadModules()
#6 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#7 /usr/share/nginx/html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#8 /usr/share/nginx/html/index.php(87): Mage::run(”, ‘store’)
#9 {main}

Então graças a Deus saquei que esse erro foi por conta da inclusão que fiz e fui rever oque se tratava o erro onde vi que era algo realacionado ao Input is not proper UTF-8, indicate encoding !
Pois então feras, veja bem! Peguei esse trecho de source e para limpar comumente eu abri o notepad colei e depois copiei novamente, então verifiquei que o erro mesmo assim continuava! Foda essa rsrsrs
Então abri a porra da notepad e troquei a fonte para script e veja oque me foi apresentado:

……..<sales_order_save_after>
………….<observers>
……………….<deivisonarthur_abacos_observer>
……………….<class>cronexec/observer</class>
……………….<method>adicionarOrdem</method>
……………….</deivisonarthur_abacos_observer>
………….</observers>
……..</sales_order_save_after>

 

Ou seja, eu troquei acima os espaços vazios por (.) ponto! pois foi oque me exibiu quando setei a fonte como sendo a script.  Resumindo o bloco de notas não limpa tudo e trechos de códigos pego na web podem nos gerar muita dor de cabeça! rsrsrs

 

OBS: Tome sempre cuidado ao mexer no bd do Magento e faça sempre bkp antes de qualquer alteração e instalação! Recomendo fazer um bkp do banco zipado, ou seja, comprimido. Se tiver Cpanel recomendo usar o item de menu do cpanel chamado backup. No item chamado Fazer Download de Backup de Banco de Dados MySQL e para restaurar essa base nesse mesmo item de menu vá em Restaurar Banco de Dados MySQL escolha a base recém backupeada e envie.

Sobre o Autor

Designer, Web Developer & Linux Administrator

Meu nome é Deivison Arthur, tenho 29 anos, sou Administrador Linux, Analista de Sistema, Webdesigner e Pesquisador. há mais de dez anos. Nasci no Rio de Janeiro, atualmente trabalho como Gerente de Tecnologia e E-commerce at Grupo FFernandes e Freelancer nas horas vagas. Desenvolvimento em Joomla, Wordpress, Drupal, Magento e outros GPLs...

Quantidade de Artigos : 114

Comentários (7)

  • Paulo Roberto

    Olá, estou desesperadooo, rs. Instalei um modulo e agora está dando erro, nem consigo acessar o admin nem a loja, por favor o que faço? Desde já agradeço

    Responder
  • Marcos

    Obrigado Deivison.
    Conseguir resolver meu problema com uma de suas dicas acima!

    Responder
  • Reinaldo

    bom dia! Deivison,

    Fiz a instalação do OSC6 no magento 1.8.1.0. Realizei a configuração no painel do magento. Fiz um teste e funcionou!! Mas agora está apresentando o seguinte erro:

    a:5:{i:0;s:31:”Value ’97,00′ has to be numeric”;i:1;s:772:”#0 /home/spazio/public_html/app/code/core/Mage/Checkout/controllers/CartController.php(131): Zend_Currency->toCurrency(’97,00′)
    #1 /home/spazio/public_html/includes/src/__default.php(13969): Mage_Checkout_CartController->indexAction()
    #2 /home/spazio/public_html/includes/src/__default.php(18331): Mage_Core_Controller_Varien_Action->dispatch(‘index’)
    #3 /home/spazio/public_html/includes/src/__default.php(17865): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
    #4 /home/spazio/public_html/includes/src/__default.php(20465): Mage_Core_Controller_Varien_Front->dispatch()
    #5 /home/spazio/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
    #6 /home/spazio/public_html/index.php(87): Mage::run(”, ‘store’)
    #7 {main}”;s:3:”url”;s:15:”/checkout/cart/”;s:11:”script_name”;s:10:”/index.php”;s:4:”skin”;s:7:”default”;}

    Agradeço

    Responder
  • marcelo

    Estou com um erro na tela de admin após ter juntado o css e java em desenvolvedor para otimizar o site, depois disso o admim e site ficou trodo desconfiurado sme aplicação de css.Como posso reverter isso. desde já agardeço

    Responder

Enviar Comentário

© 2012 Powered By Wordpress, Deivison Arthur

Ir para cima