Integración de plataforma de Reservas en Glop

Requisitos:

  • La licencia de Glop debe tener el módulo Cloud o Business.
  • Debe tener marcado el módulo de la propia integración en el apartado API Rest en la configuración del sitio del cliente.
  • Previamente, se debe configurar la integración (si fuera necesario).
  • No se pueden tener habilitadas las reservas de Glop (Agenda en comercios) y cualquier otro sistema de reservas de manera simultánea.
  • La plataforma de reservas nos debe asignar un API-Key único para Glop que usaremos para todas las llamadas en el header. La plataforma identificará la reserva a través de este valor y el identificador de la reserva.

Localizaciones: Deliveries | Glop API Rest

  1. Obtención de localizacionesPara poder obtener las reservas y redirigirlas a nuestros terminales, necesitamos que la plataforma integradora de Reservas nos envíe localizaciones/restaurantes a las que van dirigidos las reservas.
    Nosotros hacemos un mapeo entre localizaciones y terminal de Glop de envío de las reservas.

    La plataforma integradora deberá desarrollar un endpoint al cual llamaremos para que nos devuelva las localizaciones. La respuesta debe tener estas características:[ { "id":"96f8adc9-c1dd-42a8-94a1-6b6d669bcce6", "nombre":"Nombre Localización 1" }, { "id":"96f0d827-8b28-4f65-a874-89f67e76a9b4", "nombre":"Nombre Localización 2" } ]El campo id debe ser único para todos las localizaciones existentes. El id de localización lo obtenemos de la llamada explicada aquí.El campo nombre es el nombre de cada localización (restaurante o establecimiento)
    Este endpoint debe ser remitido por la plataforma integradora a joaquin@glop.es.
  2. Nuestro sistema siempre utiliza el id de localización de un JSON de reserva para «llevarlo» hasta el terminal (una vez mapeado).
  3. La plataforma integradora necesita obtener de Glop los identificadores de las mesas para hacer un match entre el salón de Glop y el de la plataforma Obtener mesas por id grupo | Glop API Rest “La solicitud requiere que el Servicio Glop esté activo para responder a esta petición. Esto es necesario para la correcta recuperación de tablas a través de los grupos de terminales.” El ID de grupo se refiere a un establecimiento (Localización) que agrupa al menos un terminal. Un grupo puede contener uno o más terminales. Por ejemplo, si un propietario tiene dos establecimientos, esto implicaría tener dos ID de grupos diferentes: uno con uno o más terminales y el otro con sus propios terminales. Aquí un enlace al endpoint de obtener la lista de grupos de terminales: Obtener lista grupos terminales | Glop API Rest

Mesas: Obtener mesas por id grupo | Glop API Rest

  1. Obtención de mesas
    Para poder asignar las reservas a las mesas equivalentes en los salones de glop, las plataformas integradoras deberán usar este endpoint para recibir los identificadores únicos de cada mesa.
    Nosotros hacemos un mapeo entre el número de mesa en los salones Glop y los identificadores que devolvemos en el endpoint. Para poder realizar esta llamada, el software Glop deberá estar en marcha.

    Estructura endpoint a sistema externo de reservas

    curl --request GET \ --url https://api.glop.es/api/v1/cloud/tables?id_grupo={id_grupo} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer 123'
    • Id_grupo: ID del grupo de terminales sobre el cual queremos obtener las mesas.
    • Authorization: Token de acceso que se obtendrá mediante el endpoint de obtener token.

      Nuestro endpoint devolverá una respuesta con estos parámetros:
    [ { "id_mesa": "12", "numero_mesa": "9", "id_salon": "1", "nombre_salon": "Salon Glop" } ]
    • id_mesa: Identificador único de la mesa.
    • numero_mesa: Número de la mesa en el salón de glop.
    • id_salon: Identificador único del salón al cual pertenece la mesa.
    • nombre_salon: Nombre del salón al cual pertenece la mesa en glop.

