Cómo funciona la vitrina CS, el apartado temporal de huecos, el enlace OT del gestor y las notificaciones en tiempo casi real en el host ASP.NET Core 8.
Las tiendas tipo consultorio / SPA usan el prefijo de URL /CS/{slug} (por ejemplo /CS/mi-spa). La API valida que el tipo de tienda coincida con la URL; si no, puede devolver error y redirigir al prefijo correcto.
POST /api/appointments/lock)Evita que dos compradores confirmen el mismo hueco al mismo tiempo. El token de apartado viaja en la línea del carrito y se valida al crear el pedido.
El gestor accede con usuario y contraseña definidos por el dueño en Agentes. La URL de la cita suele incluir el segmento OT y el id de la cita.
/{T|TR|RE|CS}/{slug}/OT/{idCita} — en consultorio: /CS/ALFA/OT/12345 (coincide con el prefijo de la vitrina)./{slug}/OT/{idCita} — ejemplo /ALFA/OT/12345; el servidor también sirve el portal en esta forma.El dueño puede generar o reenviar el enlace desde el detalle de la cita en la agenda del panel (compartir acceso al portal). Mantenga abrir el enlace en el mismo dominio donde opera la tienda (producción vs pruebas).
En Panel de ventas → Agenda puede configurar la agenda global, ver citas, abrir el detalle de una cita, cancelar (cuando aplique) o compartir acceso al portal del gestor.
El campo Apartado temporal en carrito (minutos) (solo consultorio) controla cuánto tiempo permanece reservado el hueco cuando un comprador añade la cita al carrito (entre 3 y 30 minutos).
El campo Anticipación mínima para reservar (minutos) define con cuánta antelación el comprador puede elegir un horario en la vitrina (0–10080 min, equivalente a 7 días). No confundir con el apartado en carrito.
En el host ASP.NET Core 8, la tienda puede usar notificaciones en tiempo casi real para dueños, gestores y compradores conectados.
/hubs/store-notifications mediante SignalR (biblioteca @microsoft/signalr desde CDN). El host Core ya no ofrece stream SSE en esa ruta.order_paid), novedades de restaurante, etc. La lista exacta evoluciona con el producto.dotnet watch, suele ser ruido de herramientas; recargue la página o use el perfil HTTP descrito en la guía de desarrollo del proyecto.En Configuración → Diseño de tienda → HTML personalizado puede insertar bloques que el motor sustituye al renderizar la vitrina.
| Placeholder | Uso en consultorio / citas |
|---|---|
{{gestor_list}} | Listado de expertos para que el comprador elija gestor antes de ver horarios (modo CS y flujos con agentes). |
{{product_portfolio}} | Catálogo y ficha de producto; obligatorio para mostrar servicios citables. |
{{banner}} / {{store_name}} | Banner superior y nombre de la tienda (común a todos los modos). |
Referencia ampliada de selectores CSS en el mismo acordeón de diseño del panel.
Reemplace {slug} por el nombre corto de su tienda y los ids por valores reales.
https://su-dominio/CS/{slug}https://su-dominio/CS/{slug}/SER-CON-001https://su-dominio/CS/{slug}/OT/99 (preferido; también …/{slug}/OT/99)https://su-dominio/{slug}/TPV?email=…&orderId=…&appointmentId=…Rutas habituales del flujo de citas en el API nativo (pueden delegarse al servidor legado si un administrador desactiva los toggles VendeFacil:UseNative* correspondientes). Detalle en docs/MIGRATION_NET8_SIGNALR.md.
| Método | Ruta (resumen) | Rol |
|---|---|---|
| GET | /api/storefront/cs/{slug} | Datos públicos de la tienda CS. |
| GET | /api/appointments/agenda-board/{storeId} | Tablero de huecos (query: fecha, agente, producto). |
| POST | /api/appointments/lock | Apartar hueco (JWT comprador). |
| POST | /api/orders | Crear pedido con líneas de cita y SlotLockToken si aplica. |
| GET | /api/appointments/{id}/agent-view | Portal gestor: vista de la cita (JWT gestor + contexto de tienda). |
| POST | /api/appointments/{id}/start · …/finish | Iniciar / finalizar servicio desde el portal. |
| WS / SSE | /hubs/store-notifications · stream notificaciones | Tiempo real (SignalR preferente). |
docs/CONSULTORIO_CITAS_AGENDA_Y_CHECKOUT.md — flujo completo, carrito, recibo y QA sugerido.docs/MANUALES_TIENDA.md — convenciones de URL por tipo de tienda.docs/MIGRATION_NET8_SIGNALR.md — toggles nativos, rutas Core y SignalR.