La integración de Millenium con Ágora permite cargar a la habitación el importe de un ticket desde el propio TPV: el camarero busca la habitación, ve el titular y las fechas de la estancia y, al cargar, Connect Manager manda el cargo a Millenium y cierra el ticket en Ágora como albarán. El concepto que ve el hotel puede llevar el detalle de productos o un texto único con el TPV o el centro de venta.
Este manual es para el técnico de FOS o del distribuidor que configura la integración en un local. La visión general de los PMS con Ágora está en Hotel Hub: cómo funciona.
Qué hace la integración#
- Añade a Ágora un botón (acción personalizada) que abre la ventana de cargo dentro del TPV.
- Busca la habitación en Millenium y enseña el número, el titular y las fechas de entrada y salida.
- Carga a la habitación el total del ticket con IVA y, si el centro de venta del ticket está asociado, con su código de concepto del PMS.
- Escribe en el concepto los productos con sus unidades e importes o, con «Concepto único», el nombre del TPV (o del centro de venta) y la serie y número del albarán.
- Con «Agrupar productos por familia», divide el ticket en un cargo por familia, cada uno con su código de concepto.
- Al cargar, avisa si Millenium responde que la habitación está libre.
- Cierra el ticket en Ágora como albarán a nombre del cliente configurado, con el titular y la habitación en el nombre fiscal.
- Guarda cada cargo en Connect Manager con lo enviado y la respuesta de Millenium.
Qué no hace#
- No busca por nombre del huésped ni por tarjeta: solo por número de habitación.
- No anula en Millenium el cargo de un albarán anulado en Ágora: hay que anularlo a mano en el PMS.
- No envía facturas, propinas ni el desglose de IVA.
- No sincroniza reservas ni disponibilidad.
- No comprueba crédito ni fechas: carga a la habitación que devuelva Millenium.
Requisitos#
- API de Ágora accesible desde Connect Manager. Con Millenium, Connect Manager lee el ticket y crea el albarán llamando desde sus servidores a la URL de API del local. Sin esa conexión no se puede cargar. Abre el puerto a las IP de Connect Manager o publícalo con Zero Connect.
- Ágora con Herramientas → Acciones personalizadas.
- Acceso a la API de Millenium desde Internet: URL, usuario, contraseña, id. de cadena e id. de hotel.
- Quién hace qué. FOS da de alta el local y la integración con los datos de acceso que facilita Millenium. El distribuidor revisa la configuración de cargos, asocia centros de venta y familias y configura el botón en Ágora. El cliente valida con una prueba real.
Datos que necesitamos#
| Dato | Quién lo facilita / dónde se saca | Ejemplo o formato | Obligatorio |
|---|---|---|---|
| URL de la API de Millenium | Millenium | https://pms.ejemplo.com:8443/ (acabada en barra) | Sí |
| Usuario y contraseña | Millenium | usuario-demo | Sí |
| Id. de la cadena e Id. del hotel | Millenium | 1 y 1 | Sí |
| Código de concepto (id_pms) por centro de venta | Hotel o Millenium | BAR | Recomendado |
| Código de concepto por familia | Hotel o Millenium | BEB | Con «Agrupar productos por familia» |
| Cliente genérico de Ágora | Ágora del local | Cargos a habitación | Sí |
| URL de API y API key de Ágora | Distribuidor | http://servidor-demo:8984/ | Sí |
| Correos para avisos | Cliente o distribuidor | avisos@hotel-demo.com | Opcional |
Configuración paso a paso#
1. En Millenium#
- Pide a Millenium el acceso de integración: URL de la API, usuario, contraseña, id. de cadena e id. de hotel.
- Pide al hotel los códigos de concepto de Millenium que quiere para cada centro de venta y, si se van a agrupar, para cada familia.
2. En Connect Manager: el local (lo hace FOS)#
- En Administración → Locales, abre el local y rellena Cliente, Nombre, URL de API, API key, Dirección, Ciudad y Zona horaria.
- Pulsa el icono de prueba del campo URL de API (sale con la URL y la API key rellenas): debe salir «Conexión con éxito». Con Millenium es imprescindible.
- Guardar → Integraciones de hoteles → Añadir → proveedor Millenium.
3. En Connect Manager: Conf. general#
- Pausar el envío de cargos al PMS después de y Pausar el envío de cargos al PMS: solo los ve FOS. Con la integración pausada, el botón del TPV abre el aviso «Integración pausada».
- URL Api: la de Millenium, acabada en
/. Connect Manager le añadeBookingEnginejusto detrás, sin barra. - Usuario y Password: los de Millenium.
- Id. de la cadena e Id. del hotel: los de Millenium.
- Email de receptor de notificaciones: escribe cada dirección y pulsa Intro. Solo reciben los errores técnicos de los cargos por familia que salen en segundo plano.
4. En Connect Manager: Conf. de cargos#
- Agrupar productos por familia: manda un cargo por cada familia del ticket, con el código de concepto de esa familia (pestaña Familias). Las familias sin asociar van juntas con el código del centro de venta. Desmarcado: un único cargo por ticket.
- Concepto único: el concepto deja de listar productos y pasa a ser el nombre del TPV más la serie y número del albarán, por ejemplo «Barra - A/000123». Con esta opción el albarán se crea en Ágora antes de mandar el cargo, para poder poner su número.
- Usar centro de coste como concepto (solo con Concepto único): usa el nombre del centro de venta en lugar del nombre del TPV.
- Cliente: el cliente genérico de Ágora para los albaranes. Su nombre fiscal se sustituye por el del titular y la habitación, por ejemplo «Huésped Demo (Nº hab.: 101)».
5. En Connect Manager: asociaciones#
Guarda la integración para que se habiliten las pestañas.
- Centros de venta: por cada Centro de venta de Ágora, en External id. el código de concepto de Millenium y en Nombre externo una descripción. Si un centro no está asociado, sus cargos van sin código de concepto.
- Familias (solo con Agrupar productos por familia): por cada Familia, el Id. del servicio (código de concepto) y un Nombre externo.
6. En Ágora#
- Copia del bloque Enlaces la URL botón acción personalizada. Si empieza por
/venues/, antepónhttps://app.connectmanager.es. - En Herramientas → Acciones personalizadas pulsa Nuevo: Texto «Cargo habitación», Tipo «Url/Aplicación», Acción la URL copiada (sin tocar los marcadores entre llaves) y marca Mostrar Urls en un diálogo de Ágora.
- Coloca la acción en Herramientas → Configuración de botones y da su permiso a los perfiles que vayan a cargar.
Cómo funciona#
El botón abre la ventana «Consulta de datos» con el ticket abierto. El camarero escribe el número de habitación; Connect Manager pregunta a Millenium y enseña el titular y las fechas. Al pulsar Cargar, Connect Manager lee el ticket de Ágora, manda el cargo a Millenium y, si Millenium lo acepta, crea el albarán en Ágora. La ventana responde «Se generó el siguiente cargo» con el número del cargo en Connect Manager.
sequenceDiagram
participant TPV as TPV Ágora
participant CM as Connect Manager
participant PMS as Millenium
TPV->>CM: Abre la ventana con el ticket
TPV->>CM: Busca la habitación
CM->>PMS: Consulta la habitación
PMS-->>CM: Titular y fechas
CM-->>TPV: Datos de la reserva
TPV->>CM: Cargar
CM->>TPV: Lee el ticket por la API de Ágora
CM->>PMS: Cargo con importe, concepto y código
PMS-->>CM: Aceptado o código de error
CM->>TPV: Crea el albarán por la API de Ágora
CM-->>TPV: Se generó el siguiente cargo
Qué se envía: la cadena y el hotel, el número de habitación, el importe con IVA (descuentos ya repartidos), el código de concepto si lo hay y el texto del concepto. Con «Concepto único» el orden cambia: primero se crea el albarán y después se manda el cargo.
Cargos por familia: el primer cargo sale en el momento y el resto, un segundo después, en segundo plano. Si uno de esos falla queda registrado con error (no se ve en el panel) y el TPV ya ha dado el cargo por hecho: revisa en Millenium que estén todos.
Si Millenium no responde o rechaza el cargo: sin «Concepto único», el albarán no llega a crearse y el ticket sigue abierto en Ágora, así que se puede repetir. Si Millenium aceptó el cargo y lo que falló fue el albarán, al repetir no se vuelve a cargar: solo se crea el albarán. Con «Concepto único», el albarán ya existe y hay que hacer el cargo a mano o anular el albarán.
Comprobar que funciona#
- La prueba de conexión del local da «Conexión con éxito».
- En Ágora, abre un ticket, pulsa el botón y busca una habitación ocupada: salen número, cliente y fechas «Desde» y «Hasta».
- Pulsa Cargar: sale «Se generó el siguiente cargo: …» y la ventana se cierra.
- En Ágora, el ticket es ahora un albarán a nombre del titular con la habitación.
- En Millenium, la habitación tiene el cargo con el importe, el concepto y el código esperados.
- En Operaciones hoteleras → Cargos aparece el cargo con lo enviado y la respuesta.
Errores frecuentes y solución#
| Síntoma | Causa | Solución |
|---|---|---|
| «No se ha encontrado reserva para el número de habitación» | Millenium no tiene estancia en esa habitación | Compruébalo en Millenium y el número tecleado. |
| «Ocurrió un error: HTTP request returned status code 401…» | Usuario o contraseña de Millenium | Corrígelos. |
| «Ocurrió un error: cURL error …» o «…status code 404…» al buscar | URL Api mal escrita o sin la barra final | Pon la URL base de Millenium acabada en /. |
| «Ocurrió un error: No se pudo enviar a Millenium: la habitación está libre.» | Millenium devuelve que no hay nadie alojado | Comprueba la habitación en Millenium. |
| «Ocurrió un error: No se pudo enviar a Millenium.» | Millenium rechazó el cargo por otro motivo | Mira «Pedido externo (response)» en Operaciones hoteleras → Cargos. |
| «Ocurrió un error: AgoraApiHelper getReceiptFromAgora…» o «No existe ningún ticket en Ágora con el identificador: …» | Connect Manager no puede leer el ticket en Ágora | Revisa la conexión con la API de Ágora y que el ticket siga abierto y tenga líneas. |
| «Ocurrió un error: AgoraApiHelper sendDeliveryNoteToAgora…» | Ágora no creó el albarán | Revisa el Cliente configurado y la conexión con Ágora. |
| «El parámetro room_id es obligatorio…» | Se pulsó Cargar sin buscar la habitación | Busca primero la habitación. |
| «Integración pausada» | FOS ha pausado la integración | Contacta con soporte. |
Preguntas frecuentes#
¿Cómo conecto Millenium con Ágora?#
Con Connect Manager: FOS crea la integración con los datos de acceso de Millenium, se asocian los centros de venta y, en Ágora, se añade una acción personalizada con la URL de cargo.
¿Por qué la API de Ágora tiene que ser accesible desde fuera?#
Porque con Millenium es Connect Manager quien lee el ticket y crea el albarán en Ágora desde sus servidores.
¿Se anula el cargo en Millenium si anulo el albarán en Ágora?#
No. La anulación hay que hacerla también en Millenium.
¿Qué concepto ve el hotel en la habitación?#
Por defecto, la lista de productos con unidades e importes. Con «Concepto único», el nombre del TPV o del centro de venta y el número del albarán.
¿Qué significa «la habitación está libre»?#
Que Millenium no tiene a nadie alojado en esa habitación y no acepta el cargo.
Referencias#
- Ficha de la integración con Millenium
- Hotel Hub: cómo funciona
- Integración de Sihot con Ágora: la misma configuración de acción personalizada en Ágora
- Direcciones IP de Connect Manager