Obtener token de acceso: Autorización | Glop API Rest

  1. Obtención del token
    Para poder realizar llamadas a la API de Glop se necesitará obtener el Bearer Token de autorización mediante este endpoint. Para poder obtenerlo necesitaremos tener un sitio configurado con API Rest en App.glop.es.

    Estructura endpoint a sistema externo de reservas

    curl --request POST \ --url https://api.glop.es/api/v1/auth/oauth/token \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "grant_type": "client_credentials", "client_id": "{{client_id_client_user}}", "client_secret": "{{client_secret_client_user}}", "scope": "*" }'
    • client_id: Id de las credenciales de API Rest del sitio.
    • client_secret: Secret de las credenciales de API Rest del sitio.
      Estos valores deberán ser suministrados por el soporte de Glop.

      Nuestro endpoint devolverá una respuesta con estos parámetros:

      { "token_type": "string", "expires_in": 0, "access_token": "string" }El token a usar será el devuelto en el parámetro access_token.

Casos de uso:

  1. Un cliente realiza una reserva desde la plataforma externa (día, fecha, mesa, nombre, email, etc).
    1. La plataforma externa le asigna número de reserva
  2. Nuestro software consulta reservas de hoy + dos días (reservas a dos días vista con las de hoy) (Obtener reservas)
  3. El cliente llega al establecimiento y es llevado a su mesa.
    1. Si el cliente tiene una reserva previa:
      1. Si la reserva tiene una mesa asignada desde la plataforma, la mesa estará disponible para el cliente siempre que se asigne manualmente. Update-Table Sit-Client
      2. Si el establecimiento cambia una mesa (por cualquier motivo), Glop enviará el traspaso de la mesa de la reserva a la plataforma. Update-Table
      3. Al cerrar la cuenta, se enviará la información del ticket a la plataforma Set-Ticket
    2. Si el cliente NO tiene reserva previaWalk-InUpdate-TableSit-Client
      1. Se abrirá una mesa libre en Glop y se enviará petición walk-in (nueva mesa sin reserva) al sistema de reservas indicándole que esa mesa está ocupada
      2. El sistema de reservas nos debe responder con un identificador de reserva
      3. Al cerrar la cuenta, se enviará la información del ticket a la plataforma Set-Ticket

Ciclo completo de una Reserva

Agregado de productos a una Reserva

Endpoints necesarios para la integración con GLOP

Algunos endpoints requieren el parámetro apikey en la cabecera o URL. Este parámetro será único en todas las llamadas realizadas por nuestros terminales a la API de terceros, independientemente del establecimiento que realice la llamada. Los establecimientos se «registrarán» y se «gestionarán» a través del listado de localizaciones y terminales en nuestra configuración de la API.

Obtener Reservas

Descripción

Obtenemos la lista de reservas confirmadas o pendientes de confirmar desde Glop para poder gestionarlas de manera individual, asegurando así una correcta integración entre Glop y la plataforma de reservas. Al enviar una reserva sin mesa, es estrictamente necesario que esta venga con la cadena «SIN».

Estructura endpoint a sistema externo de reservas

GET https://www.{externalreservsmanager}.com/api/restaurant/get_reservs/apikey/{restaurant}/{date_start}/{date_end}

https://www.{externalreservsmanager}.com/api/restaurant/get_reservs/6YR0GeEhok8Ghy1kfNJa/tpv/2024-06-11/2024-06-13
  • restaurant: localizador de restaurante
  • date_start: fecha filtro inicio formato (dd-mm-YYYY)
  • date_end: fecha filtro fin formato (dd-mm-YYYY)

Ejemplo respuesta del sistema externo de reservas

