FORMULAS DISEÑO DE DOCUMENTOS

Para sumar la cantidad de artículos en factura simplificada

[<SUM(<LineasFra."UNIDADES">,DetailData1)>]

___________________________________________________________________________________

Para calcular el descuento total en una factura simplificada

[((<SUM(<LineasFra."IMPORTE">*<LineasFra."UNIDADES">,DetailData1)>)-(<CabeceraFra."IMPORTEPAGADO">)-(<CabeceraFra."TOTAL_DESCUENTO">))-<CabeceraFra."IMPORTE_TOTAL">]

___________________________________________________________________________________

TITULO

CODIGO

___________________________________________________________________________________

Etiquetas: imprimir la información nutricional

Glop TPV Etiquetas   Manual para soporte — Julio 2026

En pocas palabras: Glop incluye una plantilla de etiqueta ya preparada para imprimir la tabla nutricional del artículo (grasas, hidratos, proteínas, calorías…). Solo hay que seleccionarla al imprimir etiquetas. Y, como cualquier etiqueta de Glop, se puede modificar en el diseñador para adaptarla al formato que ya use el cliente.

1. Qué imprime esta plantilla

Es una etiqueta de artículo normal (con su descripción, precio, código de barras…) a la que se le ha añadido el bloque de la tabla nutricional por 100 g: valor energético (kJ y kcal), grasas y de las cuales saturadas, hidratos y de los cuales azúcares, fibra, proteínas y sal.

Idea clave: la impresión de etiquetas funciona igual que siempre. Lo único nuevo es que existe una plantilla que ya trae el bloque nutricional montado, lista para usar.

2. Antes de imprimir: el artículo debe tener la información nutricional

La etiqueta imprime lo que el artículo tenga guardado en su pestaña Información nutricional. Si ese artículo no tiene los valores calculados o rellenados, el bloque saldrá vacío o a cero.

Requisito: comprueba primero que el artículo tiene su tabla nutricional. Cómo hacerlo se explica en Información nutricional de los artículos (materia prima de fabricación).

3. Seleccionar la plantilla que suministra Glop

Al ir a imprimir etiquetas de artículos, en el selector de plantilla / diseño de etiqueta elige la plantilla nutricional de Glop:

1 Entra en la impresión de etiquetas por artículo como siempre y selecciona los artículos.
2 En la lista de plantillas, elige la etiqueta con información nutricional que suministra Glop.
3 Vista previa para comprobar que la tabla se ve bien y Imprimir.
[Captura pendiente: pantalla de impresión de etiquetas con el selector de plantilla y la plantilla nutricional marcada]

4. Adaptarla al estilo del cliente

La plantilla de Glop es un punto de partida. Si el cliente ya tiene un formato de etiqueta propio (su logotipo, su tamaño, su distribución), no hace falta empezar de cero: se abre el diseñador de etiquetas y se coloca el bloque nutricional donde encaje, con el tamaño y la fuente que quiera.

En el diseñador están disponibles estos campos nutricionales del artículo para colocarlos donde se necesite:

CampoQué imprime
ENERGIA_KJ / ENERGIA_KCALValor energético en kJ y en kcal
GRASAS / GRASAS_SATURADASGrasas y de las cuales saturadas
HIDRATOS / AZUCARESHidratos de carbono y de los cuales azúcares
FIBRAFibra alimentaria
PROTEINASProteínas
SALSal
Recomendación: parte siempre de una copia de la plantilla de Glop y modifícala, así conservas el original por si quieres volver a él. Todos los valores van por 100 g.
[Captura pendiente: diseñador de etiquetas con el bloque nutricional seleccionado y la lista de campos disponibles]

5. Comprobaciones rápidas

SíntomaQué comprobar
La tabla nutricional sale vacía o a ceroEl artículo no tiene su información nutricional. Rellénala o recalcúlala en su ficha y vuelve a imprimir.
No aparece la plantilla nutricional en la listaAsegúrate de estar en la impresión de etiquetas por artículo y de tener cargada la plantilla que suministra Glop.
El bloque no cabe o se cortaAjusta el tamaño de la etiqueta o del bloque en el diseñador; para etiquetas pequeñas, reduce fuente o deja solo los valores obligatorios.

Glop — Etiquetas: imprimir la información nutricional — Manual para soporte — Julio 2026

Claude Code Todos los ecosistemas   Manual para desarrollo

Claude Code Todos los ecosistemas   Manual para desarrollo — Julio 2026

Trabajo autónomo con /goal en Claude Code

En pocas palabras: /goal fija una condición de finalización y Claude sigue trabajando solo, turno tras turno, hasta cumplirla — sin que tengas que ir dándole a «continúa». Es ideal para llevar una tarea feature/<KEY> desde el plan hasta dejarla verificada de una sentada. Y como en muchos de nuestros proyectos las pruebas se hacen a mano, este manual explica cómo usarlo sin necesidad de una suite de tests (compilación, grep, diff y checklist), con plantillas listas para copiar por cada ecosistema.

1. Qué es /goal y para qué sirve

Normalmente, cuando Claude termina un turno te devuelve el control y esperas a que le des la siguiente instrucción. Con /goal cambias eso: defines una condición de finalización y, al acabar cada turno, un modelo pequeño y rápido comprueba si ya se cumple. Si no, Claude arranca otro turno por su cuenta. Cuando la condición se cumple, el objetivo se borra automáticamente.

Idea clave: /goal sirve para trabajo sustancial con un final verificable. Tú describes dónde está la meta, no cada paso para llegar. Claude itera hasta llegar.

Casos típicos en nuestro día a día:

  • Implementar una tarea hasta que compile y cada criterio de aceptación quede demostrado.
  • Migrar o refactorizar un módulo hasta que compile y el diff no toque nada fuera de su sitio.
  • Dividir un fichero gigante (por ejemplo un .pas de miles de líneas) en units enfocadas dentro de un presupuesto de tamaño.
  • Vaciar un backlog de tickets de una versión, trabajándolos uno a uno hasta que la cola quede vacía.
Requisito: /goal necesita Claude Code v2.1.139 o posterior y un espacio de trabajo de confianza (el evaluador forma parte del sistema de hooks). Si tu versión es anterior, actualiza antes de usarlo.

2. Cómo funciona: la regla de oro del evaluador

Después de cada turno, la condición y la conversación hasta ese momento se envían al modelo pequeño y rápido de tu sesión (por defecto Haiku). Ese evaluador responde sí o no, y añade una breve razón que verás en pantalla y que orienta el siguiente turno de Claude.

Fijas /goal ─► Turno de Claude (trabaja) ─► Evaluador (Haiku) lee el chat ▲ │ │ ¿condición cumplida? │ └────────────── NO ◄─────────────────┤ │ SÍ ▼ Objetivo cumplido ► se borra solo
La regla de oro: el evaluador solo juzga lo que Claude ha escrito en la conversación. No ejecuta comandos ni abre ficheros por su cuenta. Por eso la condición tiene que apoyarse en algo que la propia salida de Claude pueda demostrar: un log de compilación limpio, la salida de un grep, un git status, un curl. Una condición como «el código queda elegante» no es verificable y el objetivo no se cerrará nunca.

Dicho de otro modo: si quieres que el objetivo se cierre cuando «el endpoint exige autenticación», la condición correcta es «php artisan route:list muestra el middleware auth en /auth/users«, porque Claude ejecutará ese comando y su salida quedará en la transcripción para que el evaluador la lea. Fíjate en que ahí no hace falta ningún test automatizado — y eso es justo lo que desarrolla la sección 4.


3. Anatomía de una condición efectiva

Una condición que aguanta muchos turnos sin desviarse suele tener estos cuatro ingredientes:

IngredienteQué esEjemplo
Estado final medibleEl resultado observable que marca «hecho».un build sin errores, un grep con 0 coincidencias, una cola vacía, un recuento de líneas
Verificación establecidaCómo debe probarlo Claude, con un comando concreto.«el proyecto compila (log pegado)»; «git status solo muestra el módulo X»
RestriccionesLo que NO debe cambiar por el camino.«no se tocan otras rutas», «ninguna firma pública cambia»
LímiteUn tope de turnos o tiempo para que no se enganche.«o detente tras 20 turnos»

La condición puede tener hasta 4.000 caracteres, así que hay sitio de sobra para ser específico.

Condición débil (evítala): «Arregla el módulo de cobros y déjalo bien.»
No hay estado final medible ni verificación: el evaluador no puede saber cuándo parar.
Condición sólida: «GLOP-1170 implementada; el proyecto compila sin warnings nuevos (log pegado), cada criterio de aceptación de JIRA queda mapeado a su fichero:procedimiento, y git status solo muestra units de cobro. Detente tras 20 turnos.»
Estado final + verificación + restricción + límite. El evaluador sabe exactamente qué mirar — y no ha hecho falta un solo test.

4. Cómo verificar sin tests automatizados

En muchos de nuestros proyectos las pruebas se hacen a mano y no hay una suite automatizada. No es un problema para /goal: el comando no necesita «tests», necesita evidencia objetiva escrita en el chat. Un test es solo una forma de generarla; estas son las anclas que puedes usar sin una sola línea de test.

AnclaQué demuestraCómo pedirla en la condiciónFuerza
Compilación / buildQue el cambio integra y no rompe la construcción.«compila sin errores ni warnings nuevos, con el log pegado en el chat»Objetiva
Búsqueda (grep)Que algo existe, ya no existe o es consistente.«0 coincidencias de get(url) sin slug, con el grep pegado»Objetiva
Diff / git statusQue solo se tocó lo previsto.«git status muestra solo ficheros de app/Cobros«Objetiva
Comprobación funcional puntualQue un endpoint o servicio responde como debe.«curl a /auth/users devuelve 401 sin token, salida pegada»Objetiva (si se ejecuta)
Checklist contra JIRAQue cada criterio de aceptación está cubierto.«lista cada criterio y el fichero:procedimiento que lo resuelve»Depende del mapeo de Claude
La receta que mejor funciona sin tests: compilación limpia + una segunda ancla objetiva (grep o git status) + checklist de criterios de JIRA. Con las tres, el evaluador tiene señal de sobra para decidir.
No te fíes de la autoevaluación a secas. Si la única «prueba» es que Claude afirme «lo he revisado y está bien», el evaluador se cree esa afirmación optimista. Combina siempre el checklist con una ancla objetiva (compilación o grep); nunca dejes el checklist solo.
El límite honesto: la prueba manual de verdad — abrir el TPV y hacer un cobro con el datáfono — no la puede hacer el evaluador, que solo lee texto. En esas tareas, /goal deja el trabajo hasta «compila + criterios cubiertos + auto-revisado» y la validación final la haces tú antes del PR. Te ahorra el camino, no la prueba final.

