Manual activar QR información en ticket

En esta ocasión vamos a explicar cómo activar los QR información en ticket.

Con este parámetro activado, se imprime un código QR con cierta información de las facturas simplificadas/facturas.

Para activar el QR con la información del ticket, debemos seguir los siguientes pasos:

1- CONFIGURAR ZONA DE IMPRESIÓN

En la zona de impresión que deseemos (terminales, salones, zonas de reparto) tendremos que activar el parámetro para que pueda imprimir el QR. Hay que tener en cuenta que la impresión debe ser por drivers.

2- CONFIGURAR EL DISEÑO

Acudiremos a menú – ventas – diseño de documentos, seleccionaremos el diseño a modificar y pulsaremos en editar.

Tras esto se abrirá la pantalla de edición del diseño

Aquí tendremos que añadir un bloque imagen con el nombre imgQR3 y posicionarlo en el diseño. Se adjunta vídeo del proceso.

Con todo esto listo, ya imprimirá el QR en nuestros tickets.

Al escanerar el QR, obtendremos la información a través de un JSON como este:

{
   "nombre_comercial":"HOSTELERIA",
   "terminal":"1",
   "n_Doc":"1",
   "id_ticket":30205186,
   "tipoDoc":"Factura",
   "total":2.4,
   "nombre_cliente":"Carlos Monllor Lopez",
   "nif_cliente":"36598560-C",
   "direccion_cliente":"C\/BIAR, Nº 26 ALICANTE ALICANTE 03940",
   "nif":"B12345678",
   "clave_privium":"",
   "desglose_iva":[
      {
         "base_imponible":"2,18181818",
         "iva":"10",
         "importe_iva":"0,21818182"
      }
   ]
}

Manual DOJO Pocket

El DOJO Pocket es el dispositivo android de Dojo que permite la instalación de GlopDroid.

Comprobaciones Previas

Versión disponible desde la: 8.1.0

¿Requiere licencia de módulo?No
¿Qué tipo de licencia usa la integración?Las posibles licencias son GL y GB.
Otros requisitosSi deseamos que Glop imprima el comprobante de pago tendremos que activar un parámetro en la configuración.

Configuración Inicial

Para acceder a la configuración de Dojo:

Menú > Configuración > Terminales (o multi-tienda) y seleccionamos el terminal que usaremos, posteriormente pulsamos el botón < Modificar > y vamos a Periféricos > Pasarelas Pago > Dojo.

Aquí observaremos que tenemos un parámetro para activar la impresión de los comprobantes de pago.

Configurar Forma de Pago

Vamos a acceder desde la página inicial de Glop a Menú > Configuración > Formas de pago, y se nos abre la siguiente ventana:

Aquí podemos ver las formas de pago que tenemos guardadas, y si lo deseamos podemos crear nuevas. Nosotros lo que haremos será acceder por ejemplo en “Tarjeta” para comprobar que esta la tenemos configurada como forma de pago para Dojo (en caso de querer esta para ello, si no, seleccionar la que queremos y comprobar que las demás no están configuradas para Dojo).

Lo que haremos será seleccionarla, y pulsar el botón < Modificar >, una vez hecho esto veremos lo siguiente:

Aquí necesitaremos pulsar el botón < Parámetros de forma de pago >, es el de color naranja que hay bajo de la descripción, una vez pulsado veremos que nos aparecen varios parámetros, en este caso lo único que deberemos hacer será asegurarnos de que tenemos el parámetro “Dojo” activo, en caso de no tenerlo lo activaremos:

Una vez realizada la comprobación o el cambio, seleccionaremos < Aceptar >, y en la ventana anterior donde veíamos la descripción de la forma de pago, el código, etc… haremos igual, pulsaremos en < Aceptar >. De este modo ya tendremos una forma de pago configurada para su uso en Dojo.

Video:

Cómo Usar Dojo Pocket

Para lanzar un pago a través de Dojo Pocket, debemos realizar un cobro desde GlopDroid utilizando la forma de pago que esté marcada como Dojo. A parte de esto, tendremos que activar el parámetro en GlopDroid en configuración – ajustes generales – activar dispositivo de cobro DOJO.

Importes pendientes:

En caso de que desde el datáfono DOJO dejemos importes pendientes, en Glop nos aparecerá de la siguiente forma:

Con la forma de pago de DOJO y el importe pagado, no nos permitirá eliminar esta forma de pago. Si intentamos realizar el siguiente pago en modo pin-pad no nos lo permitirá y nos mostrará lo siguiente advirtiendo de como se debe finalizar la mesa.