{ "resp": 1, "reservs":[ 
  { 
  "id_reserv": "eytoRR",//Imprescindible, Identificador único de la reserva 
  "product": "1", // Nullable 
  "date_add": "2019-11-26", // Nullable
  "time_add": "12:19:36", // Nullable
  "user_name": "ANONYMOUS", // Nullable 
  "date": "2019-11-27", // Fecha de la Reserva - Nullable
  "for": "2", // Número de comensales de la Reserva - Nullable
  "commentary_restaurant": "", // Comentario asignado a la Reserva - Máximos 255 Carácteres - Nullable 
  "commentary_client": "", // Nullable
  "user_phone": null, // Número de teléfono asignado a la Reserva - Nullable 
  "tables": "67", // Imprescindible, ID de la mesa o mesas a la cual se les asignará la reserva, si no viene el ID, enviar "SIN" 
  "status": "-2", //Contemplamos el Status 1 y -2,</em> -2 = CANCELADA, 1 = CONFIRMADA 
  "source": null, // Nullable 
  "duration": "180", // Nullable
  "camarero": null, // Nullable 
  "is_group": "0", // Nullable
  "id_client": "oGS2wA", // Identificador único del Cliente de la plataforma de reservas 
  "origin": "", // Nullable
  "email": "", // Correo eléctronico asignado a la Reserva - Nullable
  "first_name": "Pepito", // Nombre del cliente que realizó la Reserva - Nullable 
  "last_name": "Perez" // Apellido del cliente que realizó la Reserva - Nullable
  } 
], "page": "0" }
*Nullable: Que puede ser nulo. (null)

Walk-In

Descripción

Asignación de una mesa ad hoc para clientes que llegan sin reserva

Asignamos una mesa de Glop sin previo aviso («walk-in») cuando ubicamos a clientes sin reservas, utilizando Glop. De esta manera, notificamos a la plataforma de reservas que la mesa está ocupada.

Estructura endpoint a sistema externo de reservas

curl --location 'https://www.{externalreservsmanager}.com/api/reserv/walk_in' \ --header 'Content-Type: application/json' \ --header 'apikey: apikey' \ --data '{ "restaurant": "casa-carlos", "hour": "22:00", "people": "3", "id_table": "13" }'
  • restaurant: localizador de restaurante
  • hour: Hora format (HH:mm)
  • people: número de comensales
  • id_table: mesas separadas por coma a reservar para esos comensales

Ejemplo respuesta del sistema externo de reservas

{ "resp": 1, "id_reserv": "kfMxTN" }

Inmediatamente después se hace un Update Table y un Sit Client

Update Table

Descripción

Asignar o traspasar una reserva de una mesa a otra. Asignamos el identificador de la mesa a otra mesa al realizar un traspaso de mesa. Si una reserva está asignada a 2 mesas, esta no podrá ser traspasada.

Estructura endpoint a sistema externo de reservas

curl --location 'https://www.{externalreservsmanager}.com/api/reserv/update_table' \ --header 'Content-Type: application/json' \ --header 'apikey: apikey' \ --data '{ "id_reserv": "rhRa36", "tables": "105" }'
  • id_reserv: identificador de reserva
  • tables: El nuevo identificador de la mesa para la reserva
  • apikey

Ejemplo respuesta del sistema externo de reservas

{ "resp": 1, "message": "Ok" }

Sit Client

Descripción

Asignar a una reserva asiganda a un cliente una mesa especifica en Glop para que la plataforma confirme o indentifique la mesa en la que el cliente esta sentado.

Estructura endpoint a sistema externo de reservas

curl --location 'https://www.{externalreservsmanager}.com/api/reserv/sit_client' \ --header 'Content-Type: application/json' \ --header 'apikey: apikey' \ --data '{ "id_reserv": "9F4G4t" }'
  • id_reserv: reserva a abrir
  • apikey

Ejemplo respuesta del sistema externo de reservas

{ "resp": 1, "message": "Ok" }

Set Ticket

Descripción

Se envía a la plataforma de reserva en el momento de cerrar la venta de una mesa con identificador de reserva indicando que la mesa queda libre e informando de los productos vendidos.

Estructura endpoint a sistema externo de reservas

