Manual localizaciones para distribuidores Agnósticos

En pocas palabras: por cada sitio que gestionas, envías a Glop la lista de sus localizaciones (tus establecimientos, p. ej. «Cafetería María», «Bar Pepito 1», «Bar Pepito 2») mediante dos llamadas sencillas a la API. El equipo de soporte de Glop conecta cada localización con su terminal, y a partir de ahí los pedidos entran solos. Cuando tu catálogo cambie, vuelves a enviar la lista.
Dos conceptos clave:
  • Un sitio es la cuenta en la nube de Glop que soporte da de alta. Tiene una sola credencial (id + secret).
  • Dentro de un sitio hay una o varias localizaciones: tus establecimientos, cada uno con su dirección. Por ejemplo, «Bar Pepito 1» y «Bar Pepito 2» pueden ser dos localizaciones del mismo sitio.
Con la credencial de un sitio envías todas sus localizaciones de una vez.

1. Qué necesitas de soporte

Antes de empezar, el equipo de soporte de Glop da de alta tu sitio en la nube de Glop y te entrega su credencial. Por cada sitio que gestiones recibirás un único par de valores:

Dato Para qué sirve
idIdentificador de la credencial de ese sitio.
secretClave secreta de ese sitio. Con id + secret obtienes el token para enviar las localizaciones del sitio.
Una credencial por sitio, no por localización: un sitio puede agrupar varias localizaciones (por ejemplo «Bar Pepito 1» y «Bar Pepito 2»), y todas se envían con la misma credencial del sitio. Solo tendrás id/secret distintos si gestionas varios sitios; en ese caso, repite esta guía con la credencial de cada sitio.
Seguridad: el secret es privado. No lo publiques en apps de cliente, webs ni repositorios. Guárdalo en tu servidor y haz las llamadas desde ahí.

2. Cómo funciona, en dos pasos

Todas las llamadas cuelgan de la dirección base https://api.glop.es/api/v1. Para cada sitio, tu integración se reduce a dos pasos:

1.  Obtener un token. Con el id y el secret del sitio pides un token de acceso. Es temporal y sirve para autenticar el envío.
2.  Enviar tus localizaciones. Con ese token, mandas la lista de localizaciones del sitio a una URL fija. Eso es todo lo que tienes que hacer.

3. Paso 1: obtener el token

Haz una petición POST con la credencial del sitio:

POST https://api.glop.es/api/v1/auth/oauth/token
Content-Type: application/json

{
  "grant_type":    "client_credentials",
  "scope":         "*",
  "client_id":     "TU_ID",
  "client_secret": "TU_SECRET"
}

La respuesta incluye el token que usarás en el paso 2:

{
  "token_type":   "Bearer",
  "expires_in":   1296000,
  "access_token": "eyJ0eXAiOiJKV1Qi..."
}
Reutiliza el token: tiene una caducidad (expires_in, en segundos). Guárdalo y reutilízalo hasta que caduque; no pidas uno nuevo en cada envío. Cuando caduque (o recibas un 401), pide otro.

4. Paso 2: enviar tus localizaciones

Envía la lista completa de localizaciones del sitio con el token en la cabecera Authorization:

PUT https://api.glop.es/api/v1/delivery/agnostico/locations
Authorization: Bearer {access_token}
Content-Type: application/json

{
  "locations": [
    { "id": "CAF-MARIA", "nombre": "Cafetería María" },
    { "id": "PEPITO-1",  "nombre": "Bar Pepito 1" },
    { "id": "PEPITO-2",  "nombre": "Bar Pepito 2" }
  ]
}

Ejemplo con curl:

curl -X PUT "https://api.glop.es/api/v1/delivery/agnostico/locations" \
     -H "Authorization: Bearer eyJ0eXAiOiJKV1Qi..." \
     -H "Content-Type: application/json" \
     -d '{
       "locations": [
         { "id": "CAF-MARIA", "nombre": "Cafetería María" },
         { "id": "PEPITO-1",  "nombre": "Bar Pepito 1" },
         { "id": "PEPITO-2",  "nombre": "Bar Pepito 2" }
       ]
     }'

Glop te responde confirmando cuántas localizaciones ha guardado:

{ "status": "ok", "count": 3 }
Nota: puedes usar PUT o POST indistintamente sobre esta misma URL; el resultado es el mismo.

5. Contenido de cada localización

Campo Obligatorio Descripción
id (texto)Identificador único de la localización en tu sistema. Debe ser estable: es lo que identifica cada localización entre un envío y el siguiente. Las localizaciones sin id se descartan.
nombre (texto)RecomendadoNombre del establecimiento (p. ej. «Bar Pepito 1»). Es lo que verá soporte al conectarlo con un terminal, así que ponlo claro.

6. Cuándo volver a enviar la lista

Repite el Paso 2 (con un token válido) cada vez que cambie el catálogo de localizaciones de un sitio: das de alta, das de baja o renombras una localización.

Envía siempre la lista completa del sitio: cada envío reemplaza por completo el catálogo anterior de ese sitio por la lista que mandas. Así altas, cambios y bajas quedan sincronizadas automáticamente: lo que dejes de incluir, se elimina. No mandes solo lo que ha cambiado.
Mantén el id estable al renombrar: cambia el nombre pero conserva el mismo id. Si cambias el id, Glop lo tratará como una localización nueva y habrá que volver a conectarla a un terminal.
Reenviar la lista no rompe las conexiones ya hechas: la conexión de cada localización con su terminal se guarda por separado y se conserva entre envíos. Mientras mantengas el mismo id de cada localización, puedes reenviar tu catálogo las veces que quieras sin perder lo que soporte ya haya configurado.

7. Qué hace soporte con lo que envías

Con la lista que has enviado, el equipo de soporte de Glop conecta cada localización con el terminal correspondiente del sitio, usando el id y el nombre que mandaste. Es un paso que hace soporte una vez; tú no tienes que intervenir.

Tu parte es solo enviar las localizaciones. Una vez conectadas a sus terminales, los pedidos de cada localización entran automáticamente por el flujo normal. Para que soporte pueda identificarlas sin dudas, usa id estables y nombre descriptivos.

8. Errores frecuentes

Síntoma Qué comprobar
El token devuelve 401 / invalid_clientRevisa id y secret (que sean los del sitio correcto y sin espacios). Confirma con soporte que el sitio está dado de alta.
El envío devuelve 401 UnauthorizedEl token ha caducado o falta la cabecera Authorization: Bearer .... Pide un token nuevo (Paso 1) y reintenta.
El envío devuelve 422El cuerpo debe ser { "locations": [ ... ] } con al menos una localización, y cada una con su id. Envía Content-Type: application/json.
El count es menor de lo esperadoSe descartaron localizaciones sin id. Revisa que todas lo lleven.
Los pedidos no llegan al terminal correctoLa conexión localización→terminal la hace soporte. Avísales indicando el id/nombre de la localización afectada.
Soporte: ante cualquier duda sobre la credencial de un sitio o sobre la conexión de las localizaciones con los terminales, contacta con el equipo de soporte de Glop que dio de alta tus sitios.
Volver arriba

Acceder a WikiGlop