Decoroll
Uma loja OpenCart de persianas rolô: calculadora de preço e checkout corrigidos e, depois, um resgate de desempenho que reduziu a carga no banco de dados e acabou com a restrição de CPU da hospedagem.

Desafio
Uma loja de persianas rolô precisava corrigir a calculadora de preço e o checkout — e depois esteve perto de ser desligada pela hospedagem: o site e o banco de dados usavam cerca do dobro do limite diário de CPU, e ninguém sabia por quê.
Solução
- Calculadora de preço: arredondamento correto (antes somava 1 UAH até a valores inteiros), o total do carrinho deixou de variar 1–2 UAH com vários itens, o botão “Adicionar ao carrinho” fica bloqueado enquanto o preço é calculado para que ninguém compre a um preço errado numa conexão lenta, e as requisições da calculadora não falham mais com http/https misturados.
- Checkout: o campo de endereço se adapta à forma de entrega (endereço para o courier ou agência), o preenchimento automático do navegador não preenche mais os campos de região, e o Chrome parou de inserir a senha salva do administrador no formulário do pedido.
- E-mail: as mensagens do formulário de contato são enviadas pela caixa de e-mail da loja, com o visitante em Reply-To, e a hospedagem parou de rejeitá-las.
- SEO: cerca de 550 redirecionamentos obsoletos removidos, prefixos de idioma corrigidos nas URLs de imagens e em todos os feeds de produtos, um sitemap que apontava para localhost corrigido no robots.txt.
- O incidente de CPU: uma investigação documentada encontrou a causa raiz — links relativos no tema somados a URLs amigáveis não validadas criavam um espaço infinito de páginas para os crawlers. URLs aninhadas agora são reduzidas com um redirecionamento antes de o PHP rodar, os links foram corrigidos, oito índices no banco de dados e cache de URLs foram adicionados, a tabela de sessões foi limpa, o tratamento de imagens foi reforçado, um log de erros de 1 GB foi interrompido e o site passou para trás da Cloudflare com proteção contra bots — com um backup verificado do banco de dados antes de cada mudança.
- Ambiente de desenvolvimento: o projeto foi para o git com um ambiente Docker e configurações locais.
Resultado
Linhas lidas por visualização de página de produto: 619.950 → 0. Sessões no banco de dados: 57.040 → 6.777. Sitemap: 1,12 s → 0,16 s. Depois das correções, a página inicial responde em 0,20 s e as páginas de produto em 0,52–0,63 s. A hospedagem retirou a restrição.