curl --location 'https://www.{externalreservsmanager}.com/api/reserv/set_ticket' \ --header 'Content-Type: application/json' \ --header 'apikey: apikey' \ --data '{ "id_reserv": "9F4G4t", "id_mesa": "123", "id_terminal": "1", "id_ticket": "2163540", "printDate": "11-06-2024 11:29:03", "status": "PAID", "total": "4.20", "items": [ { "productName": "FANTA LIMON", "amount": "1.00", "unitPrice": "1.40", "totalPrice": "1.40" }, { "productName": "FANTA LIMON", "amount": "1.00", "unitPrice": "1.40", "totalPrice": "1.40" }, { "productName": "FANTA LIMON", "amount": "1.00", "unitPrice": "1.40", "totalPrice": "1.40" } ], "payments": [ { "type": "CONTADO", "amount": "4.20" } ] }'

TBD—————

  • JSON con ticket, e items cobrados

Recordar: Si el array items está vacío la mesa se liberará SIN cobro, se cancela reserva

Ejemplo respuesta del sistema externo de reservas

{ "resp": 1, "message": "Inserted" }

Listado localizaciones

Estructura endpoint a sistema externo de reservas

curl --location 'https://www.{externalreservsmanager}.com/api/restaurant/list/{apikey}'
  • apikey: apiKey genérico para obtener todos los restaurantes que nosotros tenemos con el servicio externo

Ejemplo respuesta del sistema externo de reservas

[ { "id":"96f8adc9-c1dd-42a8-94a1-6b6d669bcce6", "nombre":"Nombre Localización 1" }, { "id":"96f0d827-8b28-4f65-a874-89f67e76a9b4", "nombre":"Nombre Localización 2" } ]

Resumen:

Este documento proporciona información detallada sobre la integración con GLOP para la gestión de reservas y pedidos.

  • Se requiere una licencia Cloud o Business y la configuración del módulo de integración en el apartado API Rest.
  • Es necesario obtener localizaciones para el envío de pedidos y asignar mesas a través de un endpoint creado por la plataforma integradora.
  • Se describen casos de uso desde la realización de reservas hasta el cierre de la mesa con el cobro de un ticket.
  • Se presentan varios endpoints necesarios para la integración con GLOP, como obtener reservas, crear reservas adhoc, asignar mesas, abrir reservas, y enviar tickets.
  • Se detalla la estructura de los endpoints, ejemplos de respuestas y la importancia de ciertos parámetros como el apikey.

Manual Cover Manager

REQUISITOS DE LICENCIA

  • La licencia debe ser Cloud o Business.
  • Debe tener marcado el módulo de Cover Manager en el apartado API Rest.
  • Previamente se debe configurar el Cover Manager(Cliente).
  • No se pueden tener habilitadas las reservas de Glop y las reservas de Cover Manager de manera simultánea.

CONFIGURACIÓN DE COVER MANAGER

Es necesario que en cada mesa de los salones de Cover Manager se acceda a la opción Modificar y rellenar los datos de ID Mesa y Número Mesa que nos facilita el salón de GLOP.

Ejemplo de un Salón en Cover Manager

Configuración de una mesa desde Cover Manager

Página de configuración de Cover Manager

CREACIÓN DE LA RESERVA

Para realizar una reserva de prueba desde Cover Manager primero deberemos dirigirnos a la página test proporcionada por la propia Cover Manager, en el caso de Glop la nuestra es esta link.

Dentro de la página tendremos que seleccionar tanto la cantidad personas, como la fecha y la hora a la cual se quiere reservar la mesa.

Nota: En Glop sólo aparecerán las reservas asignadas para el día de hoy y el día siguiente

Seguidamente clickaremos el botón de reservar y nos moveremos a la pestaña de destalles para ultimar la reserva.

Para poder finalizar la reserva tendremos que escribir el nombre y apellidos de la persona que desea realizar la reserva, además de su correo electrónico y su número de teléfono.

Nota: Cover Manager identifica las reservas por el número de teléfono por tanto si realizamos dos reservas con el mismo teléfono, los datos introducidos en la 2da sobrescribirán los de la primera

Una vez confirmada la reserva nos aparecerá este mensaje.

GESTIÓN DE LA RESERVA DESDE GLOP

