Pinsapo Market 🌲
Definición de Alto Nivel (HLD)
Esta página detalla la infraestructura técnica y las decisiones de diseño del ecosistema digital Pinsapo Market, una plataforma SaaS multi-tienda en la nube (Multi-Merchant) enfocada en la digitalización del comercio local, delivery a domicilio y reservas en tiempo real. Desarrollada bajo el paradigma Serverless y Mobile-First con costes mínimos de operación (OpEx).
Rendimiento y Escalabilidad
La combinación de Angular 21, compilación Capacitor 8 y backend serverless en Supabase nos permite tiempos de carga instantáneos, sincronización fluida y la capacidad de soportar miles de peticiones simultáneas con costes de hosting de virtualmente 0€ en fases iniciales.
Seguridad Multi-Tenant
Implementación rigurosa de políticas Row Level Security (RLS) a nivel de motor PostgreSQL de base de datos. La información de los comercios está 100% aislada de manera nativa sin requerir validaciones complejas de rol en cada endpoint API.
business_centerEstructura Transaccional de Negocio
Para que una solución de digitalización rural o urbana sea viable económicamente, debe ser flexible. Pinsapo Market integra 5 modelos de negocio diferentes operando bajo el mismo motor transaccional:
Distribución Local a Domicilio
Diseñado para e-commerce local y alimentación. Soporta tarifas de entrega dinámicas y restricciones de radio basadas en coordenadas geográficas reales del cliente en relación al comercio.
- Flujo principal: Selección -> Carrito -> Pago Seguro -> Alerta en Comercio -> Delivery -> Entrega.
- Logística: Configuración por kilómetros de reparto desde el panel administrativo del comercio.
- Monetización: Cargos automáticos de comisión por transacción en pasarela de pagos.
Gastronomía e Integración de Espacios
Permite la digitalización de cartas gastronómicas con soporte para alérgenos y variantes (tamaños, guarniciones) además de reservas y pedidos desde la mesa mediante escaneo QR.
- Doble flujo: Pedidos Takeaway (para recoger en local) y reservas de mesa tradicionales con control de aforo automático.
- QR Tabletop: Asignación de mesa automática que se asocia directamente a la orden creada.
- Aceptación flexible: Opción de
auto_accept_orderso validación manual por personal del restaurante.
Agendamiento Profesional para Clínicas y Servicios
Para prestadores de servicios como clínicas dentales, fisioterapia, salones de estética o entrenadores personales. Convierte la disponibilidad horaria en reservas 24/7 sin llamadas.
- Control de Slots: Duración parametrizable según el tipo de servicio seleccionado.
- Prevención de Incomparecencia (No-Show): Recordatorios automatizados disparados 24h y 2h antes de la cita mediante cron jobs en Edge Functions.
- Sincronización horaria: Actualización instantánea en la interfaz del comercio para evitar sobreventa (Double Booking).
Tiendas Minoristas de Proximidad
Catálogo de comercio tradicional con variantes de stock físicas (colores, tallas, unidades físicas) integradas en el flujo logístico.
- Variación de Item: Gestión dinámica de precios según las opciones de producto (ej. talla XL incrementa +2€).
- Control de Stock exacto: Descuento en tiempo real al realizar el Checkout; bloqueo automático de compras de productos sin inventario disponible.
- Modalidades: Compra online con recogida en tienda física (Click & Collect) o envío local.
schemaDiseño del Sistema e Integraciones
La arquitectura sigue un patrón desacoplado BaaS (Backend as a Service) en el que el cliente se comunica de forma directa y segura con Supabase, orquestando las interacciones financieras y notificaciones de terceros mediante Supabase Edge Functions.
Cargando Detalles...
settings_suggestComponentes Técnicos y Justificación
En Pinsapo Market se ha seleccionado cuidadosamente cada tecnología buscando maximizar la reusabilidad, reducir el mantenimiento de servidores y ofrecer una experiencia de usuario premium:
Angular 21
Elegido por su robustez corporativa, inyección de dependencias nativa, tipado estricto con TypeScript y uso de Angular Signals para una reactividad fina en cambios de datos, minimizando rerenders innecesarios.
Capacitor 8
Empaqueta la lógica web en aplicaciones nativas compiladas de alto rendimiento para iOS (App Store) y Android (Google Play). Permite reutilizar el 100% del código reduciendo drásticamente los plazos y presupuestos.
PostgreSQL en Supabase
Al contrario que las bases de datos NoSQL que sufren de inconsistencias de datos históricos en e-commerce, PostgreSQL ofrece integridad referencial de grado financiero, triggers optimizados y consultas SQL avanzadas nativas.
Stripe Connect Express
Permite el procesamiento de cobros distribuyendo el dinero en tiempo real. Retiene la comisión por el servicio (Application Fee) y transfiere de manera transparente el monto al comercio afiliado, cumpliendo normativas europeas (PSD2).
Leaflet & OpenStreetMap
Visualización interactiva y ligera para que el cliente ubique comercios y seleccione coordenadas de reparto, evitando las tarifas prohibitivas de Google Maps API mediante el uso de librerías y mapas libres georreferenciados.
Edge Functions (Deno)
Lógica de negocio serverless escrita en TypeScript sobre el motor Deno. Se ejecutan geográficamente cerca del usuario final y escalan a cero cuando no hay tráfico, eliminando gastos de servidores encendidos 24/7.
OneSignal Push
Módulo de alertas nativo y web. Envía notificaciones de forma automatizada cuando cambia el estado de una orden o reserva, manteniendo al consumidor enganchado a la aplicación móvil.
PostHog JS
Analítica de producto autoalojada y compatible con privacidad. Analiza el comportamiento del usuario, el embudo de compras (conversion rate) y graba sesiones anónimas para resolver problemas UX de manera ágil.
databaseEsquema de Datos & Aislamiento (RLS)
Pinsapo Market aprovecha la robustez de PostgreSQL de forma relacional. A continuación se expone la estructura de las tablas principales y las políticas de Row Level Security (RLS) que protegen la privacidad de los comercios afiliados (inquilinos).
Cargando Esquema...
syncFlujos Reactivos en Tiempo Real
Una ventaja competitiva de Pinsapo Market es la sincronización inmediata del estado de los pedidos. Al cambiar en base de datos PostgreSQL, los cambios se propagan por WebSockets hacia la aplicación cliente sin refrescos.
Cargando...
// Cargando código...
diversity_3Desarrollo Ágil y Trabajo con Comercios Locales
El desarrollo de Pinsapo Market no se concibió en una oficina aislada, sino mediante un proceso de diseño participativo y de inmersión local directamente con comercios y profesionales en la localidad de Algodonales (Cádiz). Esto permitió afinar funcionalidades clave del producto real.
Identificación de Fricciones en el Comercio Local
Reuniones cara a cara con dueños de restaurantes, tiendas de comestibles y profesionales de la salud. Descubrimos que las plataformas tradicionales como Glovo eran inviables económicamente por sus altas comisiones (hasta 30%) y que los profesionales perdían horas agendando citas manualmente.
Aceptación Automática y Control de Slots Flexibles
A raíz del feedback de los comercios (que indicaron no poder estar pendientes del móvil durante horas
punta para aceptar pedidos), implementamos las variables auto_accept_orders y
auto_accept_appointments a nivel de base de datos. Para fisioterapeutas y centros de
estética, adaptamos slots flexibles dependientes del tipo de tratamiento para evitar solapamientos.
Integración de Stripe Express Onboarding
Facilitamos el proceso de registro de comercios permitiéndoles conectar su cuenta bancaria de forma autónoma en minutos gracias al onboarding express de Stripe Connect. Esto democratiza la pasarela de pago permitiendo a comerciantes con pocos conocimientos tecnológicos cobrar en línea directamente en su cuenta bancaria.
verifiedCalidad, Automatizaciones y Verificación
Para garantizar la estabilidad y consistencia a medida que la plataforma escala, se han estructurado flujos de automatización de desarrollo y pipelines de pruebas unitarias.
Unit Testing con Vitest
Implementación de pruebas rápidas sobre componentes y servicios en Angular utilizando Vitest en lugar del pesado Karma/Jasmine de Angular tradicional, reduciendo el tiempo de testeo local a segundos.
SPM CocoaPods Fix Script
Automatización de empaquetado para iOS en Capacitor mediante scripts en NodeJS que inyectan y corrigen automáticamente compatibilidades de OneSignal Swift Packages en los archivos del proyecto nativo de XCode.
Set-Env Dinámico
Script automático de inyección de variables de entorno set-env.js ejecutado en pre-build
para compilar de forma segura claves de entorno (Supabase API keys, OneSignal IDs) según el entorno
(staging o producción).