Visão geral
- Projeto
- Pharma Hub, comparador de preços para farmácias online
- Papel
- Arquitetura e desenvolvimento, do serviço ao plugin
- Plataforma
- Serviço na nuvem e plugin para WordPress e WooCommerce
- Entregas
- Relatório de preços no painel da loja, ligação entre ofertas e produtos, exportação em CSV e coleta a pedido
- Estado
- Versão 1 construída, em testes com dados reais de uma loja
A dor do cliente
A loja vende centenas de produtos em um comparador de preços online, onde o cliente final escolhe quase sempre pelo menor preço. O dono da loja não tinha como responder a perguntas simples:
- Em quais produtos estou mais caro que a concorrência, e por quanto?
- Que loja está ganhando de mim em cada produto?
- Onde estou perdendo a venda por poucos centavos, que eu baixaria sem pensar?
A única forma de saber era abrir o comparador produto por produto e conferir à mão. Com centenas de ofertas e preços que mudam todos os dias, isso não era feito, e a loja perdia vendas por diferenças de centavos sem saber.
O pedido foi direto: ver, numa única tela, o preço da loja ao lado do menor preço, a loja que o pratica, a diferença em euros e em porcentagem, e um destaque para os “ajustes fáceis”, os produtos em que a loja está mais cara por até cerca de 10 centavos.
A solução
Duas peças que trabalham juntas.
O hub
Um serviço central que copia as ofertas da loja, lê os preços dos concorrentes, calcula a comparação e guarda o histórico.
O plugin da loja
Mostra o relatório dentro do painel do WooCommerce, liga cada oferta ao produto da loja (por SKU, EAN ou endereço) e exporta em CSV. O plugin só mostra e liga; todo o cálculo fica no hub.
O que o relatório entrega
- Preço da loja ao lado do menor preço, com o nome da loja mais barata
- Diferença em euros e em porcentagem, e a posição da loja entre todas as que vendem o produto
- “Ajuste fácil”: destaque das ofertas mais caras por poucos centavos, com limite configurável
- Aviso de diferença suspeita, filtros, ordenação por prioridade e exportação em CSV
- Botão para pedir uma nova coleta e acompanhar o andamento
Por dentro
Para quem quer os detalhes técnicos.
- Várias lojas desde o início
- Cada loja só vê os próprios dados. O isolamento é feito no banco de dados (row-level security do PostgreSQL) e a loja é identificada pelo token.
- Segurança
- Tokens com escopos, chave do comparador guardada cifrada e chamadas de servidor a servidor por HTTPS. O token nunca chega ao navegador.
- Coleta resiliente
- Fila em PostgreSQL com um worker, retomada após falha, limite de tentativas e encerramento limpo durante um deploy.
- Coleta responsável
- Respeita o robots.txt, faz pausa entre pedidos e para sozinha se o site sinalizar bloqueio.
- Valores exatos
- Dinheiro em centavos inteiros e horários em UTC, para não haver erro de arredondamento nem de fuso.
- Decisões documentadas
- 30 registros de decisão de arquitetura e centenas de testes automatizados, no hub e no plugin.
Estado
A versão 1 está construída e em testes com dados reais de uma loja.
Próximos passos
- Integração com um segundo fornecedor de dados de farmácia
- Painel de administração