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 cloud 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 recolha 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 num 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 que produtos estou mais caro do que a concorrência, e por quanto?
- Que loja está a ganhar de mim em cada produto?
- Onde estou a perder a venda por poucos cêntimos, que eu baixaria sem pensar?
A única forma de saber era abrir o comparador produto a produto e comparar à 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 cêntimos sem saber.
O pedido foi direto: ver, num único ecrã, o preço da loja ao lado do menor preço, a loja que o pratica, a diferença em euros e em percentagem, e um destaque para os “ajustes fáceis”, os produtos em que a loja está mais cara por até cerca de 10 cêntimos.
A solução
Duas peças que trabalham em conjunto.
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 percentagem, e a posição da loja entre todas as que vendem o produto
- “Ajuste fácil”: destaque das ofertas mais caras por poucos cêntimos, 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 recolha e acompanhar o progresso
Por dentro
Para quem quer os detalhes técnicos.
- Várias lojas desde o início
- Cada loja só vê os seus próprios dados. O isolamento é feito na base de dados (row-level security do PostgreSQL) e a loja é identificada pelo token.
- Segurança
- Tokens com âmbitos, chave do comparador guardada cifrada e chamadas de servidor a servidor por HTTPS. O token nunca chega ao navegador.
- Recolha resiliente
- Fila em PostgreSQL com um worker, retoma após falha, limite de tentativas e encerramento limpo durante um deploy.
- Recolha responsável
- Respeita o robots.txt, faz pausa entre pedidos e para sozinha se o site sinalizar bloqueio.
- Valores exatos
- Dinheiro em cêntimos inteiros e horas em UTC, para não haver erros de arredondamento nem de fuso horário.
- Decisões documentadas
- 30 registos 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