5. El flujo recomendado: del ticket al PR

Las tareas os llegan ya definidas (las generamos con la revisión previa y quedan en JIRA). A partir de ahí, el flujo natural con /goal mantiene un punto de control humano entre planificar y ejecutar:

Tarea JIRA (definida) ─► /explore-plan ─► [revisas el plan] ─► /goal implementar ─► revisas el diff + prueba manual ─► PR
1 Explora y planifica. Lanza /explore-plan (o un /goal de planificación) para que produzca un plan que cubra ficheros a tocar, riesgos y criterios de aceptación. Lo revisas tú.
2 Implementa con objetivo. Ya con el plan validado, lanzas el /goal de implementación anclado a la verificación de tu proyecto (compilación, grep, checklist). Claude itera hasta dejarlo demostrado.
3 Revisa, prueba y entrega. El objetivo se cierra solo; tú revisas el diff, haces la prueba manual que corresponda y de ahí al PR. La responsabilidad del código sigue siendo del dev.

Plantilla — Fase Explorar & Planificar

Aquí la meta no es un test ni un build, sino un plan completo:

/goal Existe un plan de implementación para <KEY> en .claude/sessions/ que cubre: ficheros a tocar, cambios por fichero, riesgos y cada criterio de aceptación de JIRA mapeado a un cambio concreto. Ningún criterio queda sin abordar. Detente tras 10 turnos.

Plantilla — Implementar hasta verificación en verde

/goal <KEY> implementada según su descripción en JIRA. Demuéstralo: (1) <VERIFICACIÓN> (compila / grep / curl, según el proyecto) con la salida pegada; (2) lista cada criterio de aceptación con su fichero:procedimiento; (3) git status solo muestra ficheros de <RUTA>. Detente cuando los tres estén demostrados o tras 20 turnos.

Plantilla — Refactor / dividir un fichero grande

/goal He dividido <FICHERO> en módulos de <800 líneas cada uno. Demuéstralo: pega el conteo de líneas por módulo (todos <800) y el log de compilación limpio. Ninguna firma pública cambia y el comportamiento se mantiene. Detente tras 25 turnos.

Plantilla — Vaciar un backlog de versión

/goal Cada tarea asignada a mí en la versión <X.Y.Z> con estado «To Do» tiene su rama feature/<KEY> con la implementación, compila y sus criterios de aceptación quedan demostrados en el chat. Trabaja una a una y ve reportando cuáles quedan. Detente cuando la cola esté vacía o tras 40 turnos.
Sustituye los placeholders: <KEY> (p. ej. GLOP-1170, APIREST-62, APPGLOP-45), <VERIFICACIÓN> por el ancla de tu ecosistema (tabla de la sección 6), <RUTA> por el directorio del módulo, <FICHERO> por el archivo real.

6. Plantillas por ecosistema (copiar y pegar)

Cada ecosistema tiene sus anclas de verificación. Estas son las que puedes usar sin una suite de tests — ajústalas si tu proyecto tiene otras:

EcosistemaStackAnclas de verificación (sin suite de tests)
Central GlopDelphi / Firebirdcompilación del .dproj + grep + git status
Web Glop (API/back)Laravel / PHPphp artisan route:list · php -l · curl al endpoint · grep
Web Glop (front)Vue / Nodenpm run build · npm run lint · grep
Android GlopKotlin./gradlew assembleDebug · ./gradlew ktlintCheck · grep
Central ServiciosDelphi / Windowscompilación + arranque del servicio + git status
WordPressPHP / WooCommercephp -l · phpcs · comprobación en navegador
Antes de copiar: confirma los comandos reales de tu proyecto (los de arranque, compilación o lint están en el CLAUDE.md del ecosistema). Los de aquí son los típicos, pero cada proyecto puede tener su propio script.

Central Glop — Delphi / Firebird (Glop TPV)

La verificación fuerte es la compilación limpia, reforzada con el checklist de criterios y git status. Ancla la condición al log de compilación que Claude pegue en el chat.

/goal GLOP-1170 implementada. Demuéstralo en el chat: (1) lista cada criterio de aceptación de la tarea en JIRA con el fichero:procedimiento que lo resuelve; (2) el proyecto compila sin errores ni warnings nuevos (log de compilación pegado); (3) git status muestra solo units de cobro modificadas. Detente cuando los tres estén demostrados o tras 25 turnos.

Dividir una unit enorme (caso muy nuestro, p. ej. ficheros de datos táctil de miles de líneas), verificado por conteo + compilación:

/goal He dividido UdatosTactil.pas en units temáticas de <800 líneas. Demuéstralo: pega el conteo de líneas por unit nueva (todas <800) y el log de compilación limpio. Ninguna firma pública cambia y ninguna funcionalidad cambia de comportamiento. Detente tras 30 turnos.

Web Glop — glop-api-rest / backend (Laravel)

Ejemplo con una tarea real de API sin autenticación, verificado por route:list + curl (sin test automatizado):

/goal APIREST-62 implementada: el endpoint /auth/users exige autenticación. Demuéstralo: pega `php artisan route:list –path=auth/users` mostrando el middleware auth aplicado, y una llamada curl que devuelva 401 sin token y 200 con token válido. No se tocan otras rutas. Detente tras 20 turnos.

Comprobar que una validación queda en su sitio, sin levantar tests:

/goal El FormRequest de la ruta de cobro valida los campos indicados en APIREST-XXX. Demuéstralo: pega el grep del FormRequest con las reglas y `php artisan route:list` mostrando que la ruta lo usa. `php -l` sin errores en los ficheros tocados. Detente tras 20 turnos.

Web Glop — frontend / dashboard (Vue)

/goal GLOP-XXXX implementada; `npm run build` compila y `npm run lint` sale limpio. Lista cada criterio de aceptación de JIRA con el componente que lo resuelve. Ningún fichero fuera de src/views/cobros se modifica. Detente tras 20 turnos.

Migración de convención verificada por grep (recuerda: ApiService nunca hace get(url) sin slug):

/goal No queda ninguna llamada ApiService.get(url) sin slug en src/: ejecuta el grep y pega el resultado (0 coincidencias). `npm run build` compila y `npm run lint` limpio. Ningún otro directorio cambia. Detente tras 25 turnos.

Android Glop — Kotlin

/goal APPGLOP-XXX implementada según su descripción en JIRA; `./gradlew assembleDebug` compila y `./gradlew ktlintCheck` pasa. Lista cada criterio de aceptación de JIRA con la clase/función que lo resuelve. No se modifican módulos fuera de :feature:comandas. Detente tras 20 turnos.

Central Servicios — servicios Windows

Como en Central Glop, la verificación fuerte es la compilación, reforzada con el arranque del servicio en local (que Claude pegue la salida de arranque).

/goal El cambio en servicio-post está implementado; el proyecto compila sin errores (log en el chat) y el servicio arranca correctamente en local (salida de arranque pegada). git status muestra solo ficheros del servicio y no se toca la lógica de conexión con la nube. Detente tras 25 turnos.

WordPress — wooglop y addons (PHP)

/goal La tarea en wooglop está implementada; `php -l` no da errores de sintaxis en los ficheros tocados y `phpcs –standard=WordPress` pasa sin errores. Lista cada criterio de aceptación con el fichero:función que lo resuelve. No se modifican otros plugins del ecosistema. Detente tras 20 turnos.

7. Buenas prácticas y precauciones

Combínalo con el modo automático. Sin él, /goal te seguirá pidiendo permiso en cada edición y no correrá solo. El modo automático aprueba las herramientas dentro del turno; /goal decide si hay otro turno. Juntos es cuando se vuelve realmente autónomo.
Nunca sobre main. Un objetivo autónomo puede tocar muchos ficheros. Trabaja siempre en la rama feature/<KEY> de la tarea, para poder descartar todo con un git reset si el resultado no convence.
Pon siempre un límite. Añade «o detente tras N turnos» a la condición. Sin tope, un objetivo mal medido puede iterar más de la cuenta. Claude reporta el progreso contra ese límite en cada turno.
Ancla a algo objetivo, no a una opinión. «Compila y el grep da 0 coincidencias» es verificable; «el código es correcto» no. Si tu proyecto no tiene tests, apóyate en compilación + grep + git status (sección 4).
Acota el alcance. Las cláusulas «no se toca nada fuera de <RUTA>» y «ninguna firma pública cambia» evitan que el objetivo se expanda y modifique cosas que no tocaba.
Vigila la razón del evaluador. En cada turno se muestra por qué la condición aún no se cumple. Si ves que da vueltas sobre lo mismo, corta con /goal clear y reformula la condición.

8. Referencia rápida de comandos

ComandoQué hace
/goal <condición>Fija el objetivo y arranca un turno de inmediato (la condición es la propia directiva). Si ya había uno, lo reemplaza.
/goalSin argumentos: muestra el estado — condición, tiempo, turnos evaluados, tokens gastados y la última razón del evaluador.
/goal clearCancela el objetivo activo antes de cumplirse. Alias válidos: stop, off, reset, none, cancel.
claude -p "/goal ..."Modo no interactivo: ejecuta el bucle hasta completarse en una sola invocación. Se corta con Ctrl+C.
--resume / --continueRestaura un objetivo que seguía activo al cerrar la sesión (se reinician contador de turnos, temporizador y línea base de tokens).
Indicador en pantalla: mientras un objetivo está activo verás ◎ /goal active con el tiempo que lleva corriendo. Iniciar una conversación nueva con /clear también elimina el objetivo.

9. Preguntas frecuentes

No tenemos tests automatizados. ¿Tiene sentido usar /goal?

Sí. /goal no necesita tests, necesita evidencia objetiva en el chat. Ancla la condición a la compilación, a un grep, a git status o a un curl, y refuérzala con el checklist de criterios de JIRA. Lo tienes desarrollado en la sección 4.

¿Consume muchos tokens el evaluador?

No. El evaluador corre en el modelo pequeño y rápido (Haiku por defecto) y su gasto es normalmente insignificante frente al del turno principal. Lo caro es el trabajo, no la comprobación.

¿Va a escribir código sin mi permiso?

Solo si activas el modo automático. Con /goal a secas, cada herramienta que edite ficheros te seguirá pidiendo confirmación; lo que /goal elimina son los «continúa» por turno, no las aprobaciones por herramienta.

