Canal B2G del Marketplace · réplica de Mercado Público en estilo workzone SMC · filtros, fichas, pipeline comercial, RADAR de proveedores, base de datos, APIs y paridad MP↔Marketplace.
El canal B2G del Marketplace replica las dos vías de compra del Estado en Mercado Público — Licitaciones y Compra Ágil — con el estilo del workzone SMC y, encima, un pipeline comercial propio (detección → seguimiento → decisión → oferta) que Mercado Público no da.
Se renombró "Oportunidades" → "Licitaciones" en toda la UI. Se sumó la sección Compra Ágil. Ambas comparten el mismo patrón: lista expandible (clic = despliega ficha + DECISIÓN + score) y filtros tipo Mercado Público.
| Vía | Qué es | Sección |
|---|---|---|
| Licitaciones | Procesos > 100 UTM (LE/LP/LR…) | /dashboard/mercado-publico/oportunidades |
| Compra Ágil | Compras < 100 UTM · publicar+cotizar en 1 paso | /dashboard/mercado-publico/compra-agil |
Fusión: se conservó 100% la lista expandible + DECISIÓN + SCORE existentes, y se sumaron los filtros de Mercado Público y la data enriquecida.
Rubro → Subcategoría → Producto (dependientes) · Región · Tipo de licitación (nombre completo: LP → "Licitación Pública ≥ 1.000 UTM e inferior a 2.000 UTM") · Estado · Presupuesto (Publicado / No publicado) · Fecha de cierre (Este mes / Próximo / 3m+) · Garantía · Comprador · Proveedor · Score mínimo · Mercado · "Solo productos" (excluye servicios).
Monto en CLP + UTM · Tipo nombre completo · Región / mercado · Fecha de publicación · Compras efectuadas y Reclamos por pago no oportuno del comprador (señales de riesgo de pago) · más el SCORE de 6 preguntas y el panel DECISIÓN (A ofertar / Ofertada [manual, gate con correo+fecha] / Descartar · quién oferta · nota · análisis profundo · flujo automático).
Réplica del buscador de Compra Ágil de Mercado Público, en estilo workzone SMC y con el mismo patrón fusionado.
Ejemplo real cargado: 2694-122-COT26 · Servicio de alarma · I. Municipalidad de Cartagena · $3.000.000.
| Tabla | Rol |
|---|---|
| licitaciones | Licitaciones B2G (+ columnas nuevas: region, fecha_publicacion) |
| b2g_compra_agil | Nueva · Compras Ágiles (< 100 UTM) |
| b2g_proveedor_precio | Abastecimiento: proveedores+precio/unidad (RADAR descubre, humano valida) |
| b2g_utm_diaria | Nueva · valor UTM del día (CLP↔UTM) |
| b2g_seguimiento (+canal) | Pipeline comercial · canal = licitacion | compra_agil |
| b2g_md_org (+métricas) | Comprador · compras_efectuadas_12m, reclamos_pago_12m |
Todas con RLS activo · acceso server-side (service_role). Aditivas (IF NOT EXISTS).
| Endpoint | Qué hace |
|---|---|
| POST /api/mercado-publico/optimizar-oferta | Recomendación IA por unidad (genérico, no solo $/kg) · degradación elegante si la IA rate-limita |
| GET/POST/PATCH /api/mercado-publico/proveedores | Abastecimiento: listar / alta (upsert) / validar (HITL) |
| POST /api/mercado-publico/radar-proveedores | RADAR auto-discovery (SoloTodo) · candidatos a validar |
| GET /api/mercado-publico/compra-agil | Lista Compra Ágil (DB + seed fallback · filtros) |
| GET /api/meli/me/items-hist | Historial de ofertas MeLi (serie temporal) |
| Endpoint | Qué hace |
|---|---|
| GET /api/cron/sync-licitaciones | Paridad incremental Licitaciones (OCDS) |
| GET /api/cron/sync-compra-agil | Paridad Compra Ágil (API 403 → bulk Datos Abiertos) |
| GET /api/cron/sync-utm | Valor UTM del día (mindicador.cl) — Fase 2 |
| GET /api/cron/cleanup-hist | Retención 90 días del historial de ofertas |
Con muchas integraciones, el patrón escalable NO es "un POST que lleva GET/PATCH" (rompe REST: cache, semántica, debugging). Lo correcto, en 2 niveles:
POST /api/gateway {op:'get'|'patch', recurso, …} que despacha a los recursos REST. Sirve para el Playground (catálogo vivo) y operaciones batch, sin romper REST en producción.Beneficio: menos superficie, más reuso, crece sin acoplarse. Las secciones Arquitectura / Integración / API Playground reflejan este modelo.
Objetivo: que Licitaciones y Compra Ágil entreguen la misma info que Mercado Público.
| Script | Opción A (incremental) | Opción B (paridad total) |
|---|---|---|
| sync-licitaciones | OCDS API por fecha (mp-client + persistLicitacion) · funciona, rate-limit en volumen | Bulk Datos Abiertos ChileCompra (archivo) |
| sync-compra-agil | API restringida (HTTP 403) · endpoint configurable | Bulk Datos Abiertos (única vía real) |
El muro: la API OCDS/Compra Ágil rate-limita y devuelve 403 en volumen. Para paridad total la vía robusta es la descarga masiva de Datos Abiertos, no llamada por llamada. Los 2 scripts incrementales quedan operativos para el día a día; el bulk es Fase 2.
| Dato | Fuente | Dificultad |
|---|---|---|
| Valor UTM del día | mindicador.cl/api/utm | 🟢 fácil |
| Región + fecha publicación licitación | OCDS Mercado Público | 🟡 media |
| Publicado / No publicado (conteos) | derivado de monto | 🟢 fácil |
| Compra Ágil (~8.332) | Bulk Datos Abiertos | 🟡 media |
| Compras efectuadas + reclamos pago | ficha del comprador (scrape) | 🔴 difícil |
Mientras tanto, esos campos muestran "s/d" — no se inventan números.