Recordar que para el correcto funcionamiento de los importes pendientes debe estar activo en los parámetros del terminal el siguiente parámetro:

En el caso de que lo queramos desactivar nos aparecerá este mensaje advirtiendo que no es recomendable desactivarlo.

Hay que tener en cuenta que los datáfonos NO imprimen el ticket, esto siempre lo hará Glop.

Integración de plataforma de Mesas API en Glop

Requisitos:

  • La licencia con el módulo Mesas API y la integración necesaria. Configurar la integración en el propio Glop.

Configuración desde Glop:

La configuración en Glop se llevará a cabo en la sección de terminales, dentro de la pestaña «Módulos/API/PEDIDOS MESAS» en su apartado correspondiente.

Simplemente, será necesario marcar la casilla de verificación para activar la integración y activar los parámetros de aparcar automáticamente los pedidos recibidos y añadir artículos recibidos de nuevos pedidos a las mesas ya abiertas según conveniencia. Enlace al manual de configuraciones necesarias: Link

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.

Obtener Pedidos: Recibir pedidos | Glop API Rest

Glop siempre añadirá al ticket de la mesa los productos que se envíen. No se aceptarán anulaciones de líneas ya enviadas ni actualizaciones de las mismas.

Cada vez que se llame con el mismo id_mesa, se añadirán los nuevos productos a las líneas del ticket ya existente en esa mesa. Precaución: no enviar líneas de tickets que ya se enviaron anteriormente ya que se entenderán como líneas nuevas. Si no existiera ticket en esa mesa, se abriría la mesa y se crearía uno nuevo con las líneas. Si se recibe el id_mesa, el pedido se aparcará en dicha mesa en Glop, sin embargo si no se recibe el pedido se aparcará como un pedido delivery.

Estructura endpoint a sistema externo de reservas

curl --request POST \
  --url https://api.glop.es/api/v1/delivery/orders \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: application/json' \
  --data '{
  "orderId": "6205109ce29381c7615f187c",
  "id_mesa": "1",
  "deliveryTime": "2022-02-10T14:05:00.000000Z",
  "_created": "2022-02-10T13:18:19.000000Z",
  "_updated": "2022-02-10T13:18:20.000000Z",
  "location": "6143250ca254e1a8323bec47",
  "orderIsAlreadyPaid": true,
  "discountTotal": 0,
  "channel": {
    "slug": "uber"
  },
  "payment": {
    "amount": 3200
  },
  "customer": {
    "name": "Hector",
    "phoneNumber": "912123123",
    "phoneAccessCode": "612123123",
    "email": "900f97630cd5@deliverect.com"
  },
  "deliveryAddress": {
    "street": "Avinguda asdasd Palmer, 3",
    "streetNumber": "4, 6º",
    "postalCode": "08840",
    "city": "Viladecans"
  },
  "clientComments": "Entrega sin contacto.",
  "orderType": 2,
  "deliveryCost": 0,
  "serviceCharge": 0,
  "deliveryTip": 0,
  "items": [
    {
      "plu": "9-rusa",
      "name": "RUSA",
      "price": 700,
      "quantity": 1,
      "productType": 1
    },
    {
      "plu": "M-241-packfamiliarpollo",
      "name": "PACK FAMILIAR POLLO",
      "price": 2500,
      "quantity": 1,
      "productType": 1,
      "subItems": [
        {
          "plu": "1-241-1-polloentero",
          "name": "POLLO ENTERO",
          "quantity": 1,
          "productType": 1
        },
        {
          "plu": "23-241-2-patatasasadasakompana",
          "name": "PATATAS ASADAS AKOMPAÑA",
          "quantity": 1,
          "productType": 1
        },
        {
          "plu": "6-241-3-croquetasdepollo",
          "name": "CROQUETAS DE POLLO",
          "quantity": 1,
          "productType": 1
        },
        {
          "plu": "61-241-4-alioli",
          "name": "ALIOLI",
          "quantity": 1,
          "productType": 1
        }
      ]
    }
  ]
}'

Obtener Grupos de terminales: Obtener grupos de terminales | Glop API Rest

Obtener lista grupos 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.

curl --request GET \
  --url https://api.glop.es/api/v1/cloud/terminal-groups \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123'

Obtener lista productos: Obtener lista productos | Glop API Rest

Endpoint para obtener productos.

Esta llamada puede ser parametrizada para obtener productos según:

  • ID

Este endpoint está paginado: para más información lea aquí