¿Cómo lo paro a mitad?

En sesión interactiva, /goal clear. En modo no interactivo (-p), Ctrl+C. Y /clear (nueva conversación) también lo borra.

¿Qué pasa si cierro la sesión con un objetivo a medias?

Si reanudas con --resume o --continue, la condición se restaura (se reinician contadores). Un objetivo ya cumplido o ya borrado no se restaura.

¿Por qué mi objetivo no se cierra nunca?

Casi siempre es una condición no verificable desde el chat: revisa que se apoye en algo cuyo resultado Claude pegue en la conversación (compilación, grep, git status, curl). Mira la razón del evaluador de cada turno para ver qué le falta.

¿En qué se diferencia de /loop o de un Stop hook?

/goal arranca el siguiente turno cuando acaba el anterior y para cuando un modelo confirma la condición. /loop arranca cada intervalo de tiempo. Un Stop hook vive en tu configuración y aplica a todas las sesiones de su ámbito; /goal es un atajo de una sola sesión (por dentro es justo un Stop hook basado en prompt).


Glop — Trabajo autónomo con /goal en Claude Code — Manual para desarrollo — Julio 2026

Partner Agnóstico: guía de alta y configuración para soporte

Partner Agnóstico: localizaciones y pedidos — Glop (Manual para partners)

Api de Glop Glop Cloud   Manual para partners — Julio 2026

Partner Agnóstico: enviar tus localizaciones y tus pedidos

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») 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í ya puedes enviar pedidos. Cuando tu catálogo cambie, vuelves a enviar la lista.
Lee la sección 8 antes de enviar tu primer pedido. El endpoint de pedidos responde 200 OK aunque el pedido no llegue a crearse, y acepta importes o campos mal formados sin protestar. Casi todas las incidencias de puesta en marcha salen de ahí: el formato del pedido no perdona y no avisa.
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. 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:

DatoPara 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, la puesta en marcha 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 del catálogo.
2 Enviar tus localizaciones. Con ese token, mandas la lista de localizaciones del sitio a una URL fija.

Después de eso, soporte conecta cada localización con su terminal (sección 7) y ya puedes empezar a enviar pedidos (sección 8).


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: dura 15 días (expires_in, en segundos). Guárdalo y reutilizálo 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»: «KYTS-CAF-MARIA», «nombre»: «Cafetería María» }, { «id»: «KYTS-PEPITO-1», «nombre»: «Bar Pepito 1» }, { «id»: «KYTS-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»: «KYTS-CAF-MARIA», «nombre»: «Cafetería María» }, { «id»: «KYTS-PEPITO-1», «nombre»: «Bar Pepito 1» } ] }’

Glop te responde confirmando cuántas localizaciones ha guardado:

{ «status»: «ok», «count»: 2 }
Nota: puedes usar PUT o POST indistintamente sobre esta misma URL; el resultado es el mismo.
Si una sola localización va mal, no se guarda ninguna: a diferencia del envío de pedidos, este endpoint sí valida. Si a cualquier localización de la lista le falta el id, la respuesta es 422 y se rechaza el lote entero — el catálogo anterior se queda como estaba. Revisa el 422 y reenvía la lista completa corregida.

5. Contenido de cada localización

CampoObligatorioDescripción
id (texto)Identificador único de la localización. Debe ser estable (es lo que identifica cada localización entre un envío y el siguiente) y único a nivel global (ver el aviso de abajo). Si falta en alguna localización, se rechaza el lote entero con 422.
nombre (texto)RecomendadoNombre del establecimiento (p. ej. «Bar Pepito 1»). Es lo que verá soporte al conectarlo con un terminal, así que ponlo claro.
id_mesa (texto)NoSolo para integraciones de pedidos en mesa: mesa asociada a la localización. Si tu integración es de pedidos en mesa, acuérdalo con soporte antes de usarlo. Para delivery, omítelo.
El id debe ser único en toda la nube de Glop, no solo en tu sistema. Cuando entra un pedido, Glop busca su location entre las localizaciones de todos los clientes e integradores para saber a qué terminal enviarlo. Un identificador genérico como BARRA, 1 o MADRID puede coincidir con el de otro cliente y tu pedido acabaría en el terminal de un tercero.
  • Haz esto: prefija todos tus id con algo tuyo e irrepetible — KYTS-CAF-MARIA, KYTS-PEPITO-1.
  • No hagas esto: 1, BARRA, PEPITO-1, CENTRO.

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.

Hasta que soporte no conecte una localización con su terminal, sus pedidos no entran. Y no recibirás ningún error al enviarlos (ver sección 8). Antes de dar por buena tu integración, confirma con soporte que el mapeo está hecho.

8. Enviar un pedido

Una vez soporte ha conectado tus localizaciones a los terminales, ya puedes enviar pedidos. Se envían a un endpoint fijo, y este envío no necesita token:

POST https://api.glop.es/api/v1/delivery/orders

8.1. Antes de nada: la respuesta no confirma nada

Este endpoint responde siempre 200 OK con un cuerpo vacío ([]), tanto si el pedido se ha creado como si se ha descartado. No hay código de error, ni mensaje, ni forma de distinguir el éxito del fallo desde la respuesta. Un 200 significa «te he oído», no «he creado el pedido».
  • Durante la integración, comprueba en el terminal (o con soporte) que cada pedido de prueba ha entrado de verdad. No te fíes de la respuesta.
  • Si un pedido no aparece, la causa casi siempre está en 8.2. Repásalas en orden.

8.2. Las cinco reglas que no perdonan

Estas son las causas reales de las incidencias que hemos visto en producción. Las dos primeras hacen que el pedido se pierda; las tres siguientes dejan que entre con datos erróneos, que suele ser peor porque nadie se da cuenta hasta que hay que cuadrar la caja.

1. Un pedido es un objeto, nunca un array — si no, se pierde. Envía { ... }, no [{ ... }]. La API espera un único pedido por llamada. Si lo envuelves en un array, no encuentra el location, descarta el pedido y te responde 200 igualmente. No se admiten lotes: un pedido, una llamada.
2. customer.email: o un email de verdad, o no lo envíes — si no, se pierde. Un valor de relleno sin @ ("-", "", "n/a") provoca un error interno y el pedido no entra.
  • Lo más seguro es omitir el campo: Glop genera uno solo a partir del teléfono.
  • Si lo envías, que sea un email real con @.
  • Da igual lo que mandes: Glop reescribe el email internamente para que cada pedido tenga uno distinto. No te sirve para identificar al cliente.
3. Todos los importes van en CÉNTIMOS, como número entero — si no, se cobra mal. 12,50 € se envía como 1250, no como 12.5. Afecta a payment.amount, al price de cada línea y a deliveryCost, serviceCharge, tip y discountTotal. Si envías decimales, el pedido entra igualmente y se cobra un importe incorrecto: nadie te avisa.
4. Cada línea necesita su plu — si no, entra sin artículo. El plu es el identificador del artículo en Glop. Si falta o va vacío, la línea entra en el terminal sin artículo asociado, sin ningún error.
5. _created y orderIsAlreadyPaid son fáciles de olvidar y salen caros:
  • Si omites _created, el pedido entra fechado el 01/01/1970.
  • Si omites orderIsAlreadyPaid, el pedido se marca como PAGADO. Si el cliente paga en el local, envía false explícitamente.

8.3. Ejemplo de referencia

Este es un pedido completo y correcto. Si tienes dudas, copia esta forma:

POST https://api.glop.es/api/v1/delivery/orders Content-Type: application/json { «orderId»: «NORA-1784115580339», «location»: «KYTS-CASA-NEREA-GANDIA», «_created»: «2026-07-15T11:39:40.339Z», «deliveryTime»: «2026-07-15T11:39:40.339Z», «channel»: { «slug»: «nora» }, «orderType»: 1, «orderIsAlreadyPaid»: false, «payment»: { «amount»: 1250 }, «customer»: { «name»: «David», «phoneNumber»: «624577459» }, «deliveryAddress»: [], «note»: «Pago en efectivo», «deliveryCost»: 0, «items»: [ { «plu»: «204141718», «name»: «Margarita», «price»: 1250, «quantity»: 1 } ] }
Fíjate en tres detalles del ejemplo: payment.amount y price valen 1250 (12,50 € en céntimos); no hay customer.email (se omite a propósito); y deliveryAddress es [] porque no hay reparto a domicilio.

8.4. Campos del pedido

CampoObligatorioDescripción
location (texto)El mismo id de la localización que enviaste en tu catálogo. Debe coincidir exactamente (mayúsculas y guiones incluidos). Es lo que Glop usa para saber a qué local y terminal entra el pedido.
orderId (texto)Tu identificador del pedido. Si no lo envías, Glop genera uno aleatorio y pierdes la trazabilidad con tu sistema.
_created (fecha ISO 8601)Fecha y hora del pedido. Si falta, el pedido entra fechado el 01/01/1970.
payment.amount (entero)Importe total en céntimos. 12,50 € → 1250.
items (lista)Líneas del pedido. Ver 8.5.
orderIsAlreadyPaid (booleano)Muy recomendadotrue si ya está pagado, false si se paga en el local. Si lo omites, se marca como pagado.
channel.slug (texto)RecomendadoNombre de tu canal (p. ej. nora). Es lo que se ve como plataforma de origen en el terminal. Si falta, el pedido aparece como deliverect.
customer.name (texto)RecomendadoNombre del cliente. Si falta, se usa el nombre del canal.
customer.phoneNumber (texto)RecomendadoTeléfono del cliente. Si falta, se registra 000000000.
customer.email (texto)No — mejor omitirOmítelo, o envía un email real con @. Un valor de relleno sin @ hace que el pedido no entre.
id_mesa (texto)Solo pedidos en mesaSi lo envías, el pedido entra como pedido en mesa en esa mesa, no como delivery. Para delivery, omítelo.
deliveryAddress (objeto o [])NoDirección de entrega (street, streetNumber, postalCode, city, notes). Envía [] si no hay reparto.
deliveryTime (fecha ISO 8601)NoFecha sugerida de entrega. Si falta, se usa la hora actual.
note (texto)NoNota del pedido, llega a las observaciones del terminal. Se recorta a 150 caracteres y se le quitan los saltos de línea.
deliveryCost, serviceCharge, tip (enteros)NoGastos de envío, servicio y propina, en céntimos. Si suman más de cero, se añaden como una línea «Envío» al pedido.
discountTotal (entero)NoDescuento total del pedido, en céntimos.
orderType (entero)NoTipo de pedido: 1 Pickup, 2 Delivery, 3 Eat in, 4 Curbside pickup.
account (texto)NoNo se usa en esta integración. Envíalo vacío ("") u omítelo.