Para acceder a la gestión de reservas desde Glop primero tendremos que acceder al TPV, después en utilidades y para finalizar en Reserva Online.

Una vez estemos ya en la pestaña de Reservas Online, podremos observar un listado con todas las reservas confirmadas o pendientes de confirmar para así poder gestionarlas individualmente.

Estas reservas, podrán ser canceladas desde el botón cancelar, seleccionando una de ellas.

Para gestionar la reserva, seleccionaremos una de ellas del listado, pulsaremos sobre el botón gestionar. Tras esto se abrirá la pantalla de ventas con la mesa seleccionada, donde podremos añadir artículos o aparcarla vacía. Si la aparcamos vacía aparecerá de color rojo como mesa reservada y si la aparcamos con articulo estará de color azul como mesa ocupada.

Tras gestionar la reserva, si por algún motivo lo deseamos podemos desvincular la reserva de esa mesa, a través del botón desvincular, de forma que la mesa volverá a aparecer en estado libre para ser ocupada.

Nota de funcionamiento

En el caso de haber modificado el APIREST original de la instalación en la nube y/o licencia, es necesario borrar los registros de APIREST_BEARER de la tabla TB_TERMINALES para que conecte correctamente con los nuevos datos generados.

Ciclo completo gestión Reserva

https://youtu.be/wqx-CuDa3K8

Agregado de productos a una Reservahttps://youtu.be/9K_cwNL2o68

Manual Usuario – Cierre de caja y arqueo

VERSIÓN DE LANZAMIENTO: 7.8.5

Introducción

En Glop se realizan cierres de caja y arqueos. El cierre de caja es cuando al final del día se revisan y registran todas las ventas, asegurándose de que el dinero y los pagos coincidan con lo que marca el sistema. El arqueo de caja es chequear en cuando cerramos caja si el dinero en la caja cuadra con lo que dice el TPV, detectando si hay errores o faltantes (descuadres).

Configuración Inicial

¿Requiere licencia de módulo?No
¿Qué tipo de licencia usa?Todos los tipos

CONFIGURACIÓN DESDE GLOP

Se ha creado un nuevo parámetro en configuraciones – terminales – paramteros del terminal, en el que activamos el arqueo ciego para las diferentes formas de pago.

FUNCIONAMIENTO ARQUEO

Nos muestra el total teorico por cada forma de pago y nosotros podemos modificar para indicarle lo que realmente se ha cobrado en cada una de las formas de pago. Nos indicará el total del descuadre.

FUNCIONAMIENTO ARQUEO CIEGO (sin parámetro)

No nos mostrará los totales por forma de pago, tan solo nos preguntará por el recuento del efectivo (engloba todas las formas de pago contado)

FUNCIONAMIENTO ARQUEO CIEGO (con parámetro activo)

No nos mostrará los totales por forma de pago, primero nos preguntará por el recuento del efectivo (engloba todas las formas de pago contado) y despúes por las diferentes formas de pago (tarjeta, cheque…)

Nos saldrá la misma ventana que en el punto anterior, y tras ella la que vemos a continuación.

NUEVO INFORME

Se ha creado un nuevo informe en ventas – informes que nos muestra el descuadre detallado por formas de pago.

IMPRESIÓN CIERRE DE CAJA

En la impresión del cierre de caja, se ha añadido para que muestre el descuadre de todas las formas de pago.

EJEMPLO DE FUNCIONAMIENTO

En resumen tenemos 3 formas de realizar el arqueo

  1. Arqueo normal, donde vemos el importe teorico y añadimos lo que hemos contado nosotros y nos muestra al lado el descuadre
  2. Arqueo ciego, donde nos pregunta por lo que hemos contado nosotros de efectivo (todas las formas de pago contado)
  3. Arqueo ciego de todas las formas de pago, donde nos pregunta por lo que hemos contado nosotros de efectivo (todas las formas de pago contado) y tras esto nos pregunta por las demás formas de pago.
Scroll to top

Acceder a WikiGlop