curl --request GET \
  --url https://api.glop.es/api/v1/cloud/products \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: '

Obtener listado de terminales: Obtener listado de terminales | Glop API Rest

Obtener lista terminales.

curl --request GET \
  --url https://api.glop.es/api/v1/cloud/terminals \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123'

Obtener pre ticket por mesa: Obtener pre ticket por mesa | Glop API Rest

Esta llamada es una obtención ad-hoc contra los terminales GLOP para pedir tickets. Un ticket deberá estar aparcado en mesa para poder ser devuelto, si la mesa está abierta con ese ticket, el ticket en cuestión NO SE DEVOLVERÁ.

El Servicio Glop debe estar activo para poder responder a esta petición.

curl --request GET \
  --url 'https://api.glop.es/api/v1/cloud/pretickets?mode=0' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123'
  --data '{ 
	"id_grupo": 1,
	"id_mesa": 1,
	"mode": 0
  }'

Liberar un pre ticket / Cancelación de pago: Liberar un pre ticket / Cancelación de pago | Glop API Rest

Para cancelar el pago y que el ticket se pueda modificar en el terminal o utilizar otro método de pago.

Si se vuelve a querer pagar este ticket por un método de pago, volver a llamar al endpoint Obtener preticket por mesa.

curl --request PUT \
  --url https://api.glop.es/api/v1/cloud/pretickets \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: application/json' \
  --data '{
  "id_ticket": "string",
  "id_terminal": "string",
  "payments": {
    "payment_channel": "string"
  }
}'

Pagar un pre ticket / Cerrar ticket: Pagar un pre ticket / Cerrar ticket | Glop API Rest

Marcar un ticket como pagado.

Pago completo del ticket

  • El campo payments.payment_1_amount debe ser igual al total del ticket entregado en Obtener preticket por mesa.
  • El campo payment_type debe ser igual a 0.
  • No es necesario enviar las líneas del ticket a partir de la versión 8.0, no enviar ticket_lines: ver el ejemplo Ejemplo pago total. En versiones anteriores será necesario enviar un array vacío.

Pagos parciales del ticket

  • El campo payments.payment_1_amount será menor que el total del ticket entregado en «Obtener preticket por mesa».

El ticket se marcará como pagado en el terminal en el que se creó según el campo id_terminal.

curl --request PATCH \
  --url https://api.glop.es/api/v1/cloud/pretickets \
  --header 'Accept: application/json, application/xml, multipart/form-data' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: application/json' \
  --data '{
  "id_ticket": "string",
  "merchantOrder": "string",
  "payment_type": 0,
  "id_terminal": "string",
  "num_ticket": "string",
  "sell_channel": "string",
  "total_amount": "string",
  "internal_id": "string",
  "num_invoice": "string",
  "date_pay": "string",
  "return_invoice": "string",
  "return_invoice_num": "string",
  "return_invoice_id": "string",
  "pending_amount": "string",
  "pax": "string",
  "date_new": "string",
  "id_mesa": "string",
  "payment_channel": "string",
  "customer": {
    "customer_id": "string",
    "name": "string",
    "nif": "string",
    "address": "string",
    "city": "string",
    "postcode": "string",
    "state": "string",
    "country": "string"
  },
  "payments": {
    "paymnet_channel": "string",
    "payment_1_id": "string",
    "payment_1": "string",
    "payment_1_amount": "string",
    "payment_2_id": "string",
    "payment_2": "string",
    "payment_2_amount": "string",
    "payment_3_id": "string",
    "payment_3_amount": "string"
  },
  "ticket_lines": [
    {
      "id_item": "string",
      "id_lin_ticket": "string",
      "description_item": "string",
      "amount_item": "string",
      "ud_item": "string",
      "dto_amount": "string",
      "dto_perc": "string",
      "dto_proportional": "string",
      "total_amount": "string",
      "tax_perc": "string",
      "tax_amount": "string",
      "tax": "string",
      "id_variation": "string",
      "date_sale": "string",
      "id_terminal": "string",
      "id_employee": "string",
      "detail": [
        {
          "id_variation": "string",
          "id_tax": "string",
          "invitation": "string",
          "consumption_employees": "string",
          "descrip_kitchen": "string",
          "id_family_sale": "string",
          "principal": "string",
          "compound": "string",
          "inventory": "string",
          "tyc": "string",
          "date_sale": "string"
        }
      ]
    }
  ]
}'