8.5. Campos de cada línea (items)

CampoObligatorioDescripción
plu (texto)Identificador del artículo en Glop. Si falta o va vacío, la línea entra sin artículo.
name (texto)Descripción del artículo, tal y como saldrá en el terminal.
quantity (entero)Unidades. Si falta, se registra 0.
price (entero)Precio de la línea en céntimos. Si falta, se registra 0.
remark (texto)NoNota de esa línea (p. ej. «sin cebolla»).
discount (entero)NoDescuento de la línea, en céntimos.
subItems (lista)NoExtras, modificadores o artículos de menú. Si vas a usarlos, acúerdalo antes con soporte: el formato del plu de un subitem tiene reglas propias.

8.6. Lista de comprobación antes de tu primer pedido real

1 Soporte ha conectado la localización con su terminal. Confírmalo con ellos.
2 El pedido es un objeto { ... }, no un array.
3 El location coincide carácter a carácter con un id de tu catálogo.
4 Todos los importes son enteros en céntimos. Busca cualquier decimal en tu JSON: si hay un punto, algo va mal.
5 No hay customer.email, o el que hay lleva @.
6 Están _created y orderIsAlreadyPaid, y cada línea tiene plu.
7 Has visto el pedido en el terminal. No des por bueno el 200.

9. Errores frecuentes

SíntomaQué 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 de localizaciones devuelve 401El token ha caducado o falta la cabecera Authorization: Bearer .... Pide un token nuevo (sección 3) y reintenta.
El envío de localizaciones devuelve 422El cuerpo debe ser { "locations": [ ... ] } con al menos una localización, y todas con su id. Basta que a una le falte para que se rechace el lote entero. Envía Content-Type: application/json.
El pedido responde 200 y no aparece en el terminalEs lo más habitual, y el 200 no te dice nada. Repásalo en este orden: (1) ¿va envuelto en un array [{...}]? (2) ¿lleva customer.email con un valor sin @? (3) ¿el location coincide exactamente con un id de tu catálogo? (4) ¿ha conectado soporte esa localización con un terminal?
El pedido entra pero con importes erróneosLos importes van en céntimos como entero: 12,50 € es 1250, no 12.5. Revisa payment.amount y el price de cada línea.
La línea entra sin artículoFalta el plu de esa línea, o va vacío.
El pedido aparece fechado el 01/01/1970Falta _created.
El pedido aparece como pagado sin estarloFalta orderIsAlreadyPaid. Envía false explícitamente cuando el cliente pague en el local.
El pedido aparece como deliverect y no con tu nombreFalta channel.slug.
El pedido entra en el terminal de otro clienteTu id de localización choca con el de otro integrador. Usa identificadores prefijados con algo tuyo (sección 5) y avisa a soporte.
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, el envío de pedidos o la conexión de las localizaciones con los terminales, contacta con el equipo de soporte de Glop que dio de alta tus sitios. Si un pedido no entra, ten a mano el orderId, el location y el JSON exacto que enviaste: sin eso no se puede diagnosticar.

Glop — Partner Agnóstico: enviar tus localizaciones y tus pedidos — Manual para partners — Julio 2026

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.

App: Informes Mensuales – Manual comercial

Versión: 1.0 Fecha: 2025-11-12 Módulo: Informes Mensuales con Sistema de Rankings


Índice

  1. ¿Qué son los Informes Mensuales?
  2. Beneficios para el Cliente
  3. Sistema de Rankings
  4. Funcionalidades Principales
  5. Casos de Uso
  6. Segmentación de Mercado
  7. Argumentario Comercial
  8. Diferenciación con la Competencia

¿Qué son los Informes Mensuales?

Los Informes Mensuales son un módulo avanzado de análisis de rendimiento que proporciona una visión completa del desempeño del negocio a lo largo de un mes completo. A diferencia de los informes diarios que se centran en datos del día a día, los informes mensuales ofrecen perspectiva histórica, análisis de tendencias y un innovador Sistema de Rankings que gamifica la gestión del negocio.

Características Destacadas

Análisis Histórico de 12 Meses – Visualiza tendencias y patrones a largo plazo ✅ Sistema de Rankings Competitivo – Puntuaciones mensuales de terminales, empleados, artículos y métricas ✅ 6 Widgets Especializados – Análisis profundo de cada área del negocio ✅ Medallas y Reconocimientos – Gamificación visual con oro, plata y bronce ✅ Comparativas Mensuales – Compara cada mes con el anterior para identificar evolución ✅ Análisis de Valores Medios – Rankings de eficiencia y rendimiento operativo ✅ Visualización de Tendencias – Gráficos de evolución anual


Beneficios para el Cliente

Para Gerentes y Propietarios

  1. Planificación Estratégica

    • Identifica tendencias de ventas por temporada
    • Planifica inventario basado en patrones históricos
    • Establece objetivos realistas basados en datos históricos
  2. Evaluación de Rendimiento

    • Rankings objetivos de empleados mes a mes
    • Identificación de best performers para promociones
    • Detección de áreas que requieren mejora
  3. Toma de Decisiones Basada en Datos

    • Visualiza qué productos funcionan mejor cada mes
    • Analiza qué terminales generan más ingresos
    • Evalúa la efectividad de campañas estacionales

Para Recursos Humanos

  1. Sistema de Incentivos

    • Rankings mensuales objetivos para bonificaciones
    • Reconocimiento público de mejores empleados
    • Datos para evaluaciones de desempeño
  2. Gestión de Talento

    • Identifica empleados con potencial de liderazgo
    • Detecta necesidades de formación específicas
    • Crea competiciones sanas entre equipos

Para Marketing y Ventas

  1. Análisis de Campañas

    • Mide el impacto de promociones mensuales
    • Identifica productos estrella por temporada
    • Optimiza estrategias según datos históricos
  2. Segmentación de Clientes

    • Analiza patrones de compra mensuales
    • Identifica productos complementarios
    • Planifica promociones cruzadas

Sistema de Rankings

¿Qué es el Sistema de Rankings?

El Sistema de Rankings es una funcionalidad innovadora que convierte los datos de ventas en una competición gamificada. Cada mes, terminales, empleados, artículos y métricas acumulan puntos según su posición en el ranking, creando una puntuación histórica que motiva la mejora continua.

¿Cómo Funciona?

Sistema de Puntuación

Cada mes, se asignan puntos a los TOP 3 de cada categoría:

Posición Puntos Medalla
#1 Oro 3 puntos 🥇
#2 Plata 2 puntos 🥈
#3 Bronce 1 punto 🥉
#4+ 0 puntos

Ejemplo práctico:

Un empleado que en los últimos 6 meses ha quedado:

  • Enero: #1 (3 puntos)
  • Febrero: #2 (2 puntos)
  • Marzo: #1 (3 puntos)
  • Abril: #4 (0 puntos)
  • Mayo: #2 (2 puntos)
  • Junio: #1 (3 puntos)

Total acumulado: 13 puntos

Este empleado lideraría el Ranking General si ningún otro ha acumulado más puntos.


Categorías de Rankings

1. Ranking de Terminales

Qué rankea: Puntos de venta / Terminales TPV

Criterio de ranking mensual: Total de ventas del mes

Beneficios:

  • Identifica qué ubicación/terminal genera más ingresos
  • Permite redistribuir recursos hacia terminales más rentables
  • Crea competición sana entre diferentes puntos de venta

Visualización:

  • TOP 3 con medallas en el widget principal
  • Modal con ranking histórico completo (todos los meses)
  • Tabla con: Posición, Terminal, Puntos Acumulados, Ventas Totales

Caso de uso: Una cadena de restaurantes con 5 locales identifica que el local de la zona centro siempre queda #1, pero el local de la periferia nunca entra en TOP 3. Decisión: invertir en marketing local para la periferia.


2. Ranking de Empleados

Qué rankea: Vendedores / Personal de atención

Criterio de ranking mensual: Total de ventas procesadas por empleado

Beneficios:

  • Reconocimiento público de mejores vendedores
  • Base objetiva para bonificaciones y comisiones
  • Motivación del equipo mediante gamificación
  • Identificación de empleados que necesitan formación

Visualización:

  • TOP 3 con fotos, medallas y diseño destacado para el ganador
  • Modal con ranking histórico completo
  • Tabla con: Posición, Foto, Nombre, Puntos, Ventas Totales

Características especiales:

  • El empleado #1 tiene un diseño especial con fondo verde y animación
  • Se muestran fotos de los empleados para identificación visual
  • Número de tickets procesados como métrica secundaria

Caso de uso: Un retail implementa bonificaciones mensuales: 200€ al #1, 100€ al #2, 50€ al #3. Al cabo de 3 meses, las ventas globales suben un 18% por la motivación del equipo.


3. Ranking de Artículos

Qué rankea: Productos/Servicios vendidos

Criterio de ranking mensual: Cantidad vendida × Valor total

Beneficios:

  • Identifica productos estrella del mes
  • Optimiza inventario según demanda real
  • Detecta productos con bajo movimiento
  • Planifica promociones de productos menos vendidos

Visualización:

  • TOP 3 artículos más vendidos
  • Switch para alternar entre “ranking del mes” y “ranking de últimos 12 meses”
  • Modal con TOP 25 artículos históricos
  • Tabla con: Posición, Artículo, Cantidad, Valor Total, Variación %

Características especiales:

  • Modo dual: Rankings mensuales o acumulado de 12 meses
  • En modo 12 meses: suma total de cantidades sin sistema de puntos
  • Útil para análisis de temporada completa

Caso de uso: Un restaurante descubre que el producto #1 en verano es “Ensalada César” pero en invierno es “Sopa de Calabaza”. Ajustan menús y compras según temporada.


4. Ranking de Valores Medios

Qué rankea: Métricas de eficiencia operativa

Métricas incluidas:

A) Media de Ventas (Ticket Medio)
  • Qué mide: Valor promedio por transacción
  • Objetivo: Posición #1 = Mayor ticket medio del mes
  • Utilidad: Mide efectividad de estrategias de upselling
  • Animación: Confetti cuando está en #1 y visible en pantalla
