Preguntas frecuentes

General

¿Qué es Seatmap.pro?

Seatmap.pro es una plataforma empresarial para crear, gestionar y renderizar mapas de asientos interactivos para recintos. Ofrece un Editor visual para diseñar mapas de asientos, un Booking Renderer SDK de alto rendimiento (@seatmap.pro/renderer en npm) para la selección de asientos basada en WebGL, y una Booking API v2 para la integración de disponibilidad y ventas en tiempo real. Seatmap.pro es solo una capa de visualización: nunca almacena tus precios, datos de ventas ni información de pago. Tu sistema de venta de entradas sigue siendo la única fuente de verdad.

¿Qué tipos de recintos admite Seatmap.pro?

Seatmap.pro admite recintos de todos los tamaños y configuraciones: salas de conciertos, estadios, teatros, arenas, centros de convenciones, instalaciones deportivas y cualquier espacio con asientos asignados o admisión general. El Editor gestiona asientos numerados, secciones de admisión general (GA), mesas, zonas de pie y distribuciones mixtas. Puedes importar planos SVG existentes y superponer los asientos sobre ellos.

¿Cuántos asientos puede manejar Seatmap.pro?

El Booking Renderer utiliza aceleración WebGL y renderiza más de 10.000 asientos a 60fps en navegadores modernos. El Editor puede crear esquemas con decenas de miles de asientos. Para recintos muy grandes (más de 30.000 asientos), el renderizador cambia automáticamente entre niveles de detalle (asientos individuales o vistas generales de sección) para mantener un rendimiento fluido.

¿Qué frameworks admite el renderizador?

El Booking Renderer SDK es independiente del framework. Funciona con React, Vue, Angular, Svelte o JavaScript puro. Instálalo con npm install @seatmap.pro/renderer y móntalo en cualquier elemento contenedor HTML. Consulta la guía de inicio del renderizador para ver ejemplos de integración.

Integración

¿Cómo integro Seatmap.pro con mi sistema de venta de entradas?

La integración sigue cuatro pasos: (1) diseña un mapa de asientos en el Editor, (2) crea un evento a través de la Booking API v2 y vincúlalo al esquema, (3) asigna precios a asientos o secciones, (4) incrusta el Booking Renderer en tu página de ventas usando el SDK de TypeScript. El renderizador se comunica con la Booking API para obtener disponibilidad de asientos en tiempo real, bloqueo y actualizaciones de estado. Consulta la guía de integración para ver un recorrido detallado, o lee Why API Integration is Crucial for Ticketing Platforms para una perspectiva más amplia.

¿Qué es la Booking API v2?

La Booking API v2 es una API REST para gestionar eventos, precios y el ciclo de vida de la reserva de asientos. Admite operaciones como crear eventos, asignar precios, bloquear asientos (con TTL configurable), confirmar ventas y desbloquear. La URL base de la API para despliegues en la nube es https://booking.seatmap.pro/api/private/v2.0/. La referencia completa está disponible en la documentación de la API v2.

¿Puedo incrustar el Editor en mi aplicación?

Sí. El Editor se puede incrustar en tu aplicación mediante un iframe. Puedes controlar qué herramientas y modos son visibles, pasar tokens de autenticación para el inicio de sesión automático por SSO y comunicarte con el editor a través de la postMessage API. Consulta las guías Iframe API e Iframe Communication.

Precios

¿Qué planes de precios están disponibles?

Seatmap.pro ofrece tres planes: Cloud (SaaS, desde EUR 100/mes, hasta 170.000 asientos al año), On-Premise (autoalojado, EUR 20.000/año o licencia perpetua de EUR 60.000, asientos ilimitados) y Custom (integración a medida para necesidades empresariales). No hay tarifas por asiento ni por reserva. Consulta la sección de precios en la página de inicio.

¿Hay una prueba gratuita?

Contáctanos a través del formulario de solicitud de demo para organizar una demostración personalizada y analizar las opciones de prueba. Ofrecemos una incorporación guiada para ayudarte a evaluar la plataforma con los datos de tu propio recinto.

Despliegue

¿Puedo desplegar Seatmap.pro en mis propios servidores?

Sí. El plan On-Premise proporciona imágenes de Docker y charts de Helm para el despliegue autoalojado en tu propia infraestructura de Kubernetes. Esto te da control total sobre la residencia de los datos, el aislamiento de red y la configuración de la infraestructura. Consulta la guía de despliegue On-Premise y la documentación de los charts de Helm. Para comparar los modelos de despliegue, consulta SaaS, On-Premise, and Managed On-Premise.

¿Cuáles son los requisitos del sistema para el despliegue on-premise?

El despliegue on-premise requiere Kubernetes (1.24+), Helm 3, PostgreSQL 14+ y Redis 7+. La plataforma se ejecuta como un conjunto de microservicios: Editor Service (Java 21, Spring Boot), Booking Service (Java 21, Spring Boot), Converter Service (Node.js 22) y las aplicaciones frontend. Los recursos mínimos recomendados son 4 núcleos de CPU y 8 GB de RAM para una carga de trabajo en producción.

Seguridad

¿Cómo gestiona Seatmap.pro la seguridad de los datos?

Seatmap.pro es solo una plataforma de visualización. No procesa pagos, no almacena datos de transacciones ni guarda información de precios en sus servidores. Tu sistema de venta de entradas sigue siendo la única fuente de verdad para todos los datos críticos del negocio. La comunicación entre el renderizador y la Booking API utiliza HTTPS con aplicación de HSTS. Los despliegues on-premise te dan control total sobre la residencia de los datos y las políticas de red.

¿Cumple Seatmap.pro con el RGPD?

