01Primeros pasos
El backoffice es el panel de control donde gestionas todo tu complejo deportivo: canchas, horarios, precios, reservas, cobros, bloqueos, clientes y reportes. Es la herramienta del dia a dia para administradores y recepcionistas.
Como acceder
El login del backoffice se hace desde el mismo portal de tu club. Entra a tuclub.canchaplay.ar/login con tu email y contrasena de usuario interno. El sistema detecta automaticamente si sos administrador o recepcionista y te redirige al backoffice.
El formulario de login es el mismo para clientes y staff. Si te logueas con un email de usuario interno (Admin o Recepcionista), el sistema te redirige automaticamente al backoffice en vez del portal publico.
Roles y permisos
Hay dos roles de usuario interno en el backoffice. Cada rol tiene acceso a distintas secciones:
| Rol | Que puede hacer |
|---|---|
| Administrador | Todo: gestionar canchas, horarios, precios, reservas, bloqueos, clientes, reportes, usuarios internos, configuracion del club, suscripcion y plan, editor de predio. Es el dueno o encargado general. |
| Recepcionista | Operaciones del dia a dia: ver canchas, gestionar reservas, crear bloqueos, ver clientes, ver reportes, operar la caja. No puede gestionar usuarios, cambiar la configuracion del club ni modificar el plan. |
Navegacion del sidebar
El sidebar izquierdo tiene las secciones principales del backoffice. Las opciones que ves dependen de tu rol y del plan del club:
- Canchas y Horarios — la pantalla principal donde configuras canchas, bloques y generas turnos.
- Reservas — crear reservas presenciales y gestionar la grilla de turnos del dia.
- Bloqueos — bloquear canchas por mantenimiento, eventos, clima, etc.
- Clientes — listado y detalle de los clientes registrados.
- Reportes — metricas de ocupacion, ingresos y clientes (Standard/Pro).
- Caja — arqueo de caja fisica (Standard/Pro). Ver guia dedicada.
- Usuarios — crear y gestionar recepcionistas (solo Admin).
- Configuracion — politicas del club: anticipacion, cancelacion, pagos (solo Admin).
- Suscripcion — ver y cambiar el plan del club (solo Admin).
02Canchas y canchas
Un cancha reservable es cualquier espacio que tus clientes pueden reservar: una cancha de paddle, un campo de futbol 5, una cancha de tenis, etc. Cada cancha tiene un nombre, un tipo y un deporte asociado.
Crear una cancha
Desde Canchas y Horarios, hace click en + Nueva cancha. Completa:
| Campo | Descripcion |
|---|---|
| Nombre | Nombre visible dla cancha. Ejemplo: "Paddle 1", "Futbol 5 techado", "Tenis A". |
| Tipo | Cancha (requiere deporte) o Espacio extra (parrilla, quincho, vestuario). |
| Deporte | Solo para tipo Cancha: Paddle, Futbol, Tenis, Basquet, Voley, Squash. Determina el filtrado en el portal publico y las lineas SVG en el editor de predio. |
| Descripcion | Texto libre opcional. Se muestra en el portal publico debajo del nombre. |
El plan Free permite hasta 5 canchas. Standard hasta 15. Pro hasta 50. Si llegas al limite, el sistema no te deja crear mas. Podes ver cuantas te quedan en /backoffice/suscripcion.
Editar una cancha
Hace click en la cancha de la lista (o en el icono de edicion) para cambiar su nombre, descripcion o deporte. El tipo (Cancha vs Espacio extra) no se puede cambiar despues de creado.
Desactivar una cancha
Las canchas nunca se borran fisicamente: se desactivan. Una cancha desactivada no aparece en el portal publico ni se le pueden generar nuevos turnos, pero las reservas existentes se mantienen. Usa esta opcion cuando una cancha sale de servicio por tiempo indefinido (remodelacion, cierre permanente).
Si la cancha va a estar fuera de servicio por un periodo acotado (mantenimiento, evento), usa un bloqueo en vez de desactivar. El bloqueo afecta un rango de fechas; desactivar es permanente.
03Bloques horarios
Un bloque horario define cuando una cancha esta disponible para reservar. Es el molde que el sistema usa para generar los turnos individuales. Cada cancha puede tener uno o varios bloques activos, lo que te da total flexibilidad para configurar distintos horarios segun el dia de la semana.
Anatomia de un bloque
| Campo | Que significa |
|---|---|
| Dias habilitados | Que dias de la semana aplica este bloque: lunes, martes, etc. Podes marcar todos o solo algunos. |
| Hora inicio | A que hora empieza la disponibilidad. Ejemplo: 08:00. |
| Hora fin | A que hora termina. Ejemplo: 23:00. |
| Duracion (minutos) | Cuanto dura cada turno. Tipico: 60 min para paddle, 60 o 90 para futbol. |
| Intervalo (minutos) | Cada cuanto empieza un turno. Si la duracion es 60 y el intervalo es 60, los turnos son consecutivos sin descanso. Si el intervalo es 90, hay 30 min de descanso entre turnos (para limpieza, cambio de jugadores). |
Ejemplo practico
Una cancha de paddle que opera de lunes a viernes de 08:00 a 22:00, con turnos de 60 minutos seguidos, necesita un bloque asi:
- Dias: Lun, Mar, Mie, Jue, Vie
- Hora inicio: 08:00
- Hora fin: 22:00
- Duracion: 60 min
- Intervalo: 60 min
Esto genera 14 turnos por dia (08:00, 09:00, 10:00, ..., 21:00). El ultimo turno empieza a las 21:00 y termina a las 22:00.
Multiples bloques por cancha
Podes configurar horarios distintos por dia. Ejemplo: de lunes a viernes abris a las 8h, pero los sabados y domingos a las 10h y cerras a las 20h. Creas dos bloques:
- Bloque 1: Lun-Vie, 08:00-22:00, duracion 60, intervalo 60
- Bloque 2: Sab-Dom, 10:00-20:00, duracion 60, intervalo 60
Si varias canchas tienen el mismo horario, podes copiar bloques de una a otra. Selecciona la cancha origen y usa el boton "Copiar bloques desde..." para traer toda la configuracion de otra cancha de una sola vez.
Barra de cobertura
Debajo de cada bloque, el sistema muestra una barra de cobertura coloreada que representa visualmente que franjas horarias estan cubiertas por franjas de precio. Si la barra tiene huecos, significa que hay turnos que no tienen precio asignado — los clientes no van a poder reservarlos online hasta que les pongas precio.
Eliminar un bloque
Si un bloque ya genero turnos con reservas activas, el sistema te lo avisa antes de eliminar. Tenes tres opciones:
- Cancelar la operacion — no borras nada, vuelves atras.
- Eliminar sin cancelar reservas — el bloque se borra pero las reservas existentes se respetan. Los turnos ya generados con reserva siguen activos.
- Eliminar y cancelar reservas — se eliminan los turnos futuros y las reservas se cancelan automaticamente. Los clientes reciben notificacion por WhatsApp/Email.
Eliminar un bloque con "cancelar reservas" es destructivo: las reservas se cancelan y los clientes son notificados. Usalo con cuidado y solo si realmente necesitas cambiar el horario y no podes mantener las reservas existentes.
04Franjas de precio
Cada bloque horario tiene una o mas franjas de precio que definen cuanto vale cada turno segun el horario. Asi podes cobrar mas caro en horario pico y mas barato en horarios de baja demanda.
Configurar franjas
Dentro de cada bloque, las franjas se editan inline (sin modal). Cada franja tiene:
| Campo | Que significa |
|---|---|
| Hora desde | Inicio de la franja. Debe estar dentro del rango del bloque. |
| Hora hasta | Fin de la franja. No puede superar la hora fin del bloque. |
| Precio | El precio del turno en esa franja. Se usa al generar los slots. |
Ejemplo: precios diferenciados
Un bloque de 08:00 a 22:00 con tres franjas:
- 08:00 - 14:00: $5.000 (manana, mas barato)
- 14:00 - 18:00: $7.000 (siesta, precio intermedio)
- 18:00 - 22:00: $10.000 (noche, horario pico)
Cuando un cliente confirma una reserva, el precio se congela en ese momento. Si despues cambias las franjas de precio, las reservas ya confirmadas mantienen el precio original. Esto garantiza que nunca se le cobre de mas ni de menos a un cliente por un cambio posterior.
Cobertura completa
Para que los clientes puedan reservar todos los turnos de un bloque, las franjas deben cubrir todo el rango horario sin huecos. Si el bloque va de 08:00 a 22:00 pero solo tenes una franja de 08:00 a 18:00, los turnos de 18:00 a 22:00 no tendran precio y no se podran reservar online. La barra de cobertura te avisa visualmente cuando hay huecos.
05Generacion de turnos
Los turnos (slots) se materializan en la base de datos a partir de la configuracion de bloques horarios y franjas de precio. Esto significa que el sistema genera cada turno individual con su hora, duracion y precio antes de que alguien lo reserve. Los turnos se generan por mes.
Generar turnos manualmente
Desde Canchas y Horarios, selecciona una cancha y vas a ver el selector de mes. Hace click en Generar turnos para crear todos los turnos de ese mes segun la configuracion actual de bloques y precios.
No hace falta generar manualmente cada mes: el sistema tiene un job automatico que genera turnos hasta N meses a futuro (configurable por club, default 2 meses). Se ejecuta una vez por dia y completa lo que falte.
Vista semanal de turnos
Una vez generados, podes ver los turnos en una grilla semanal (7 dias por filas de hora). Cada celda muestra el estado del turno con su color correspondiente. Podes navegar semana a semana para ver todo el mes.
Preview de turnos
Antes de generar, el sistema te muestra un preview de como quedarian los turnos simulados para cada dia de la semana. Esto te permite verificar que la configuracion de bloques e intervalos esta correcta antes de materializar los slots.
Eliminar turnos de un mes
Podes eliminar los turnos generados de un mes especifico. Si hay reservas activas, se cancelan (los clientes reciben notificacion). Las retenciones activas se expiran automaticamente. Esta operacion es util cuando necesitas reconfigurar bloques y regenerar desde cero.
06Reservas presenciales
Ademas de las reservas online que hacen los clientes desde el portal, el staff puede crear reservas desde el backoffice para atender a clientes que llaman por telefono o se presentan en el mostrador.
Flujo de reserva presencial
La pantalla de reservas (/backoffice/reservas) tiene un flujo de dos pasos:
Seleccionar cancha
La primera pantalla muestra cards de todas las canchas activas. Hace click en la cancha donde quieras crear la reserva.
Elegir turno y confirmar
Se abre el calendario por dia con la grilla de turnos y sus estados. Selecciona una fecha, hace click en un turno disponible (gris), y se abre el panel de detalle a la derecha con el formulario de datos:
- Nombre y Apellido del cliente (obligatorio).
- Email (opcional — si tiene cuenta registrada, se autocompleta).
- Telefono (opcional — para contacto).
- Notas (opcional — "viene con 3 amigos", "pide paletas").
Al confirmar, la reserva se crea en estado Confirmada y el turno pasa a estado Reservado inmediatamente, sin necesidad de pago previo.
Si el cliente ya tiene cuenta en el portal, podes buscarlo por email y sus datos se autocompletan. Si no tiene cuenta, podes ingresar nombre, apellido y telefono directamente. La reserva se crea igual en ambos casos.
07Gestion de turnos
La grilla de turnos de /backoffice/reservas es el centro de operaciones del dia a dia. Desde ahi podes gestionar todas las acciones sobre un turno reservado.
Check-in
Cuando el cliente llega al club, el recepcionista marca el check-in haciendo click en el turno reservado y activando el toggle de check-in en el panel de detalle. Aparece un tilde verde al lado del nombre del cliente en la grilla.
El check-in es importante porque el sistema lo usa para el cierre automatico de turnos: al final del dia, los turnos con check-in se marcan como Completada y los que no, como NoShow.
Cobrar una reserva
Desde el panel de detalle del turno reservado, el boton Cobrar abre un modal donde elegis:
- Medio de pago: Efectivo, Transferencia, Tarjeta, o MercadoPago.
- Monto: se autocompleta con el saldo pendiente.
- Propina / Extra (opcional): si el cliente deja propina, se suma al cobro y se registra como consumo extra automaticamente.
Si elegis medio "Efectivo" y no hay ninguna caja abierta, el cobro falla con un mensaje: "No hay caja abierta. Abri una caja antes de cobrar efectivo." El sistema te ofrece ir a /backoffice/caja para abrirla. Los otros medios (transferencia, tarjeta, MP) no requieren caja abierta.
Cobros parciales y multiples
Una reserva puede acumular multiples pagos. Caso tipico: el cliente paga una sena online de $5.000 y al llegar al club paga el saldo restante de $5.000 en efectivo. Ambos pagos quedan registrados contra la misma reserva.
Consumos extra
Si el cliente consume bebidas, alquila paletas o cualquier extra, el recepcionista lo agrega desde el panel de detalle como consumo extra. Cada consumo tiene descripcion y monto, y aumenta el saldo pendiente de la reserva.
Cancelar una reserva
Desde el panel del turno reservado, el boton Cancelar abre un dialog de confirmacion. El sistema evalua la situacion y te avisa:
- Si hay pagos acreditados — warning en rojo: "se creara solicitud de reembolso". Al confirmar, se crea automaticamente una SolicitudReembolso que el staff procesa manualmente.
- Si hay saldo pendiente sin cobrar — warning: "deuda no cobrada". Solo para que estes al tanto.
- Sin pagos — se cancela sin mas tramite.
La cancelacion libera el turno y queda en estado Disponible para que otro cliente lo tome.
Reprogramar una reserva
Si el cliente necesita cambiar la fecha u hora, podes reprogramar en vez de cancelar y crear de nuevo. Desde el panel del turno reservado (sin check-in), el boton Reprogramar abre un dialog donde elegis la nueva fecha y turno.
- El nuevo turno debe ser del mismo deporte que el original.
- El nuevo turno debe estar disponible y ser futuro.
- La reserva no puede tener check-in hecho.
- Cuando el staff reprograma, el precio congelado se mantiene como cortesia del club.
La reprogramacion es atomica: el turno viejo vuelve a Disponible, el nuevo pasa a Reservado, y se envia notificacion al cliente.
Forzar liberacion de un turno retenido
Cuando un turno aparece en estado Retenido (violeta), significa que un usuario del portal publico esta en proceso de reservarlo. Si un cliente presencial necesita ese turno urgente, el staff puede forzar la liberacion.
El boton "Forzar liberacion del turno" aparece en el panel del turno retenido. Cancela la retencion y/o la reserva pendiente del usuario online (sin pago acreditado), y libera el turno inmediatamente. Si el usuario online ya pago, el sistema se rehusa y pide usar el flujo normal con devolucion.
Las solicitudes de reembolso generadas al cancelar reservas pagadas se gestionan desde un listado aparte. El staff las procesa manualmente (devolucion por transferencia, efectivo, credito en cuenta, etc.) y marca como Procesada o Rechazada.
Cierre automatico de turnos pasados
No necesitas cerrar cada turno manualmente al final del dia. El sistema tiene un job automatico que corre cada 1 hora y transiciona las reservas cuyo turno ya termino:
| Situacion | Se marca como |
|---|---|
| Check-in hecho y saldo ≤ 0 (todo pagado) | Completada — todo cerrado, turno finalizado correctamente. |
| Sin check-in | NoShow — el cliente no se presento. Queda en las metricas para seguimiento. |
| Check-in hecho pero saldo > 0 (queda plata sin cobrar) | Queda en Confirmada con deuda pendiente. Se sigue mostrando en rojo en la grilla hasta que se cobre. |
08Colores y estados de los turnos
La grilla de turnos usa un sistema de colores semanticos para que de un vistazo sepas el estado de cada turno. Entender estos colores es fundamental para operar la caja y el mostrador sin vueltas.
Estados basicos del slot
Turnos reservados: colores dinamicos
Los turnos reservados cambian de color segun la combinacion de saldo pendiente + check-in + tiempo. Esta es la regla que determina el color (se evalua en orden, la primera que matchea gana):
Verde = todo OK. Amber = esperando, normal. Rojo = turno terminado con plata pendiente, requiere atencion. Solo el rojo es urgente.
Indicadores adicionales
- Tilde verde (✓) al lado del nombre — el cliente hizo check-in. Permite diferenciar "verde por check-in" de "verde por pago online sin aparecer".
- Glow pulsante — el turno que esta en curso tiene un resplandor suave en el color de su estado (glow verde si esta pagado, glow amber si falta cobrar).
- Ring de seleccion — el turno seleccionado tiene un borde
--accentextra sin pisar el color de estado. - Texto de saldo — "Pagado" (verde) / "Falta $X" (amber) / "⚠ Falta $X" (rojo, turno pasado).
Slots no clickeables
Los turnos que no se pueden clickear (pasados, bloqueados, retenidos por otro) no muestran cursor de prohibido. En su lugar, al hacer click producen un shake horizontal corto (animacion de 400ms) que da feedback de "no se puede" sin resultar agresivo.
09Bloqueos de canchas
Un bloqueo marca una cancha como no disponible durante un periodo. Se usa para mantenimiento, eventos privados, clima adverso, reparaciones, o cualquier razon por la cual la cancha no puede recibir reservas.
Crear un bloqueo
Desde /backoffice/bloqueos, completa:
- Cancha — que cancha bloquear.
- Tipo de bloqueo — por slot individual, por fecha completa, o por rango de fechas.
- Motivo (opcional) — "Mantenimiento programado", "Evento privado", "Lluvia".
Preview de reservas afectadas
Antes de confirmar, el sistema te muestra un preview de todas las reservas activas que caen dentro del rango del bloqueo. Si hay reservas, tenes tres opciones:
- Volver — cancelar la operacion, no bloquear nada.
- Bloquear sin cancelar reservas — el bloqueo se crea pero las reservas existentes se respetan (conviven). Util si queres bloquear un rango futuro pero las reservas de hoy se mantienen.
- Bloquear y cancelar reservas — las reservas se cancelan y los clientes reciben notificacion automatica por WhatsApp/Email.
Los bloqueos prevalecen sobre la disponibilidad generada. Un turno bloqueado no es reservable, incluso si la configuracion de bloques horarios dice que deberia estar disponible. Siempre gana el bloqueo.
Eliminar un bloqueo
Podes eliminar un bloqueo existente para liberar los turnos. Los turnos que estaban bloqueados vuelven a estado Disponible. Las reservas que fueron canceladas al crear el bloqueo no se restauran automaticamente — habria que recrearlas.
10Clientes
La pantalla de Clientes (/backoffice/clientes) lista todos los clientes registrados en tu club. Sus datos estan totalmente aislados de otros clubes.
Listado de clientes
El listado es paginado y ofrece:
- Busqueda por nombre, email o telefono.
- Filtro por estado: activo o inactivo.
- Ordenamiento por: ultima visita, mas recientes, o nombre.
Detalle del cliente (drawer)
Al hacer click en un cliente, se abre un drawer lateral con toda la informacion:
- Datos de contacto: nombre, email, telefono. Badge "Google" si se registro con cuenta de Google.
- Metricas agregadas: total de reservas, monto total gastado, cantidad de no-shows, proxima reserva o fecha de ultima visita.
- Historial completo de reservas: cada reserva con estado, cancha, hora, precio congelado, monto pagado y si hizo check-in.
La seccion de Clientes esta disponible tanto para el Admin como para el Recepcionista. Ambos roles pueden ver el listado y el detalle de cualquier cliente del club.
11Reportes
El modulo de Reportes (/backoffice/reportes) ofrece metricas visuales sobre la operacion del club. Hay dos niveles segun tu plan:
Reporte de ocupacion Standard
Disponible con el plan Standard. Incluye:
- 4 KPI cards: porcentaje de ocupacion, horas reservadas, cancelaciones y no-shows.
- Insights automaticos: hasta 3 observaciones calculadas por el sistema (ej: "ocupacion baja en horario pico", "no-shows altos este mes").
- Heatmap hora x dia: que horas y que dias tienen mas ocupacion. Rango de horas dinamico (solo muestra las horas en las que operas).
- Heatmap cancha x dia: que cancha se usa mas cada dia.
- Ocupacion por cancha: ranking de canchas por porcentaje de ocupacion.
- Estados por semana: barras apiladas mostrando reservas confirmadas, canceladas y no-shows por semana.
- Anticipacion de reserva: cuantos dias antes reservan los clientes en promedio.
- Picos y valles: horarios con mas y menos demanda, y resumen de bloqueos.
Analitica avanzada Pro
Disponible con el plan Pro. Suma todo lo del Standard mas:
- 5 KPI cards adicionales: ingresos totales, ticket promedio, clientes activos, retencion M+1, comision ahorrada (destacada en dorado).
- Tendencia de ingresos: grafico de linea con evolucion mensual.
- Composicion por medio de pago: area apilada mostrando cuanto entra por efectivo, tarjeta, transferencia y MercadoPago.
- Base vs extras: cuanto viene de reservas vs cuanto de consumos extra.
- Rentabilidad por cancha: ranking por ingresos reales, no solo ocupacion.
- Cohortes de retencion: tabla que muestra cuantos clientes vuelven cada mes (6 meses de profundidad).
- Top 10 clientes: ranking con movimiento respecto al periodo anterior.
- Metricas de cancelacion y operativas.
- Export CSV: boton para descargar todos los datos en formato planilla.
Filtros
Todos los reportes comparten una barra de filtros comun:
- Rango: ultimos 7, 30 o 90 dias, o rango custom.
- Cancha: filtrar por una cancha especifica o ver todas.
- Deporte: filtrar por tipo de deporte.
- Comparar: toggle para comparar con el periodo anterior (ej: esta semana vs la semana pasada).
Todos los graficos (heatmaps, barras, lineas, areas) estan implementados con SVG inline y CSS grids, sin dependencias externas como Chart.js. Esto hace que carguen instantaneamente y sean livianos.
12Configuracion del club
La pantalla de Configuracion (/backoffice/configuracion) permite al administrador ajustar las politicas del club. Solo accesible para el rol Admin.
Politicas de reserva
| Configuracion | Que controla |
|---|---|
| Anticipacion minima (horas) | Cuantas horas antes del turno es el limite para reservar. Ej: 2 horas = el cliente no puede reservar un turno que empieza en menos de 2 horas. Default: 2. |
| Anticipacion maxima (dias) | Con cuantos dias de anticipacion puede reservar. Ej: 30 dias = el cliente puede reservar hasta 30 dias a futuro. Default: 30. |
| Ventana de cancelacion (horas) | Cuantas horas antes del turno el cliente puede cancelar gratis. Ej: 24 = puede cancelar hasta 24 horas antes. Despues de eso, no puede cancelar desde el portal. Default: 24. |
| Superposicion | Si un cliente puede tener mas de una reserva activa al mismo tiempo en el mismo cancha. |
Pago anticipado
| Modalidad | Que pasa |
|---|---|
| Sin pago | El cliente reserva sin pagar nada online. Paga en el mostrador al llegar. |
| Pago en mostrador | Igual que sin pago, pero el sistema muestra al cliente que debera pagar al llegar. |
| Sena online | El cliente paga un porcentaje al reservar (configurable: 30%, 50%, etc.) y el resto en el mostrador. |
| Pago total online | El cliente paga el 100% del turno al reservar via MercadoPago. No queda saldo pendiente. |
Para habilitar cualquier modalidad con pago online (sena o pago total), el administrador necesita configurar las credenciales de MercadoPago del club: Access Token y Webhook Secret. Cada club cobra en su propia cuenta de MP.
Timezone
El sistema guarda todo en UTC internamente. La zona horaria del club (ej: America/Argentina/Buenos_Aires) se usa para convertir horarios en la presentacion. Es importante configurarla correctamente para que los turnos aparezcan en la hora local del club.
Modo de visualizacion del predio
Controla como ven los clientes la pantalla de reservas en el portal publico:
- Lista — las canchas se muestran como cards simples. Disponible en todos los planes.
- Mapa — foto aerea del predio con zonas clickeables sobre cada cancha. Requiere feature
blueprintEditor(Standard+). - Editor — plano grafico interactivo del predio con canchas dibujadas. Requiere feature
graphicalCourtEditor(Pro).
Secciones bloqueadas por plan
Las secciones de configuracion que corresponden a features de un plan superior aparecen con un overlay gris con el texto "No incluido en tu plan" y un link a /backoffice/suscripcion para upgrade.
13Usuarios internos
La pantalla de Usuarios (/backoffice/usuarios) permite al administrador gestionar al equipo que opera el backoffice. Solo visible para el rol Admin.
Crear un usuario
Hace click en + Nuevo usuario y completa:
- Nombre y Apellido
- Email — se usa para el login.
- Contrasena — minimo 6 caracteres.
- Rol — Admin o Recepcionista.
El plan Free permite 1 usuario interno (el admin). Standard permite 5. Pro permite 20. El usuario que crea el club cuenta como el primer Admin.
Editar rol
Podes cambiar el rol de un usuario existente (de Recepcionista a Admin o viceversa) desde el boton de edicion.
Desactivar un usuario
Los usuarios no se borran: se desactivan. Un usuario desactivado no puede loguearse pero su historial de acciones (cobros, movimientos de caja, etc.) se mantiene para auditoria.
Enviar link de reset de contrasena
Si un recepcionista olvido su contrasena, el admin puede enviarle un link de reset desde el boton "Enviar reset" en la fila del usuario. El link llega por email, es de un solo uso y expira en 60 minutos.
14Suscripcion y planes
La pantalla de Suscripcion (/backoffice/suscripcion) muestra el plan actual del club y permite cambiar de plan. Solo accesible para el rol Admin.
Planes disponibles
| Plan | Precio | Comision MP | Canchas | Usuarios | Highlights |
|---|---|---|---|---|---|
| Free | $0 | 4% | 5 | 1 | Reservas basicas, portal publico, pagos online |
| Standard | $30 USD/mes | 2% | 15 | 5 | Reportes, caja, notificaciones WhatsApp, mapa del predio, reprogramacion |
| Pro | $80 USD/mes | 0% | 50 | 20 | Analitica avanzada, editor grafico, export CSV, SMS |
Cambiar de plan
El admin puede cambiar el plan del club de forma self-service. Al hacer upgrade, las features del nuevo plan se activan inmediatamente. Al hacer downgrade, las features del plan superior se desactivan (pero los datos se mantienen para cuando vuelvas a subirlo).
Si pagas anual, obtienes 2 meses gratis: Standard queda en $300 USD/ano ($25/mes) y Pro en $800 USD/ano ($66.67/mes).
15Editor grafico del predio
El Editor de predio (/backoffice/editor-predio) es una herramienta visual de drag-and-drop para disenar el layout de tu complejo. Requiere el plan Pro (feature graphicalCourtEditor).
Que podes hacer
- Dibujar canchas con lineas SVG por deporte (futbol, paddle, tenis, basquet, voley, squash). Cada cancha se muestra con las marcas de la cancha real.
- Personalizar colores (12 presets), texturas (rayas, liso, puntos), tamano y rotacion.
- Agregar elementos decorativos: caminos, vestuarios, estacionamiento, quincho, recepcion, mesas, arboles, cuadros de texto.
- Vincular canchas a canchas: cada cancha dibujada se asocia a una cancha reservable. Si no existe, el sistema lo crea automaticamente al guardar.
- Snapping: las canchas se alinean automaticamente cuando las arrastrás cerca de los bordes de otra (8px de threshold, con guias visuales).
Atajos de teclado
| Atajo | Accion |
|---|---|
| Ctrl+C / Ctrl+V | Copiar y pegar elemento seleccionado. |
| Ctrl+D | Duplicar elemento. |
| Ctrl+Z | Deshacer ultima accion. |
| Shift + rotar | Rotacion en incrementos de 15 grados. |
| Flechas | Mover elemento seleccionado pixel a pixel. |
| Delete / Backspace | Eliminar elemento seleccionado. |
Guardar y publicar
El layout se guarda como JSON en la configuracion del club. Al guardar:
- Las canchas que no esten vinculadas a una cancha se crean automaticamente como nuevos canchas.
- El layout se persiste y se muestra en el portal publico si el modo de visualizacion esta en "Editor".
Si el plan Pro es demasiado para vos, el plan Standard incluye el modo Mapa: subis una foto aerea de tu predio y dibujás zonas clickeables sobre cada cancha. Es mas simple que el editor grafico pero cumple la misma funcion de mostrar un plano visual.
16Portal publico
El portal publico es lo que ven tus clientes cuando entran a tuclub.canchaplay.ar. Es una pantalla mobile-first que integra todo el flujo de reserva en una sola pagina.
URL del portal
Cada club tiene su propio subdominio: tuclub.canchaplay.ar. El slug del club se configura al crearlo y es la parte antes de .canchaplay.ar. Los clientes acceden desde ahi para ver disponibilidad y reservar.
Que ve el cliente
- Date strip: barra horizontal con los proximos 21 dias para elegir fecha.
- Filtro de franja: Todo el dia, Manana, Tarde, Noche.
- Hero visual: plano del predio (mapa o editor, segun tu configuracion) o listado simple.
- Cards de canchas: cada cancha con badges de disponibilidad reactivos a la fecha y franja.
- Strip de cambio rapido: chips horizontales para cambiar de cancha sin volver arriba.
- Slots inline: turnos agrupados por Manana, Tarde, Noche.
- Bottom sheet de confirmacion: resumen antes de confirmar con countdown de retencion.
Flujo de reserva del cliente
El flujo es: elegir cancha → elegir turno → retener (se bloquea por unos minutos) → confirmar → pagar (si aplica) → listo.
Notificaciones
El cliente recibe notificaciones automaticas segun los canales habilitados en tu plan:
| Evento | Que recibe el cliente |
|---|---|
| Reserva confirmada | Confirmacion con fecha, hora, cancha y precio. |
| Recordatorio | Aviso previo al turno (configurable). |
| Reserva cancelada | Aviso de cancelacion (ya sea por el propio cliente, por el staff o por un bloqueo). |
| Pago rechazado | Si un pago online falla, se le avisa para que reintente. |
| Reprogramacion | Aviso con la nueva fecha y hora. |
Canales disponibles: Email (todos los planes), WhatsApp (Standard+), SMS (Standard+).
Pagos online (MercadoPago)
Si el club tiene pago anticipado configurado (sena o pago total), el cliente es redirigido a MercadoPago despues de confirmar. Tiene 7 minutos para completar el pago (configurable por club). Si no paga a tiempo, la reserva se cancela y el turno se libera. El cliente puede:
- Reintentar el pago desde
/reservas/:ido desde Mis Reservas. - Cancelar voluntariamente su reserva pendiente sin esperar los 7 minutos.
Tiempo real con SignalR
La grilla de turnos del portal publico se actualiza en tiempo real. Si otro cliente reserva o cancela un turno mientras estas mirando, lo ves reflejado al instante sin recargar la pagina.
17Preguntas frecuentes
Un cliente reservo y no vino. Que hago?
No necesitas hacer nada manualmente. El CierreTurnosJob corre cada hora y marca automaticamente como NoShow las reservas cuyo turno ya termino y no tienen check-in. Los no-shows se acumulan en las metricas del cliente (visible en el drawer de detalle) y en los reportes de ocupacion.
Puedo tener horarios distintos en verano y en invierno?
Si. Crea dos conjuntos de bloques horarios: uno para el horario de verano y otro para el de invierno. Cuando llegue el cambio de temporada, desactiva los bloques de la estacion que termina y activa los de la nueva. Los turnos ya generados para meses futuros se pueden eliminar y regenerar con la nueva configuracion.
Como veo cuanto dinero entro hoy?
Dos opciones: (1) el modulo de Caja te muestra en tiempo real todo lo que entro durante la sesion abierta, separado por medio de pago. (2) El modulo de Reportes te da una vista analitica de ingresos por dia, semana o mes.
Que pasa si cambio el precio de un turno despues de que alguien reservo?
Nada. El precio se congela al momento de la reserva. Si despues cambias las franjas de precio, los turnos futuros sin reservar adoptaran el nuevo precio, pero las reservas existentes mantienen el precio original. Esto protege tanto al club como al cliente.
Puedo hacer una reserva a nombre de alguien que no tiene cuenta?
Si. Las reservas presenciales del backoffice permiten ingresar nombre, apellido, telefono y email libremente sin necesidad de que el cliente tenga una cuenta registrada. Se llaman "datos presenciales" y quedan asociados a la reserva.
Como funciona la retencion temporal?
Cuando un cliente del portal publico selecciona un turno, el sistema lo retiene por unos minutos (por defecto 7) para evitar que otro cliente lo tome al mismo tiempo. Si el cliente no confirma la reserva dentro de ese tiempo, la retencion expira y el turno vuelve a estar disponible. Esto previene el doble-booking.
Un turno aparece como "Retenido" y el cliente se fue. Cuanto tiempo tarda en liberarse?
Las retenciones expiran automaticamente (el job corre cada 1 minuto). Si el staff necesita el turno urgente, puede usar el boton Forzar liberacion desde el panel de detalle del turno retenido para liberarlo al instante.
Se pueden cobrar en pesos argentinos?
Los precios se configuran como numeros sin moneda. El sistema no maneja conversion de monedas: usas la moneda local de tu club. En Argentina, los precios son en pesos argentinos. La suscripcion del plan (Standard/Pro) se cobra en dolares.
Mi recepcionista puede ver los reportes?
Si. Tanto el Admin como el Recepcionista tienen acceso a la seccion de Reportes. La diferencia de permisos esta en las secciones de gestion (configuracion, usuarios, suscripcion) que son exclusivas del Admin.
Que pasa si el internet se corta durante una reserva online?
Si el internet del cliente se corta despues de retener un turno, la retencion expira automaticamente en 7 minutos y el turno se libera. Si el corte ocurre despues de confirmar pero antes de pagar, la reserva queda en estado Pendiente y el sistema consulta activamente a MercadoPago cada minuto (polling) para verificar si el pago se completo. Si no se completo en el tiempo limite, la reserva se cancela y el turno se libera.
Se puede usar CanchaPlay en otros paises?
Si. El sistema es timezone-aware y soporta timezones IANA de cualquier region. MercadoPago esta disponible en Argentina, Brasil, Chile, Colombia, Mexico, Uruguay y Peru. Para otros paises, el pago online dependeria de integrar otra pasarela (como Stripe, que esta en el roadmap).