Silvio Tenfen Junior

Efeito Fantasma: Desaparecimento de Produtos da Frontend do Magento

Nos últimos dias tive que restaurar o backup do banco de dados de uma loja Magento (versão 1.4.2). A príncipio os produtos estavam sendo exibidos corretamente na loja. Porém, após reindexar os índices, os produtos simplesmente desapareceram da frontend da loja. Detalhes importantes: os produtos apareciam no backend e todos estavam com estoque e categorias corretamente configuradas. Opa! O que aconteceu?

Pesquisei muito no Google e não encontrei respostas nos fóruns em português. Fui de atrás de conteúdo em inglês. Encontrei várias pessoas com o mesmo problema no Fórum Oficial do Magento, porém encontrei no artigo desse blog uma luz para o meu problema:

http://factory-interactive.com/blog/product-disappear-magento

Com base no artigo do blog acima eu tentei entrar na loja, porém autenticado. Para minha surpresa, os produtos reapareceram. Ou seja, apenas como usuário não-autenticado (visitante) é que meus produtos não estavam sendo exibidos. Analisando melhor o artigo, cheguei a uma tabela no banco de dados do Magento chamada customer_group. Essa tabela mostra os 4 tipos diferentes de grupos de clientes: visitantes (not logged in), comum, atacado e revenda.

Comparando com o banco de dados de outra loja Magento percebi que na loja funcional o valor da chave do grupo visitantes era 0 (zero) e na loja com problemas estava como 4. Fiz a alteração do valor da chave de 4 para 0 (zero) na loja com problemas. Não deu certo. Tentei a reindexação dos índices. Pronto! Estavam todos lá novamente! Uma única linha para resolver o problema:

UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='Visitante';

Por algum motivo, eu acredito que o valor da tabela foi alterado durante a exportação. Já escrevi um artigo aqui que contém esse mesmo código que resolve o problema, porém descrito especificamente para resolver o problema de Erro 404 da Área Administrativa. Eu usei esse código na loja. Mas no meu caso, o valor do campo customer_group_code era “Visitante” e não “NOT LOGGED IN” como era descrito lá. Por isso o código não fizera efeito nesse caso…

Ufa! Essa foi por pouco!

Sair da versão mobile