Seatmap.pro sigue prácticas de datos alineadas con el RGPD. La plataforma recopila datos personales mínimos (solo cuentas de usuario del editor). Para los despliegues en la nube, los datos se alojan en centros de datos de la UE. Los despliegues on-premise mantienen todos los datos dentro de tu propia infraestructura. Consulta nuestra Política de Privacidad para más detalles.

Editor

No puedo añadir un usuario

No puedes añadir un usuario si

  • el usuario ya existe en la organización actual.
    En este caso, abandona la operación.
  • el usuario existe en otra organización.
    En este caso, elimina la cuenta del usuario en la otra organización y crea una nueva cuenta en la actual, ya que un usuario solo puede tener una cuenta en Editor.

Quiero desactivar el soporte de S3

Si no quieres usar gráficos de mapa de bits en lugar de gráficos vectoriales, desactiva S3 estableciendo SEATMAP_STORAGE_TYPE=local (consulta la guía de configuración de Image Converter).

Quiero definir colores para los precios

Puedes cambiar los colores de los precios tanto en Booking Renderer como en Admin Renderer.

Booking Renderer

Para cambiar el tema de color de los precios en Booking Renderer, ve a settings->theme->priceColors.

Uso básico:

const settings: IBookingRendererSettings = {
  theme: {
    priceColors: [
      ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#00FFFF', '#FF00FF'],
    ],
  },
};

Básicamente, puedes configurar un único array de colores de precios. Si el número de elementos de precio de un evento supera el número de colores del array, el sistema reutilizará los colores disponibles.

Para evitar colores duplicados en distintos precios, te recomendamos disponer del array de colores más largo posible.

Uso avanzado:

const settings: IBookingRendererSettings = {
  theme: {
    priceColors: [
      ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#00FFFF', '#FF00FF'],
      ['#FF0000', '#00FF00', '#0000FF', '#FF00FF', '#00FFFF'],
      ['#FF0000', '#00FF00', '#0000FF'],
      ['#FF0000', '#0000FF'],
      ['#0000FF'],
    ],
  },
};

Al renderizar un esquema, obtendremos el número de elementos de precio mediante la API y elegiremos la lista de colores adecuada. Por ejemplo, si la API devuelve 5 elementos de precio, elegiremos el array de 5 colores de estos ajustes:

En este escenario, si no encontramos un array que coincida exactamente con el número de elementos de precio devuelto, usaremos el primero como alternativa. Si el primer array tampoco es lo suficientemente largo, el sistema reutilizará los colores disponibles. Por eso te recomendamos colocar primero el array más largo.

Admin Renderer

En Admin Renderer, puedes definir diferentes categorías de color para diferentes asientos.

Para definir un color con el método setSeatsCategory(), pasa lo siguiente:

  • una lista de asientos (normalmente seleccionados manualmente por el administrador)
  • un número de categoría
  • un nuevo color
renderer.setSeatsCategory(seats, 3, '#E50914');

Este color no se guardará en la base de datos y es solo para uso del administrador.

También puedes ir a settings->theme->colorCategories y definir los colores predeterminados para Admin Renderer como se describe arriba.

Quiero impedir la eliminación de asientos que estén bloqueados y vendidos

Ahora puedes impedir la eliminación de asientos con precios asignados si su estado es Locked y Sold, a nivel de tenant o de organización.

En Editor, cuando intentas eliminar un asiento con un precio asignado en estado Locked y Sold, aparecerá una advertencia, pero aún puedes decidir eliminar el asiento (la solicitud se enviará al backend con forceDelete=true).

Pero si estableces prohibitDeleteSeats a nivel de tenant o de organización, la solicitud de eliminación fallará.

Para activar este ajuste, usa el método POST /api/organization/config/ con orgId como parámetro adicional.

{
"prohibitDeleteSeats":"true/false"
}

El endpoint solo está disponible para usuarios con el rol ROLE_SUPER_ADMIN.

Para obtener información del backend, usa el método GET /api/organization/current o los métodos de inicio de sesión.

Quiero ocultar ciertos elementos del menú al abrir Editor en un iframe

Cuando abres Editor en un iframe, puedes ocultar los elementos del menú que no necesites.

Para ello, al invocar el iframe, añade a la línea de dirección el parámetro hidden especificando los elementos del menú que quieres ocultar.

Por ejemplo, para ocultar el modo Pricing, las herramientas Select y Label, y las formas Line y Polygon, añade lo siguiente:
?hidden=pricing,select,label,line,polygon

Lista de elementos del menú que se pueden ocultar

  schema: 'mode.schema',
  underlay: 'mode.underlay',
  venueShape: 'mode.venueShape',
  pricingZones: 'mode.pricingZones',
  pricing: 'mode.pricing',
  section: 'mode.section',

  select: 'tool.select',
  seatRows: 'tool.seatRows',
  table: 'tool.table',

  shape: 'tool.shape',
  rect: 'tool.shape.rect',
  circle: 'tool.shape.circle',
  line: 'tool.shape.line',
  polygon: 'tool.shape.polygon',

  label: 'tool.label',
  selectSeats: 'tool.selectSeats',
  selectRows: 'tool.selectRows',
  addSeat: 'tool.addSeat',
  numberSeats: 'tool.numberSeats',
  selectSections: 'tool.selectSections',
  save: 'tool.save'

Quiero activar la vista previa en Editor

Para activar la función de vista previa en Editor, define los siguientes parámetros:

services.preview.url - una dirección para el servicio de vista previa. Por defecto: http://localhost:5000/
services.preview.path - una ruta para el servicio de vista previa. Por defecto: wconvert_pdf/