Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
Categoría: Programación
App Glop – Despliegue de la Aplicación
Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
App Glop – Patrones de Componentes Vue 3
Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
App Glop – Comunicación con la API REST
Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
App Glop – Librerías y Dependencias
Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
App Glop – Estructura detallada del proyecto
Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
App Glop – Resumen del proyecto
Este contenido esta restringido para usuarios registrados y con un perfil específico. Si dispone de uno, pulsa en "acceder" para poder verlo.
 
Acceder
Documentación App Frontend
Bienvenido a la documentación completa del proyecto Miglop.es V2 Frontend.
📚 Índice de Documentación
Para Empezar
-
- Resumen general del proyecto
- Stack tecnológico
- Arquitectura básica
- Variables de entorno
- Scripts disponibles
- 👉 EMPIEZA AQUÍ
-
- Guía completa para nuevos desarrolladores
- Setup del entorno
- Primera tarea
- Workflow de Git
- 👉 LEE ESTO SI ERES NUEVO EN EL PROYECTO
Arquitectura y Estructura
-
- Estructura de carpetas detallada
- Organización de componentes
- Layouts y vistas
- Stores y servicios
- Convenciones de nomenclatura
-
- Patrones de componentes Vue 3
- Composition API
- Props y Events
- Composables
- DevExtreme y Element Plus
- Mejores prácticas
Tecnologías y Herramientas
-
02-LIBRARIES-AND-DEPENDENCIES.md
- Todas las librerías usadas
- Configuración de cada librería
- Versiones y actualizaciones
- Gestión de dependencias
-
- ApiService
- JwtService
- Cómo hacer llamadas a la API
- Manejo de errores
- Ejemplos de uso
- Abort Controllers
Operaciones y Mantenimiento
-
- Estrategia de despliegue
- Entornos (develop, staging, production)
- Scripts de build
- CI/CD
- Configuración de servidores
- Troubleshooting
-
09-UNUSED-COMPONENTS-ANALYSIS.md
- Análisis de componentes no utilizados
- Recomendaciones de limpieza
- Proceso de eliminación segura
- ⚠️ REVISAR ANTES DE ELIMINAR COMPONENTES
🎯 Guías por Rol
Para Nuevos Desarrolladores
Lectura recomendada en orden:
- 00-PROJECT-OVERVIEW.md – 30 min
- 08-ONBOARDING-GUIDE.md – 1 hora
- 01-PROJECT-STRUCTURE.md – 1 hora
- 04-COMPONENT-PATTERNS.md – 1 hora
- 03-API-COMMUNICATION.md – 30 min
Total: ~4 horas de lectura
Para Desarrolladores Existentes
Para añadir nuevas features:
Para debugging:
- 03-API-COMMUNICATION.md – Sección Troubleshooting
- 07-DEPLOYMENT.md – Sección Troubleshooting
Para deploys:
Para Tech Leads
Para revisión de arquitectura:
Para limpieza de código:
Para onboarding de equipo:
Para DevOps
Para configuración de CI/CD:
- 07-DEPLOYMENT.md
- 00-PROJECT-OVERVIEW.md – Scripts
🔍 Búsqueda Rápida
¿Cómo hacer…?
| Pregunta | Documento | Sección |
|---|---|---|
| ¿Cómo crear un componente? | 04-COMPONENT-PATTERNS.md | Estructura de Componentes |
| ¿Cómo llamar a la API? | 03-API-COMMUNICATION.md | ApiService |
| ¿Cómo usar un store? | 04-COMPONENT-PATTERNS.md | Composables |
| ¿Cómo hacer deploy? | 07-DEPLOYMENT.md | Proceso de Despliegue |
| ¿Qué librerías usar para X? | 02-LIBRARIES-AND-DEPENDENCIES.md | Por categoría |
| ¿Dónde está el componente Y? | 01-PROJECT-STRUCTURE.md | Carpeta src/components |
| ¿Cómo configurar el entorno? | 08-ONBOARDING-GUIDE.md | Configuración Inicial |
¿Qué es…?
| Concepto | Documento | Sección |
|---|---|---|
| ApiService | 03-API-COMMUNICATION.md | ApiService |
| Pinia Stores | 04-COMPONENT-PATTERNS.md | Composables |
| DevExtreme | 02-LIBRARIES-AND-DEPENDENCIES.md | UI Component Libraries |
| Router Guards | 01-PROJECT-STRUCTURE.md | src/router |
| Build Scripts | 00-PROJECT-OVERVIEW.md | Scripts Disponibles |
📊 Estado de la Documentación
| Documento | Estado | Última Actualización |
|---|---|---|
| 00-PROJECT-OVERVIEW.md | ✅ Completo | 20/10/2025 |
| 01-PROJECT-STRUCTURE.md | ✅ Completo | 20/10/2025 |
| 02-LIBRARIES-AND-DEPENDENCIES.md | ✅ Completo | 20/10/2025 |
| 03-API-COMMUNICATION.md | ✅ Completo | 20/10/2025 |
| 04-COMPONENT-PATTERNS.md | ✅ Completo | 20/10/2025 |
| 07-DEPLOYMENT.md | ✅ Completo | 20/10/2025 |
| 08-ONBOARDING-GUIDE.md | ✅ Completo | 20/10/2025 |
| 09-UNUSED-COMPONENTS-ANALYSIS.md | ✅ Completo | 20/10/2025 |
🤝 Contribuir a la Documentación
Esta documentación es un documento vivo. Si encuentras:
- Información desactualizada
- Errores o inexactitudes
- Secciones que faltan
- Oportunidades de mejora
Por favor, actualiza la documentación:
- Edita el archivo markdown correspondiente
- Haz commit con mensaje descriptivo:
docs: actualizar [sección] - Crea Pull Request
📧 Contacto
Para preguntas sobre la documentación o el proyecto:
- Tech Lead: [Nombre/Email]
- Maintainer de Docs: [Nombre/Email]
- Canal de Slack/Teams: #frontend-dev
Generado: 20/10/2025 Versión: 1.0.0 Proyecto: Miglop.es V2 Frontend Stack: Vue 3 + TypeScript + Vite
Configuración Comeback
Configuración
Pasos a seguir:
Activaremos Comeback desde configuración-terminales-modulos-api-fidelización-comeback
Lo activaremos, introduciremos las credenciales de acceso, y podremos elegir entre que nos muestre o no la pantalla de asignación fidelización directamente al cobrar una mesa desde el TPV. En caso de no activar esta configuración, para mostrar la pantalla de asignación de fidelización, deberemos hacer clic sobre el botón de fidelización en la pantalla de cobro.