Caso de uso:

  1. Obtener lista productos: Obtenemos la lista de productos disponibles a través de la integración, asegurando que el sistema pueda recuperar con precisión la información sobre los productos que se ofrecen.
  2. Obtener mesas por grupo de terminal: Continuamos verificando que el sistema pueda obtener de manera precisa la lista de mesas asociadas a un grupo específico de terminales de la integración, asegurando así que las mesas estén correctamente identificadas y disponibles para su uso.
  3. Recibir pedidos: A continuación, procedemos a recibir pedidos desde la integración, asegurándonos de que el sistema pueda procesar adecuadamente los pedidos entrantes y asignarlos a las mesas correspondientes de manera precisa y eficiente.
  4. Si la integración cuenta con la modalidad de pagos:
    • Pago parcial Por artículo: Luego, realizamos una prueba de pago parcial por artículo utilizando la funcionalidad de la integración, asegurando que el sistema pueda gestionar correctamente el pago parcial de artículos individuales dentro de un pedido.
    • Pago Parcial Por Importe: Continuamos con una prueba de pago parcial por importe utilizando la funcionalidad proporcionada por la integración, asegurándonos de que el sistema pueda gestionar correctamente el pago parcial de un pedido según el importe especificado.
    • Pago completo del ticket: Finalmente, realizamos una prueba completa de pago del ticket utilizando la funcionalidad proporcionada por la integración, asegurándonos de que el sistema pueda procesar adecuadamente el pago completo del pedido.
  5. Get Pre Ticket By Mesa y Grupo: Seguimos probando la funcionalidad para obtener un pre-ticket asociado a una mesa y grupo de terminales de la integración específicos, asegurando que el sistema pueda recuperar con precisión la información relevante para la gestión de pedidos.
  6. Liberar Pre Ticket: Probamos la capacidad del sistema para liberar un pre-ticket asociado a un pedido en la integración, asegurándonos de que el sistema pueda cancelar adecuadamente la reserva de un pedido pendiente.
  7. Save order (pedido mesa API): Finalizamos realizando pruebas para guardar un pedido de mesa utilizando la API de la integración, verificando que el sistema pueda registrar correctamente los detalles del pedido y mantener un registro adecuado de las transacciones.

Resumen:

Este documento proporciona información detallada sobre la integración con GLOP para las Mesas API.

  • Se requiere una licencia de Glop y la configuración del módulo de integración en el apartado Módulos/API/PEDIDOS MESA.
  • Se describen los diferentes casos de uso llevados a cabo con la integración.
  • Se presentan varios endpoints necesarios para la integración con GLOP, como obtener listado de productos, recibir pedidos y obtener mesas por id grupo de terminales.
  • Se detalla la estructura de los endpoints, ejemplos de respuestas y la importancia de ciertos parámetros como el User-id.

Manual usuario app glop

En este manual vamos a detallar los diferentes módulos, su configuración y funcionamiento de app.glop.es

Módulo Informes:

Configuración:

En los informes podremos configurar el tipo de gráfico, activar/desactivar cada uno de los informes, configurar el refresco automatico, la comparativa, el envío de informes…

Informes Venta:

En el vídeo podemos observar su funcionamiento con los diferentes filtros y comparativas

Informes compra:

Módulo artículos:

El módulo de articulos nos permite ver todos los artículos de los que disponemos, y en caso de tener permisos, modificar el precio de las diferentes tarifas de cada uno de los artículos.

Módulo stock

Podremos consultar el stock de los diferentes artículos en cada uno de los almacenes.

Módulo clientes

En el módulo de clientes, podremos ver, editar, eliminar y crear clientes. Dentro de los datos de cada uno de los clientes, podremos ver sus datos como nobre apellidos email… sus datos fiscales y sus datos adicionales (indicar que tiene una alergia o cualquier cosa que se necesite). En la pestaña de facturación podremos ver su registro de pagos online, los diferentes planes activados (suscripciones), y sus facturas de los últimos años. En la pestaña mensajes podremos enviarle un mensaje a través de un email o SMS. Y en la de documentos podremos subir diferentes documentos asociados al cliente, como un compromiso de confidencialidad, un presupuesto etc…

*A TENER EN CUENTA

Los mensajes a un cliente a través de SMS están condicionados a pago, y este pago va en función de la cantidad de SMS contratados. Si no es activado o se ha terminado el saldo de SMS no se realizará el envío.

Pestaña facturación:

En este vídeo podremos observar las diferentes acciones de la pestaña de facturación, generacion de pagos y como se muestran una vez han sido pagados por el cliente.

Módulo Looker Studio

Scroll to top

Acceder a WikiGlop