Files
FarmaFinder/apps/parapharmacy-api
Antoni Nuñez Romeu 05b99e9ed4 feat: working scraping for Promofarma, DocMorris, and Primor
- Fixed Primor URL format and selectors
- Created simple N8N webhook that calls scraper API
- All 3 sources now working:
  - Promofarma: 20 products
  - DocMorris: 10 products
  - Primor: 20 products
- Total: 130 products in database
- N8N webhook at /webhook/scrape working correctly
2026-07-16 15:19:07 +02:00
..

FarmaFinder Parapharmacy API

Microservicio para productos de parafarmacia de múltiples tiendas españolas.

Arquitectura

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   N8N Workflows │────▶│  Parapharmacy    │────▶│    MongoDB      │
│   (Scraper)     │     │  API (Express)   │     │                 │
└─────────────────┘     └────────┬─────────┘     └─────────────────┘
                                 │
                                 ▼
                        ┌─────────────────┐
                        │  FarmaFinder    │
                        │  Backend        │
                        └─────────────────┘

Endpoints

Método Ruta Descripción
GET /api/products/search?q=term Buscar productos
GET /api/products/:id Detalle de producto
GET /api/products Listar productos
POST /api/products Crear producto
POST /api/products/bulk Crear/actualizar múltiples
PUT /api/products/:id Actualizar producto
DELETE /api/products/:id Eliminar producto
GET /api/products/categories Listar categorías
GET /api/products/brands Listar marcas
GET /api/sources Fuentes configuradas
GET /api/health Health check
GET /api/docs Swagger UI

Desarrollo

Requisitos

  • Node.js 20+
  • MongoDB 7+

Instalación

cd apps/parapharmacy-api
npm install

Ejecutar

# Desarrollo
npm run dev

# Producción
npm start

Variables de Entorno

PORT=3002
MONGODB_URI=mongodb://localhost:27017/parapharmacy
CORS_ORIGIN=http://localhost:3000

Docker

# Construir imagen
docker build -t farmafinder-parapharmacy-api .

# Ejecutar
docker run -p 3002:3002 -e MONGODB_URI=mongodb://host:27017/parapharmacy farmafinder-parapharmacy-api

Fuentes de Scraping

Fuente URL Estado
Promofarma promofarma.com ✅
Pharmarket pharmarket.es 🔄 Pendiente
DocMorris docmorris.es 🔄 Pendiente
1001Farma 1001farma.net 🔄 Pendiente
Primor primor.eu 🔄 Pendiente
MiFarma mifarma.es 🔄 Pendiente

Schema MongoDB

{
  name: String,           // Nombre del producto
  brand: String,          // Marca
  category: String,       // Categoría
  subcategory: String,    // Subcategoría
  description: String,    // Descripción
  image_url: String,      // URL imagen
  source_url: String,     // URL tienda original
  price: Number,          // Precio actual
  original_price: Number, // Precio anterior
  source: String,         // Fuente
  source_product_id: String,
  available: Boolean,
  rating: Number,
  review_count: Number,
  scraped_at: Date
}

Tests

npm test

Swagger

Documentación disponible en: http://localhost:3002/api/docs