- 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.
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 |
|---|---|
id | Identificador de la credencial de ese sitio. |
secret | Clave secreta de ese sitio. Con id + secret obtienes el token para enviar las localizaciones del sitio. |
id/secret distintos si gestionas varios sitios; en ese caso, repite esta guía con la credencial de cada sitio.
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:
id y el secret del sitio pides un token de acceso. Es temporal y sirve para autenticar el envío.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..."
}
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 }
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) | Sí | 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) | Recomendado | Nombre 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.
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.
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.
id estables y nombre descriptivos.
8. Errores frecuentes
| Síntoma | Qué comprobar |
|---|---|
El token devuelve 401 / invalid_client | Revisa 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 Unauthorized | El token ha caducado o falta la cabecera Authorization: Bearer .... Pide un token nuevo (Paso 1) y reintenta. |
El envío devuelve 422 | El 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 esperado | Se descartaron localizaciones sin id. Revisa que todas lo lleven. |
| Los pedidos no llegan al terminal correcto | La conexión localización→terminal la hace soporte. Avísales indicando el id/nombre de la localización afectada. |
