Visión general
- Proyecto
- Pharma Hub, comparador de precios para farmacias online
- Rol
- Arquitectura y desarrollo, del servicio al plugin
- Plataforma
- Servicio en la nube y plugin para WordPress y WooCommerce
- Entregables
- Informe de precios en el panel de la tienda, vínculo entre ofertas y productos, exportación en CSV y recogida de precios bajo demanda
- Estado
- Versión 1 construida, en pruebas con datos reales de una tienda
El dolor del cliente
La tienda vende cientos de productos en un comparador de precios online, donde el cliente final casi siempre elige por el precio más bajo. El dueño de la tienda no tenía forma de responder a preguntas sencillas:
- ¿En qué productos estoy más caro que la competencia, y por cuánto?
- ¿Qué tienda me está ganando en cada producto?
- ¿Dónde estoy perdiendo la venta por unos céntimos, que bajaría sin pensarlo?
La única forma de saberlo era abrir el comparador producto por producto y comparar a mano. Con cientos de ofertas y precios que cambian cada día, eso no se hacía, y la tienda perdía ventas por diferencias de céntimos sin saberlo.
El pedido fue directo: ver, en una sola pantalla, el precio de la tienda junto al precio más bajo, la tienda que lo ofrece, la diferencia en euros y en porcentaje, y un destacado para los «ajustes fáciles», los productos en los que la tienda es más cara por unos 10 céntimos como máximo.
La solución
Dos piezas que trabajan juntas.
El hub
Un servicio central que copia las ofertas de la tienda, lee los precios de la competencia, calcula la comparación y guarda el historial.
El plugin de la tienda
Muestra el informe dentro del panel de WooCommerce, vincula cada oferta con el producto de la tienda (por SKU, EAN o dirección) y exporta en CSV. El plugin solo muestra y vincula; todo el cálculo queda en el hub.
Qué ofrece el informe
- Precio de la tienda junto al precio más bajo, con el nombre de la tienda más barata
- Diferencia en euros y en porcentaje, y la posición de la tienda entre todas las que venden el producto
- «Ajuste fácil»: destaca las ofertas más caras por unos pocos céntimos, con un límite configurable
- Aviso de diferencia sospechosa, filtros, orden por prioridad y exportación en CSV
- Botón para pedir una nueva recogida de precios y seguir su avance
Por dentro
Para quien quiere los detalles técnicos.
- Varias tiendas desde el principio
- Cada tienda solo ve sus propios datos. El aislamiento se hace en la base de datos (row-level security de PostgreSQL) y la tienda se identifica por su token.
- Seguridad
- Tokens con permisos acotados, clave del comparador guardada cifrada y llamadas de servidor a servidor por HTTPS. El token nunca llega al navegador.
- Recogida resistente
- Cola en PostgreSQL con un worker, reanudación tras un fallo, límite de intentos y cierre limpio durante un despliegue.
- Recogida responsable
- Respeta el robots.txt, hace pausas entre peticiones y se detiene sola si el sitio da señales de bloqueo.
- Valores exactos
- Dinero en céntimos enteros y horas en UTC, para que no haya errores de redondeo ni de zona horaria.
- Decisiones documentadas
- 30 registros de decisiones de arquitectura y cientos de pruebas automatizadas, en el hub y en el plugin.
Estado
La versión 1 está construida y en pruebas con datos reales de una tienda.
Próximos pasos
- Integración con un segundo proveedor de datos de farmacia
- Panel de administración