Tras esto, al realizar una venta, nos solicitará el código de fidelización del cliente, bien sea automáticamente si hemos activado el parámetro o bien al pulsar sobre el botón fidelización.

A TENER EN CUENTA
Para imprimir en el ticket el código QR para su escaneo con diferente información sobre el ticket y la api-key de comeback, se debe seguir el siguiente manual: https://soporte.glop.es/manual-activar-qr-informacion-en-ticket/
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-RPCauthenticateWithHttp(): Autenticación HTTP con cookiesexecute(): Ejecutar operaciones en OdoogetInvoicesByEmail(): Obtener facturas por email del clientedownloadInvoicePdf(): 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 OdooODOO_DATABASE: Nombre de la base de datosODOO_USERNAME: Email del usuarioODOO_APIKEY: Clave API del usuarioODOO_APIPASSWORD: Contraseña del usuario
Funcionalidades Implementadas
1. Creación Automática de Facturas
Webhook de Stripe (StripeWebhookController::handlePushInvoiceToOdoo)
Flujo de trabajo:
- Trigger: Se ejecuta cuando Stripe procesa un pago exitoso
- Validación: Verifica que el sitio tenga un pagador con datos fiscales
- Gestión de Cliente: Busca o crea el cliente en Odoo usando el CIF
- Creación de Factura: Convierte los datos de Stripe a formato Odoo
- 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
- Para desactivar odoo: comentar la función
StripeWebhookController::handlePushInvoiceToOdoo - Desactivar la búsqueda de Odoo
