Gustavo Vargas Rubiano
Proyectos

Farmacia headless: cadena de frío, fórmula médica, pastillero con SMS y promociones desde el ERP

PharmaPlus · tienda headless

PharmaPlus operaba directo sobre WordPress: lento y limitado, sin separar el back de gestión (WooCommerce, que el equipo sigue usando) de la experiencia de compra. Les armé un headless con reglas propias del rubro que ningún ecommerce genérico resuelve: cadena de frío por metadatos reales (no por palabras clave), fórmula médica con carga guiada en el checkout, pastillero virtual con recordatorios por SMS y motor de promociones alimentado en tiempo real desde el ERP del cliente.

El problema

PharmaPlus operaba directamente sobre WordPress (lento y limitado) sin separar el catálogo de gestión (WooCommerce, que el equipo sigue usando a diario) de la experiencia de compra. Además, como farmacia, tenía reglas que un ecommerce genérico no resuelve: qué productos exigen fórmula médica, cuáles necesitan cadena de frío, y cómo traducir a la tienda en línea los descuentos y convenios que ya administra su ERP.

La solución

Catálogo, búsqueda & ERP

  • Frontend headless en Next.js sobre WooCommerce (REST + WPGraphQL), conservando WordPress como panel real de gestión del catálogo.
  • Búsqueda avanzada sobre Supabase (función RPC con texto completo y fuzzy matching), multi-idioma (ES/EN/PT), con sugerencia en vivo y opción de agregar al carrito desde los resultados.
  • Metadatos regulatorios reales por producto (laboratorio, registro sanitario INVIMA, tipo de producto) sincronizados desde el ERP del cliente a WooCommerce.
  • Motor de promociones alimentado desde el ERP: descuentos escalonados por cantidad (B2C, por SKU) y precios fijos por convenio de cliente (B2B, por NIT).

Pagos & envíos

  • Wompi como pasarela principal (PSE, tarjetas débito/crédito, corresponsal bancario) y validación de stock en tiempo real contra WooCommerce en cada paso crítico del checkout.
  • Transferencia/consignación bancaria con comprobante de pago obligatorio antes de confirmar el pedido.
  • Contra entrega en efectivo o datáfono (zona Bogotá D.C.), y pago en tienda al momento de recoger.
  • Convenios/cupo de crédito con dos proveedores distintos, validados por número de documento antes de finalizar la compra.
  • Envíos calculados por ciudad con codificación oficial DANE de departamentos y municipios de Colombia.

Sistemas de farmacia

  • Cadena de frío: productos que requieren refrigeración detectados por categoría y metadato real (no por palabras clave, corregido tras una auditoría que encontró falsos positivos) con badge, alerta y cobro de nevera.
  • Fórmula médica: detección automática de qué medicamentos la requieren y carga guiada del documento durante el checkout.
  • Pastillero virtual con recordatorios por SMS: un cron cada 5 minutos calcula la hora exacta de la próxima dosis ajustada al huso horario de Colombia, descuenta inventario automáticamente y envía un segundo SMS cuando el stock baja del umbral.
  • Análisis dermocosmético virtual con IA (propuesta técnica propia, próxima a desarrollo): el cliente sube una foto y recibe una rutina personalizada de productos dermatológicos, como proyecto independiente en subdominio propio.

Seguridad, rendimiento & marketing

  • Seguridad en la API REST de WordPress: bloqueo de acceso no autenticado y de enumeración de usuarios, con excepciones controladas para WooCommerce y la API propia.
  • Cloudflare Turnstile y rate limiting (Upstash) sobre formularios y endpoints sensibles.
  • Caché en Redis (Upstash) sobre WooCommerce/WPGraphQL, invalidado por tags apenas cambia el stock.
  • Observabilidad con Sentry y cabeceras de seguridad (X-Frame-Options, X-Content-Type-Options, Referrer-Policy) a nivel de Vercel.
  • Google Tag Manager y Meta Pixel con fallback sin JavaScript.