B) Tiempo Medio de Venta
  • Qué mide: Duración promedio de cada transacción
  • Objetivo: Posición #1 = Menor tiempo medio (ranking inverso)
  • Utilidad: Mide eficiencia operativa y velocidad de servicio
  • Nota: Es el ÚNICO ranking donde menor = mejor
C) Total Comensales (Solo licencia hostelería)
  • Qué mide: Número total de clientes atendidos
  • Objetivo: Posición #1 = Más comensales del mes
  • Utilidad: Mide capacidad de rotación y atracción de clientes
D) Venta por Comensal (Solo licencia hostelería)
  • Qué mide: Valor promedio gastado por cada cliente
  • Objetivo: Posición #1 = Mayor gasto por cliente
  • Utilidad: Combina volumen y valor de venta

Visualización:

  • Grid 2×2 (móvil: 1 columna) con tarjetas de métricas
  • Badge en esquina superior derecha con posición (#1, #2, #3…)
  • Click en badge abre modal con ranking histórico
  • Animación de confetti cuando la métrica está en #1

Sistema de Puntos:

  • Cada métrica acumula puntos de forma independiente
  • Un sitio puede ser #1 en “Ticket Medio” pero #3 en “Tiempo Medio”
  • Permite identificar fortalezas y debilidades específicas

Caso de uso: Un bar descubre que tiene el #1 en “Total Comensales” (mucho volumen) pero #5 en “Venta por Comensal” (poco gasto por cliente). Decisión: implementar promociones de combos para incrementar ticket medio.


Modales de Ranking

Cada widget de ranking incluye un modal interactivo que muestra:

Contenido del Modal

  1. Tabla Histórica Completa

    • Todos los meses desde que hay datos
    • Ranking detallado por mes
    • Puntos acumulados
    • Ventas totales
  2. Puntuación Global

    • Suma total de puntos de todos los meses
    • Ranking general ordenado por puntos
    • En caso de empate: desempate por ventas totales
  3. Diseño Visual

    • Medallas (🥇🥈🥉) para TOP 3
    • Tabla responsive: Desktop = tabla, Móvil = tarjetas
    • Colores de posición: Oro (amarillo), Plata (gris), Bronce (naranja)

Ejemplo de Modal – Ranking de Empleados

┌─────────────────────────────────────────────────┐
│  Ranking General de Empleados                   │
├─────────────────────────────────────────────────┤
│  Pos  │  Empleado      │  Puntos  │  Ventas     │
├───────┼────────────────┼──────────┼─────────────┤
│  &#x1f947;#1  │  Juan Pérez    │    23    │  45.234,50€ │
│  &#x1f948;#2  │  María García  │    19    │  42.100,30€ │
│  &#x1f949;#3  │  Carlos López  │    15    │  38.765,20€ │
│   #4  │  Ana Martínez  │    12    │  35.432,10€ │
│   #5  │  Luis Sánchez  │     8    │  29.876,40€ │
└───────┴────────────────┴──────────┴─────────────┘

Gamificación y Motivación

Elementos de Gamificación Implementados

  1. Medallas Visuales

    • Oro, plata, bronce para TOP 3
    • Iconografía clara y reconocible
    • Colores asociados a cada posición
  2. Animaciones de Celebración

    • Confetti cuando una métrica alcanza #1
    • Solo se activa cuando el elemento es visible en viewport
    • Sistema de flags para evitar repeticiones
  3. Frases Motivacionales

    • Mensajes dinámicos según posición en ranking
    • Contextualizados por tipo de ranking
    • Combinan reconocimiento con motivación

Ejemplos de Frases Motivacionales

Para posición #1:

“¡Increíble! Estás en la cima del ranking con un rendimiento excepcional. ¡Sigue así!”

Para posición #2:

“¡Muy cerca del #1! Solo un esfuerzo más y alcanzarás el primer puesto.”

Para posición #3:

“¡Buen trabajo! Estás en el podio. Con un poco más llegarás al #1.”

Para posición #4+:

“Sigue trabajando duro. El esfuerzo constante te llevará al TOP 3.”


Funcionalidades Principales

1. Dashboard de Informes Mensuales

El usuario accede a un dashboard completo con 6 widgets principales:

🏆 Total de Ventas del Mes

  • Qué muestra: Cifra total de ventas del mes consultado
  • Valor añadido:
    • Badge comparativo con porcentaje de variación vs mes anterior
    • Gráfico de evolución mensual
    • Desglose de métricas clave
  • Uso comercial: Vista rápida del rendimiento mensual global

Total Ventas del Mes

📊 Total de Ventas de 12 Meses

  • Qué muestra: Gráfico de área con ventas de los últimos 12 meses
  • Valor añadido:
    • Visualización de tendencias estacionales
    • Identifica patrones de crecimiento o declive
    • Comparación visual mes a mes
  • Uso comercial: Planificación estratégica y previsión de ventas

Total Ventas 12 Meses

💻 Ranking de Ventas por Terminal

  • Qué muestra: TOP 3 terminales con más ventas + ranking histórico
  • Características:
    • Medallas oro, plata, bronce
    • Puntos acumulados por posiciones históricas
    • Modal con ranking general
  • Uso comercial: Optimiza distribución de recursos por terminal

Total Ventas por Terminal

👥 Ranking de Ventas por Empleado

  • Qué muestra: TOP 3 empleados con más ventas + ranking histórico
  • Características:
    • Fotos de empleados
    • Diseño especial para el ganador
    • Número de tickets procesados
    • Puntos acumulados históricos
  • Uso comercial: Base para sistema de incentivos y bonificaciones

Total Ventas por empleado

🛍️ Ranking de Ventas por Artículo

  • Qué muestra: TOP 3 artículos más vendidos + ranking histórico
  • Características:
    • Switch: Ranking mensual vs últimos 12 meses
    • Modal con TOP 25 artículos
    • Cantidad y valor total
  • Uso comercial: Optimiza inventario y planifica promociones

Total Ventas por artículo

📈 Rankings de Valores Medios

  • Qué muestra: 4 métricas clave en tarjetas visuales
    • Ticket medio
    • Tiempo medio de venta
    • Total comensales (hostelería)
    • Venta por comensal (hostelería)
  • Características:
    • Badge con posición en ranking por cada métrica
    • Animación de confetti en #1
    • Modal de ranking histórico por métrica
  • Uso comercial: Identifica fortalezas y áreas de mejora operativa

Valores medios


2. Sistema de Navegación Temporal

Selector de Meses Inteligente

  • Rango disponible: Últimos 12 meses completos (sin incluir el mes actual)
  • Protección: No permite consultar el mes en curso
  • Redirección automática: Si se intenta acceder al mes actual, redirige al dashboard
  • Navegación rápida: Selector visual de mes y año

Valor comercial: Los clientes pueden analizar evolución mensual, comparar meses específicos (ej: diciembre vs enero) y realizar análisis de temporadas completas.


3. Comparativas Mensuales

Todas las métricas incluyen comparación con el mes anterior:

  • Badge visual: Verde (incremento), Rojo (decremento), Gris (sin cambios)
  • Porcentaje: Cálculo automático de variación
  • Contexto: Permite entender si una métrica mejora o empeora

Ejemplo:

Total Ventas: 45.234,50€  [+15.3% ↑]
(vs mes anterior: 39.187,25€)

Casos de Uso

Caso 1: Restaurante con Sistema de Bonificaciones

Escenario: Un restaurante quiere implementar bonificaciones mensuales para sus 10 camareros.

Solución con Informes Mensuales:

  1. Se configura el sistema de rankings de empleados
  2. Se establece bonificación: 300€ para #1, 150€ para #2, 75€ para #3
  3. Los empleados consultan el ranking diariamente para ver su posición
  4. Al final del mes, se pagan bonificaciones según ranking
  5. Se comunica el ranking histórico acumulado para motivar mejora continua

Resultados:

  • Aumento del 22% en ventas totales en 3 meses
  • Competición sana y positiva en el equipo
  • Reducción de rotación de personal (empleados motivados)
  • Mayor satisfacción del cliente por atención más proactiva

Caso 2: Cadena de Tiendas Multi-Sede

Escenario: Cadena de 8 tiendas de moda quiere identificar cuál es la más rentable.

Solución con Informes Mensuales:

  1. Cada tienda configurada como terminal independiente
  2. Consulta del ranking de terminales mensual
  3. Análisis de TOP 3 tiendas vs las últimas posiciones
  4. Identificación de patrones: ¿qué hacen diferente las TOP 3?

Hallazgos:

  • Tienda del centro comercial siempre #1 por tráfico
  • Tienda de barrio con mejor “venta por comensal” (más eficiente)
  • Tiendas en zonas turísticas tienen picos en verano pero declive en invierno

Acciones tomadas:

  • Redistribución de personal experto hacia tiendas menos eficientes
  • Implementación de best practices de la tienda #1 en el resto
  • Campañas localizadas para tiendas con bajo rendimiento
  • Ajuste de inventario según patrones de cada tienda

Resultados:

  • Aumento del 12% en ventas globales
  • Reducción de stock muerto en un 30%
  • Mejor distribución de recursos humanos

Caso 3: Bar con Análisis de Productos

Escenario: Un bar quiere optimizar su carta eliminando productos poco rentables.

Solución con Informes Mensuales:

  1. Consulta del ranking de artículos en modo “últimos 12 meses”
  2. Identificación de TOP 25 productos más vendidos
  3. Análisis de productos que nunca aparecen en rankings
  4. Evaluación de margen de beneficio de productos TOP

Hallazgos:

  • 15 productos representan el 70% de las ventas
  • 40 productos apenas se venden (2-3 unidades al mes)
  • Algunos productos populares tienen bajo margen
  • Productos con alto margen no están en TOP 10

Acciones tomadas:

  • Eliminación de 25 productos con bajo movimiento
  • Promociones especiales de productos con alto margen
  • Reposicionamiento de productos rentables en carta
  • Formación a camareros para sugerir productos estratégicos

Resultados:

  • Reducción de 30% en costes de inventario
  • Aumento de 18% en margen de beneficio
  • Carta más simple y eficiente
  • Menor desperdicio de productos perecederos

Caso 4: Retail con Análisis de Eficiencia

Escenario: Tienda de electrónica quiere mejorar la eficiencia de su equipo de ventas.

Solución con Informes Mensuales:

  1. Consulta del widget de “Valores Medios”
  2. Análisis de las 4 métricas: Ticket medio, Tiempo medio, etc.
  3. Identificación de posición en rankings

Hallazgos:

  • Posición #1 en “Ticket Medio” (37,50€) – ¡Excelente!
  • Posición #5 en “Tiempo Medio” (8 minutos) – Necesita mejora
  • Comparación con competencia: líder tiene 5 minutos de media

Acciones tomadas:

  • Análisis del proceso de venta: ¿dónde se pierde tiempo?
  • Implementación de TPV más rápido
  • Formación en técnicas de cierre de venta
  • Pre-empaquetado de productos populares

Resultados:

  • Reducción de tiempo medio a 5,5 minutos (subida a #2)
  • Capacidad de atender 20% más clientes con mismo personal
  • Mejor experiencia del cliente (menos esperas)
  • Animación de confetti al alcanzar #1 en “Ticket Medio” motiva al equipo

Segmentación de Mercado

¿A Quién Va Dirigido?

Sector Hostelería ⭐ (Funcionalidad completa)

  • ✅ Restaurantes con múltiples camareros
  • ✅ Cadenas de cafeterías
  • ✅ Hoteles con varios puntos de venta
  • ✅ Franquicias de fast-food
  • ✅ Bares con alta rotación de clientes

Ventaja: Incluye métricas específicas de comensales y venta por comensal

Sector Retail

  • ✅ Tiendas con múltiples vendedores
  • ✅ Cadenas multi-sede
  • ✅ Negocios con alto volumen de SKUs
  • ✅ Retail con sistema de comisiones

Servicios

  • ✅ Centros con múltiples profesionales
  • ✅ Clínicas con varios médicos/terapeutas
  • ✅ Gimnasios con entrenadores personales
  • ✅ Talleres con técnicos especializados

Argumentario Comercial para Ventas

Puntos Fuertes (USPs)

  1. “Convierte tus datos en una competición motivadora”

    • No solo ves números, ves quién gana cada mes
    • Gamificación que impulsa naturalmente el rendimiento
    • Reconocimiento automático de mejores performers
  2. “Rankings históricos con sistema de puntos acumulados”

    • No solo importa un mes: se valora la consistencia
    • Puntos de oro, plata y bronce como en olimpiadas
    • Ranking anual que premia la regularidad
  3. “Identifica patrones estacionales para planificar mejor”

    • Gráfico de 12 meses muestra claramente tendencias
    • Compara diciembre vs enero, verano vs invierno
    • Planifica compras e inventario según datos reales
  4. “Sistema de incentivos objetivo y transparente”

    • Rankings públicos para todo el equipo
    • Criterios claros y medibles
    • Base sólida para bonificaciones justas
  5. “Descubre tu producto estrella del año”

    • Rankings de artículos en dos modos: mensual y anual
    • TOP 25 productos históricos
    • Optimiza tu catálogo según datos reales

Respuesta a Objeciones Comunes

Objeción: “Mis empleados no les gustará competir” Respuesta: “El sistema de rankings no es solo competición: es reconocimiento. Los empleados quieren saber que su esfuerzo se valora. Además, los datos muestran que el 78% de los trabajadores millennials y gen-z están motivados por gamificación en el trabajo. La clave es presentarlo como una herramienta de crecimiento personal, no como presión.”

Objeción: “Ya sé quién vende más, no necesito un ranking” Respuesta: “Los rankings mensuales no solo muestran quién vende más: revelan tendencias. ¿Tu mejor vendedor es consistente o tuvo un mes excepcional? ¿El empleado nuevo está mejorando mes a mes? El sistema de puntos acumulados premia la regularidad, no la suerte de un mes. Además, los rankings de valores medios revelan eficiencias que las ventas brutas ocultan.”

Objeción: “Esto puede crear mal ambiente en el equipo” Respuesta: “Al contrario: la transparencia crea confianza. Los estudios demuestran que los equipos con métricas claras y públicas tienen mayor cohesión. El problema no es la competición, es la competición injusta. Nuestro sistema tiene criterios objetivos y matemáticos: no hay favoritismos. Además, puedes configurarlo para que solo los gestores vean los rankings si prefieres privacidad.”

Objeción: “Solo me interesa el total, no los detalles” Respuesta: “El total te dice CUÁNTO vendiste, pero no POR QUÉ. Los rankings te dicen qué terminal funciona mejor (¿dónde inviertes más?), qué empleado necesita formación (¿dónde está el problema?), qué producto deberías promocionar (¿qué compramos más?). Los detalles son donde están las oportunidades de mejora.”

Objeción: “Parece complicado de usar” Respuesta: “Todo lo contrario: medallas de oro, plata y bronce son universalmente entendidas. Un empleado mira el widget y ve inmediatamente si está #1, #2 o #3. No hay que ser experto en datos. Y si quiere profundizar, un click abre el modal con el ranking histórico completo. Es tan simple como mirar una tabla de clasificación de fútbol.”


Diferenciación con la Competencia

Ventajas vs Otros Sistemas de Reporting

Característica Miglop.es Informes Mensuales Competencia Típica
Sistema de Rankings Gamificado ✅ Con puntos acumulados históricos ❌ Solo listados estáticos
Medallas Visuales (Oro/Plata/Bronce) ✅ Incluido ⚠️ Algunos tienen badges simples
Rankings de Valores Medios ✅ 4 métricas con rankings independientes ❌ Solo métricas simples
Animaciones de Celebración ✅ Confetti en #1 ❌ Sin gamificación
Modal de Ranking Histórico ✅ 12 meses completos ⚠️ Solo mes actual
Fotos de Empleados ✅ En rankings de personal ❌ Solo nombres
Switch Mensual/Anual en Artículos ✅ Dos modos de visualización ❌ Solo un modo
Comparativas Automáticas ✅ Mes anterior ⚠️ Manual o sin comparativas
Gráfico de 12 Meses ✅ Con tendencias visuales ⚠️ Solo tablas de datos
Desempate Inteligente ✅ Por ventas totales si hay empate en puntos ❌ No gestionado

Contacto y Soporte

Para consultas comerciales:

  • Email: comercial@miglop.es
  • Web: https://www.miglop.es
  • Teléfono: +34 XXX XXX XXX

© 2025 Miglop.es – Todos los derechos reservados

App: Informes Diarios – Manual comercial

Versión: 1.0 Fecha: 2025-11-12 Ticket: APPGLOP-870 Módulo: Informes Diarios de Ventas


Índice

  1. ¿Qué son los Informes Diarios?
  2. Beneficios para el Cliente
  3. Funcionalidades Principales
  4. Sistema de Notificaciones por Email
  5. Sistema de Gamificación
  6. Casos de Uso
  7. Segmentación de Mercado
  8. Argumentario Comercial
  9. Diferenciación con la Competencia

¿Qué son los Informes Diarios?

Los Informes Diarios son un módulo avanzado de análisis de ventas que permite a los usuarios visualizar, analizar y recibir información detallada sobre el rendimiento diario de su negocio. Esta nueva funcionalidad proporciona insights inmediatos sobre ventas, operaciones y rendimiento del personal, con comparativas automáticas día a día.

Características Destacadas

Análisis en Tiempo Real – Consulta las ventas del día anterior con métricas actualizadas ✅ Comparativas Automáticas – Compara cada métrica con el día anterior para identificar tendencias ✅ 8 Widgets Interactivos – Visualiza información clave en tarjetas dinámicas y gráficos ✅ Email Diario Automático – Recibe informes PDF por correo electrónico cada mañana ✅ Sistema de Gamificación – Mensajes motivacionales basados en el rendimiento ✅ Acceso Protegido – Control de permisos por usuario y sitio


Beneficios para el Cliente

Para Gerentes y Propietarios

  1. Toma de Decisiones Ágil

    • Identifica problemas operacionales de forma inmediata
    • Reacciona rápidamente ante caídas de ventas
    • Detecta oportunidades de mejora día a día
  2. Ahorro de Tiempo

    • No necesitas revisar múltiples sistemas
    • Toda la información en un único dashboard
    • Informes automáticos por email cada mañana
  3. Mayor Control del Negocio

    • Monitoriza el rendimiento de cada terminal
    • Supervisa el desempeño de tu equipo
    • Controla los artículos más vendidos

Para el Equipo de Ventas

  1. Motivación y Reconocimiento

    • Rankings de empleados con mejor desempeño
    • Mensajes motivacionales basados en resultados
    • Competición sana entre miembros del equipo
  2. Transparencia

    • Visualización clara de objetivos
    • Métricas de rendimiento accesibles
    • Comparativas de evolución diaria

Para Marketing

  1. Análisis de Campañas

    • Mide el impacto de promociones día a día
    • Identifica los artículos con mejor respuesta
    • Analiza ventas por familia de productos
  2. Segmentación

    • Datos por terminal/punto de venta
    • Análisis de horarios pico
    • Comportamiento de compra por hora

Funcionalidades Principales

1. Dashboard Interactivo de Informes Diarios

El usuario accede a un dashboard completo con 8 widgets que muestran información crítica del negocio:

🏆 Total de Ventas del Día

  • Qué muestra: Cifra total de ventas del día consultado con desglose de base imponible, impuestos, descuentos y número de documentos
  • Valor añadido:
    • Badge comparativo con porcentaje de variación vs día anterior
    • Mensaje motivacional personalizado según rendimiento
    • Gráfico de área con evolución de ventas hora por hora
    • Comparativa visual día actual vs día anterior
  • Uso comercial: Identifica inmediatamente si el día fue exitoso o requiere acción correctiva

Total Ventas

📊 Resumen de Operaciones

Grid de 4 métricas clave en tarjetas visuales:

  • Total Cobros: Importe total cobrado con comparativa
  • Total Invitaciones: Valor de cortesías/invitaciones realizadas
  • Total Anulaciones: Importe de ventas anuladas (indicador de problemas)
  • Total Abonos: Valor de abonos procesados

Valor añadido: Detecta anomalías operativas de forma visual (ej: alto número de anulaciones puede indicar problemas de producto o servicio)

Resumen operaciones

💻 Ventas por Terminal

  • Qué muestra: Ranking de terminales/puntos de venta ordenados por volumen de ventas
  • Valor añadido:
    • Identificación visual con icono de terminal
    • Badge comparativo por cada terminal
    • Permite identificar terminales con bajo rendimiento
  • Uso comercial: Optimiza la distribución de recursos y personal según rendimiento de cada terminal

Ventas por terminal

👥 Ventas por Empleado

  • Qué muestra: TOP empleados con más ventas del día
  • Valor añadido:
    • Foto del empleado para identificación rápida
    • Número de tickets procesados
    • Ranking visual con posiciones (#1, #2, #3…)
    • Diseño destacado para el empleado ganador (fondo verde)
  • Uso comercial:
    • Reconocimiento inmediato del mejor vendedor
    • Identificación de empleados que necesitan formación
    • Base para sistemas de incentivos y bonificaciones

Ventas por empleado

🛍️ Ventas por Artículo

  • Qué muestra: Artículos más vendidos del día con cantidad y valor total
  • Valor añadido: Badge comparativo de variación vs día anterior
  • Uso comercial:
    • Optimiza inventario basándose en demanda real
    • Identifica productos estrella para campañas
    • Detecta productos con bajo movimiento

Ventas por artículo

📦 Ventas por Familia

  • Qué muestra: Agrupación de ventas por categoría/familia de productos
  • Valor añadido: Comparativa con día anterior por familia
  • Uso comercial:
    • Analiza rendimiento de categorías completas
    • Identifica familias con potencial de crecimiento
    • Planifica compras por familia

Ventas por familia

📈 Valores Medios

Métricas clave del negocio:

  • Ticket Medio: Valor promedio por transacción
  • Número de Comensales: Total de clientes atendidos
  • Ticket Medio por Comensal: Gasto promedio por cliente
  • Valor añadido: Cada métrica con badge comparativo
  • Uso comercial:
    • Mide efectividad de estrategias de upselling
    • Analiza capacidad y rotación de clientes
    • Establece objetivos de venta por transacción

Valores Medios

Ventas por Hora

  • Qué muestra: Gráfico de área con distribución de ventas a lo largo del día
  • Valor añadido:
    • Comparativa hora por hora con el día anterior
    • Visualización de picos y valles de actividad
  • Uso comercial:
    • Optimiza horarios de personal según demanda
    • Programa promociones en horarios de baja actividad
    • Ajusta producción según picos de demanda

Ventas por hora


2. Sistema de Navegación Temporal

Selector de Fechas Inteligente

  • Rango disponible: Consulta datos desde hace 1 año hasta ayer (D-1)
  • Protección: No permite consultar el día actual ni fechas futuras
  • Redirección automática: Si intentas acceder a una fecha no válida, el sistema te redirige a los datos de ayer
  • Navegación rápida: DatePicker visual para saltar a cualquier día anterior

Valor comercial: Los clientes pueden analizar tendencias históricas, comparar días específicos (ej: mismo día semana anterior) y realizar análisis retrospectivos.


3. Sistema de Notificaciones por Email

¿Qué es el Email Diario Automático?

El sistema de Email Diario Automático envía un informe PDF completo con los datos del día anterior a los usuarios autorizados, sin necesidad de acceder manualmente al panel.

Configuración del Email Diario

Los administradores pueden configurar:

  1. Activación/Desactivación

    • Switch simple para activar o desactivar el envío automático
    • Configuración independiente por sitio
  2. Destinatarios

    • Campo emails_reporte: Lista de correos separados por comas
    • Requisito: Los destinatarios deben tener usuario y contraseña en el panel
    • Validación automática de permisos de acceso
  3. Personalización del Mensaje

    • Asunto: Personalizable (ej: “Informe de Ventas Diario – [NombreSitio]”)
    • Cuerpo HTML: Editor visual con soporte para:
      • Texto enriquecido (negrita, cursiva, listas)
      • Imágenes embebidas en base64
      • Variable {{Sitio}} que se reemplaza automáticamente con el nombre del sitio
      • Límite de 20,000 caracteres
  4. Plantillas de Email

    • Selector de plantillas prediseñadas
    • Plantilla por defecto: Template 206
  5. Notificaciones al Administrador

    • Campo admin_notification_mail: Email del administrador
    • Opción para deshabilitar notificaciones a admin si no desea recibirlas

¿Cuándo se Envía?

  • Frecuencia: Automático cada mañana
  • Contenido: Datos del día anterior (D-1)
  • Hora: Configurable en backend (tras cierre de jornada)

Contenido del Email

El PDF adjunto incluye:

  • 📊 Total de ventas con comparativa
  • 💰 Resumen de operaciones (cobros, invitaciones, anulaciones, abonos)
  • 💻 Ranking de ventas por terminal
  • 👥 Ranking de empleados
  • 🛍️ Top artículos vendidos
  • 📦 Ventas por familia
  • 📈 Gráficos de ventas por hora

Beneficios del Email Diario

Información sin esfuerzo – Datos en tu bandeja de entrada cada mañana ✅ Accesible desde cualquier lugar – No necesitas acceder al panel ✅ Compartir fácilmente – Reenvía el PDF a socios o directivos ✅ Histórico automático – Los emails archivados funcionan como histórico de ventas ✅ Notificaciones push – Recibe alertas en tu teléfono cuando llega el email


4. Sistema de Gamificación

Frases Motivacionales Dinámicas

El widget de Total de Ventas incluye un sistema de mensajes motivacionales que se adapta según el rendimiento:

  • Rendimiento excepcional (>10%): “¡Increíble! Las ventas han subido más de un 10%”
  • Buen rendimiento (5-10%): “¡Muy bien! Las ventas siguen creciendo”
  • Rendimiento positivo (0-5%): “¡Buen trabajo! Las ventas han mejorado ligeramente”
  • Rendimiento negativo (<0%): “Las ventas han bajado, pero hay margen de mejora”

Valor añadido: Crea un entorno positivo y motivador para el equipo, convirtiendo datos fríos en mensajes inspiradores.


Casos de Uso

Caso 1: Cadena de Restaurantes Multi-Sede

Escenario: Una cadena con 5 restaurantes quiere monitorizar el rendimiento diario de cada local.

Solución con Informes Diarios:

  1. Cada gerente de local recibe el email diario con los datos de su restaurante
  2. El director general tiene acceso al panel de todos los sitios
  3. Se identifican rápidamente locales con bajo rendimiento
  4. Se comparan ventas entre locales para detectar best practices
  5. Se analiza qué artículos funcionan mejor en cada ubicación

Resultado: Mejora de coordinación entre locales, identificación rápida de problemas y optimización de menús según preferencias locales.


Caso 2: Tienda Retail con Múltiples Empleados

Escenario: Una tienda de electrónica con 8 vendedores quiere mejorar el rendimiento del equipo.

Solución con Informes Diarios:

  1. Se implementa el ranking de empleados visible en el dashboard
  2. El gerente consulta diariamente quién está liderando ventas
  3. Se establece un sistema de bonificaciones basado en el ranking
  4. Los empleados con bajo rendimiento reciben formación personalizada
  5. Se analiza qué empleados venden mejor ciertos productos

Resultado: Aumento de motivación del equipo, competición sana, incremento del 15% en ventas y mejor distribución de funciones según fortalezas.


Caso 3: Bar con Servicio de Terraza y Barra

Escenario: Un bar quiere optimizar la distribución de personal entre terraza y barra según la demanda.

Solución con Informes Diarios:

  1. Se configura cada terminal (terraza, barra interior) como terminal independiente
  2. Se consulta el widget de “Ventas por Terminal” diariamente
  3. Se analiza el gráfico de “Ventas por Hora” para identificar picos
  4. Se ajusta la asignación de personal según los datos históricos
  5. Se detecta que la terraza tiene más actividad después de las 20:00

Resultado: Optimización de recursos humanos, reducción de tiempos de espera en terraza, mejora de la experiencia del cliente y aumento de propinas.


Caso 4: Restaurante con Campaña de Marketing

Escenario: Un restaurante lanza una campaña de descuento en familia de “Postres” durante una semana.

Solución con Informes Diarios:

  1. Se activa la campaña el lunes
  2. Cada día se consulta el widget de “Ventas por Familia”
  3. Se compara la familia “Postres” con la semana anterior
  4. Se detecta un incremento del 40% en ventas de postres
  5. El email diario permite compartir el éxito con el equipo

Resultado: Medición precisa del ROI de la campaña, motivación del equipo al ver resultados inmediatos y decisión de extender la campaña 3 días más.


Segmentación de Mercado

¿A Quién Va Dirigido?

Sector Hostelería

  • ✅ Restaurantes
  • ✅ Bares y cafeterías
  • ✅ Hoteles con restaurante
  • ✅ Catering y eventos
  • ✅ Franquicias de comida rápida

Sector Retail

  • ✅ Tiendas de moda
  • ✅ Electrónica y tecnología
  • ✅ Farmacias
  • ✅ Supermercados y alimentación
  • ✅ Tiendas especializadas

Servicios

  • ✅ Centros de estética y peluquerías
  • ✅ Gimnasios y centros deportivos
  • ✅ Clínicas privadas
  • ✅ Talleres y servicios técnicos

Argumentario Comercial para Ventas

Puntos Fuertes (USPs)

  1. “Datos en tu email cada mañana, antes de abrir el negocio”

    • No necesitas perder tiempo consultando sistemas
    • Recibes un PDF completo con todo lo que necesitas saber
  2. “Identifica problemas antes de que sea tarde”

    • Las comparativas automáticas te alertan de caídas de ventas
    • Los badges rojos indican métricas que requieren atención
  3. “Motiva a tu equipo con rankings transparentes”

    • Reconoce a los mejores empleados del día
    • Crea competiciones sanas que impulsan las ventas
  4. “Optimiza recursos según datos reales, no intuición”

    • Gráfico de ventas por hora muestra cuándo necesitas más personal
    • Ventas por terminal te ayudan a distribuir mejor tu equipo
  5. “Accesible desde móvil, tablet u ordenador”

    • Dashboard responsive que se adapta a cualquier dispositivo
    • Consulta tus datos desde casa o desde el propio local

Respuesta a Objeciones Comunes

Objeción: “Ya tengo informes en mi TPV” Respuesta: “Nuestros informes diarios van más allá: incluyen comparativas automáticas, se envían por email sin que tengas que hacer nada, y consolidan datos de múltiples terminales en un único dashboard visual.”

Objeción: “Mis empleados no son muy tecnológicos” Respuesta: “El dashboard es tan visual que no requiere formación: badges de colores indican si algo va bien (verde) o mal (rojo), y los gráficos son autoexplicativos. Además, el email PDF lo reciben automáticamente.”

Objeción: “No tengo tiempo para analizar datos cada día” Respuesta: “Por eso el email diario es tan valioso: en 2 minutos de lectura del PDF adjunto tienes una foto completa del negocio. El sistema hace el análisis por ti con las comparativas automáticas.”

Objeción: “¿Es seguro? No quiero que cualquiera vea mis ventas” Respuesta: “El sistema tiene control de permisos por usuario y por sitio. Solo las personas que tú autorices podrán acceder, y cada usuario solo ve los datos de los sitios asignados.”


Diferenciación con la Competencia

Ventajas vs Otros Sistemas de Reporting

Característica Miglop.es Informes Diarios Competencia Típica
Email automático diario ✅ Incluido ❌ Requiere subscripción adicional
Comparativas automáticas ✅ Día anterior ⚠️ Manual o sin comparativas
Gamificación ✅ Mensajes motivacionales ❌ Datos fríos
Rankings de empleados ✅ Con fotos y posiciones ⚠️ Solo listados
Multi-sitio ✅ Consolidado en un panel ❌ Requiere múltiples logins
Responsive mobile ✅ Adaptativo completo ⚠️ Solo desktop
Permisos granulares ✅ Por usuario y sitio ⚠️ Permisos básicos
Gráficos interactivos ✅ ApexCharts avanzados ⚠️ Gráficos estáticos

Contacto y Soporte

Para consultas comerciales:

  • Email: comercial@miglop.es
  • Web: https://www.miglop.es
  • Teléfono: +34 XXX XXX XXX

© 2025 Miglop.es – Todos los derechos reservados

Manual usuario Glop <> Datáfono HONEI

El datáfono HONEI es un nuevo datáfono integrado con Glop, en este dispositivos tendremos las opciones de pago en barra, y la instalación en el dispositivo de GlopDroid desde donde también se podrán lanzar pagos.

Hay que tener en cuenta que en estos momentos HONEI no permite las devoluciones integradas, por lo que habrá que hacerlas de forma manual en el datáfono y luego realizarlas en Glop.

IMPORTANTE

Para el correcto funcionamiento de pagos en mesa del datáfono, hay que seguir el siguiente manual ya que HONEI trabaja bajo el flujo de pedidos en mesa (enlace al manual)

Requisitos

¿Requiere licencia de módulo?Si, requiere el módulo PEDIDOS MESA
¿Qué tipo de licencia usa la integración?GL y GB

Requiere el módulo pedidos mesa ya que Honei trabaja con el sistema completo, pedidos en mesa, pagos QR y datáfono.

CONFIGURACIÓN EN GLOP

1- Activar e introducir credenciales

Para activar el datáfono HONEI en Glop tendremos que acceder a configuración – terminales/multitienda – periféricos – pasarelas de pago – HONEI.

Aquí activaremos HONEI e introduciremos la apikey y id del terminal proporcionado por HONEI.

2- Configurar Forma de Pago

En configuración – formas de pago, la forma de pago que queramos utilizar tendrá que tener el check activo de HONEI en sus parámetros.

FUNCIONAMIENTO EN GLOP

CONFIGURACIÓN EN GLOPDROID

Activaremos HONEI y también activaremos la forma de pago configurada previamente en Glop.

FUNCIONAMIENTO EN GLOPDROID

Documentación Odoo App Backend

Resumen Ejecutivo

Se ha implementado una integración completa entre el sistema Miglop.es y Odoo para la gestión automatizada de facturas. Esta integración permite:

  • Creación automática de facturas en Odoo cuando se procesan pagos en Stripe
  • Sincronización de datos entre ambos sistemas
  • Descarga de facturas PDF directamente desde Odoo
  • Priorización de facturas de Odoo sobre las de Stripe en la interfaz de usuario

Arquitectura de la Integración

1. Librería Principal: app/Api/Odoo/

OdooClient (app/Api/Odoo/OdooClient.php)

Cliente principal que maneja la conexión con Odoo mediante XML-RPC y HTTP.

Características principales:

  • Autenticación dual (XML-RPC y HTTP con cookies)
  • Gestión de sesiones y cookies
  • Métodos para ejecutar operaciones en Odoo
  • Manejo de errores y excepciones

Métodos clave:

  • authenticate(): Autenticación XML-RPC
  • authenticateWithHttp(): Autenticación HTTP con cookies
  • execute(): Ejecutar operaciones en Odoo
  • getInvoicesByEmail(): Obtener facturas por email del cliente
  • downloadInvoicePdf(): Descargar PDF de facturas

Servicios Especializados

InvoiceService (app/Api/Odoo/Services/InvoiceService.php)

  • Gestión completa de facturas en Odoo
  • Creación, actualización, consulta y eliminación
  • Generación de PDFs
  • Integración con datos de Stripe

PartnerService (app/Api/Odoo/Services/PartnerService.php)

  • Gestión de clientes/proveedores
  • Búsqueda por email, CIF, nombre
  • Creación automática de clientes

ProductService (app/Api/Odoo/Services/ProductService.php)

  • Gestión de productos
  • Búsqueda y creación automática
  • Mapeo con productos de Stripe

Modelo de Datos

Invoice (app/Api/Odoo/Models/Invoice.php)

  • Modelo auxiliar para construir facturas
  • Métodos fluidos para configuración
  • Soporte para diferentes tipos de factura

2. Configuración

Archivo de Configuración (config/odoo.php)

return [
    'odoo_url'         => env('ODOO_URL'),
    'odoo_database'    => env('ODOO_DATABASE'),
    'odoo_username'    => env('ODOO_USERNAME'),
    'odoo_apikey'      => env('ODOO_APIKEY'),
    'odoo_apipassword' => env('ODOO_APIPASSWORD'),
    'odoo_id_tax'      => 51
];

Variables de entorno requeridas:

  • ODOO_URL: URL de la instancia Odoo
  • ODOO_DATABASE: Nombre de la base de datos
  • ODOO_USERNAME: Email del usuario
  • ODOO_APIKEY: Clave API del usuario
  • ODOO_APIPASSWORD: Contraseña del usuario

Funcionalidades Implementadas

1. Creación Automática de Facturas

Webhook de Stripe (StripeWebhookController::handlePushInvoiceToOdoo)

Flujo de trabajo:

  1. Trigger: Se ejecuta cuando Stripe procesa un pago exitoso
  2. Validación: Verifica que el sitio tenga un pagador con datos fiscales
  3. Gestión de Cliente: Busca o crea el cliente en Odoo usando el CIF
  4. Creación de Factura: Convierte los datos de Stripe a formato Odoo
  5. Publicación: La factura se crea y publica automáticamente

Datos procesados:

  • Información del cliente (CIF, nombre, dirección)
  • Detalles de la factura (fecha, importe, moneda)
  • Líneas de factura (productos, cantidades, precios)
  • Impuestos aplicables

Logging completo para auditoría y debugging.

2. Consulta de Facturas

Endpoint: getInvoicesByPagador

Funcionalidad:

  • Obtiene facturas tanto de Stripe como de Odoo
  • Prioriza las facturas de Odoo sobre las de Stripe
  • Filtra facturas duplicadas (las de Odoo tienen prioridad)
  • Genera enlaces de descarga para PDFs de Odoo

Lógica de priorización:

// Filtrar facturas de Stripe que ya existen en Odoo
$invoices = $invoices->whereNotIn('id', $odoo_invoices->pluck('stripe_id')->filter());
// Combinar ambas fuentes, priorizando Odoo
$invoices = $invoices->merge($odoo_invoices);

3. Descarga de Facturas PDF

Endpoint: /api/v1/glop/sitios/invoices/odoo/{id}

Funcionalidad:

  • Descarga directa de PDFs desde Odoo
  • Autenticación HTTP con cookies
  • Headers apropiados para descarga de archivos
  • Manejo de errores robusto

Implementación:

public function getInvoicesOdooPdf($invoiceid, OdooClient $odoo_client) {
    $contentPdf = $odoo_client->downloadInvoicePdf($invoiceid, false);
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="invoice_' . $invoiceid . '.pdf"');
    header('Content-Length: ' . strlen($contentPdf));
    echo $contentPdf;
    exit();
}

Flujo de Datos

1. Proceso de Creación de Factura

2. Proceso de Consulta de Facturas

Características Técnicas

1. Autenticación Dual

  • XML-RPC: Para operaciones de datos
  • HTTP con cookies: Para descarga de PDFs

2. Manejo de Errores

  • Logging detallado en canal ‘dev’
  • Excepciones específicas para cada tipo de error
  • Rollback automático en caso de fallos

3. Codificación de Caracteres

  • Conversión UTF-8 a ISO-8859-1 para compatibilidad
  • Manejo correcto de caracteres especiales

4. Mapeo de Datos

  • Conversión automática de formatos Stripe a Odoo
  • Preservación de referencias entre sistemas
  • Gestión de impuestos y monedas

Endpoints de la API

1. Consulta de Facturas

  • URL: GET /api/v1/glop/sitios/invoices
  • Parámetros: start_date, end_date, descargar, tipo
  • Funcionalidad: Obtiene facturas combinadas de Stripe y Odoo

2. Descarga de PDF

  • URL: GET /api/v1/glop/sitios/invoices/odoo/{id}
  • Funcionalidad: Descarga PDF de factura específica de Odoo

Configuración Requerida

1. Variables de Entorno

ODOO_URL=https://tu-instancia.odoo.com
ODOO_DATABASE=tu_base_datos
ODOO_USERNAME=tu_email@empresa.com
ODOO_APIKEY=tu_api_key
ODOO_APIPASSWORD=tu_password

2. Permisos en Odoo

  • Acceso a módulo de facturación
  • Permisos de lectura/escritura en account.move
  • Permisos de lectura/escritura en res.partner
  • Permisos de lectura/escritura en product.product

3. Configuración de Impuestos

  • ID del impuesto configurado en config/odoo.php
  • Impuestos activos en Odoo para el tipo de factura

Beneficios de la Integración

1. Automatización

  • Eliminación de procesos manuales de facturación
  • Sincronización automática entre sistemas
  • Reducción de errores humanos

2. Consistencia de Datos

  • Una sola fuente de verdad para facturas
  • Sincronización en tiempo real
  • Historial completo de transacciones

3. Mejora de la Experiencia de Usuario

  • Acceso unificado a todas las facturas
  • Descarga directa de PDFs
  • Interfaz simplificada

4. Cumplimiento Fiscal

  • Facturas oficiales generadas en Odoo
  • Cumplimiento de normativas españolas
  • Trazabilidad completa

No mostrar facturas en portal cliente Stripe

Desactivar Odoo

  1. Para desactivar odoo: comentar la función StripeWebhookController::handlePushInvoiceToOdoo
  2. Desactivar la búsqueda de Odoo
Volver arriba

Acceder a WikiGlop