📘 Manual de Usuario Definitivo & Enciclopedia Operativa — Dulet Back Office & Duletia Ops
Versión: 5.0 (Manual Maestro Completo — Todos los Módulos)
Fecha de Publicación: Septiembre 2026
Audiencia: Administradores Master, Dirección General, Administradores, Operadores de Centros de Apoyo (CEDIS), Contabilidad, Almacén, Producción, Líderes y Socios Empresarios
Ecosistema: Dulet International Group (México) & Dulet Group LLC (USA)
Clasificación: Confidencial — Guía Oficial de Operación del Sistema
📑 Directorio General de Zonas y Módulos
- [Arquitectura del Sistema & Matriz de Seguridad de 7 Roles](#1-arquitectura-del-sistema--matriz-de-seguridad-de-7-roles)
- [Módulo 1: Dashboard Master — Panorama General](#2-módulo-1-dashboard-master--panorama-general)
- [Módulo 2: Mi Visión Empresario — Dashboard del Socio](#3-módulo-2-mi-visión-empresario--dashboard-del-socio)
- [Módulo 3: Mi Perfil y Seguridad](#4-módulo-3-mi-perfil-y-seguridad)
- [Módulo 4: Directorio de Líderes y Socios](#5-módulo-4-directorio-de-líderes-y-socios)
- [Módulo 5: Árbol de Red & Genealogía Dinámica](#6-módulo-5-árbol-de-red--genealogía-dinámica)
- [Módulo 6: Radiografía 360° & Análisis de Líder](#7-módulo-6-radiografía-360--análisis-de-líder)
- [Módulo 7: Módulo de Rescate y Alertas de Seguimiento](#8-módulo-7-módulo-de-rescate-y-alertas-de-seguimiento)
- [Módulo 8: Ventas, Caja y Registro de Pedidos](#9-módulo-8-ventas-caja-y-registro-de-pedidos)
- [Módulo 9: Calificaciones Mensuales y Pagos Adquiridos](#10-módulo-9-calificaciones-mensuales-y-pagos-adquiridos)
- [Módulo 10: Catálogo Maestro de Productos y Precios](#11-módulo-10-catálogo-maestro-de-productos-y-precios)
- [Módulo 11: Inventario General de Producto Terminado](#12-módulo-11-inventario-general-de-producto-terminado)
- [Módulo 12: Reportes de Movimientos y Kárdex](#13-módulo-12-reportes-de-movimientos-y-kárdex)
- [Módulo 13: Red de Centros de Apoyo Físicos (CEDIS 1 al 15)](#14-módulo-13-red-de-centros-de-apoyo-físicos-cedis-1-al-15)
- [Módulo 14: Centro Especial Virtual "Por Asignar" (#230) & Cola Multi-Caja](#15-módulo-14-centro-especial-virtual-por-asignar-230--cola-multi-caja)
- [Módulo 15: Facturación SAT CFDI 4.0 & Facturama](#16-módulo-15-facturación-sat-cfdi-40--facturama)
- [Módulo 16: Asistente de Sustitución en 2 Pasos & Cancelación Fiscal](#17-módulo-16-asistente-de-sustitución-en-2-pasos--cancelación-fiscal)
- [Módulo 17: Control de Activos & Monedero FIFO](#18-módulo-17-control-de-activos--monedero-fifo)
- [Módulo 18: Producción Industrial & Fabricación de Lotes](#19-módulo-18-producción-industrial--fabricación-de-lotes)
- [Módulo 19: Materias Primas, Insumos y Empaque](#20-módulo-19-materias-primas-insumos-y-empaque)
- [Módulo 20: Estructura de Costos Industriales & Rendimientos](#21-módulo-20-estructura-de-costos-industriales--rendimientos)
- [Módulo 21: Directorio de Proveedores](#22-módulo-21-directorio-de-proveedores)
- [Módulo 22: Módulo Intercompañía (México - USA)](#23-módulo-22-módulo-intercompañía-méxico---usa)
- [Módulo 23: Facturación y Pedidos USA (Dulet Group LLC)](#24-módulo-23-facturación-y-pedidos-usa-dulet-group-llc)
- [Módulo 24: Conciliador Bancario Automatizado 9-en-1](#25-módulo-24-conciliador-bancario-automatizado-9-en-1)
- [Módulo 25: Academia Dulet & Cuadernos de Trabajo (1 al 4)](#26-módulo-25-academia-dulet--cuadernos-de-trabajo-1-al-4)
- [Módulo 26: Academia Admin & Seguimiento Formativo](#27-módulo-26-academia-admin--seguimiento-formativo)
- [Módulo 27: Auditoría de Premios & Galardones LED](#28-módulo-27-auditoría-de-premios--galardones-led)
- [Módulo 28: Acelerador de Metas Empresariales](#29-módulo-28-acelerador-de-metas-empresariales)
- [Módulo 29: Centro de Notificaciones, Noticias y Calendario](#30-módulo-29-centro-de-notificaciones-noticias-y-calendario)
- [Módulo 30: Bitácora de Auditoría del Sistema & Seguridad](#31-módulo-30-bitácora-de-auditoría-del-sistema--seguridad)
- [Módulo 31: Configuración Global del Sistema](#32-módulo-31-configuración-global-del-sistema)
- [Portal Duletia Master Ops (/pages/ops)](#33-portal-duletia-master-ops-pagesops)
- [Compendio de Preguntas Frecuentes & Solución de Casos Extremos](#34-compendio-de-preguntas-frecuentes--solución-de-casos-extremos)
1. Arquitectura del Sistema & Matriz de Seguridad de 7 Roles
El ecosistema de Duletia opera como una Single Page Application (SPA) modular de alto rendimiento conectada a una base de datos centralizada PostgreSQL y orquestada por flujos de n8n.
Matriz de Seguridad y Privilegios por Rol
| Módulo / Zona |
Master |
Admin |
Operativo |
Almacén |
Contabilidad |
Empresario |
Prospecto |
| Dashboard Master |
✅ |
✅ |
— |
— |
— |
— |
— |
| Mi Visión Empresario |
— |
— |
— |
— |
— |
✅ |
✅ |
| Líderes & Árbol de Red |
✅ |
✅ |
— |
— |
— |
✅ (Red Propia) |
— |
| Análisis de Líder |
✅ |
✅ |
— |
— |
— |
✅ (Personal) |
— |
| Módulo de Rescate |
✅ |
✅ |
— |
— |
— |
— |
— |
| Ventas & Pedidos |
✅ |
✅ |
✅ |
— |
✅ |
✅ (Compras) |
— |
| CEDIS 1 al 15 |
✅ |
✅ |
✅ |
— |
✅ |
— |
— |
| Cola de Activaciones (#230) |
✅ |
✅ |
✅ |
— |
— |
— |
— |
| Facturación SAT CFDI 4.0 |
✅ |
✅ |
— |
— |
✅ |
✅ (Descarga) |
— |
| Monedero de Activos FIFO |
✅ |
✅ |
— |
— |
✅ |
✅ (Saldo) |
— |
| Inventario & Kárdex |
✅ |
✅ |
✅ |
✅ |
✅ |
— |
— |
| Producción Industrial |
✅ |
✅ |
— |
✅ |
— |
— |
— |
| Materias Primas & Costos |
✅ |
✅ |
— |
✅ |
✅ |
— |
— |
| Conciliador Bancario 9-en-1 |
✅ |
✅ |
— |
— |
✅ |
— |
— |
| Intercompañía & USA |
✅ |
✅ |
— |
— |
✅ |
— |
— |
| Academia & Premios LED |
✅ |
✅ |
— |
— |
— |
✅ |
✅ |
| Bitácora & Configuración |
✅ |
— |
— |
— |
— |
— |
— |
| Portal Master Ops (/pages/ops) |
✅ |
✅ |
— |
— |
— |
— |
— |
2. Módulo 1: Dashboard Master — Panorama General
Ruta en Menú: #view-dashboard
Roles Autorizados: Master, Admin.
Propósito: Proporcionar la radiografía macroeconómica y operativa de toda la empresa en tiempo real para cualquier período fiscal.
📊 Componentes y KPIs
- Ventas Totales del Período: Suma monetaria de todas las notas de venta con
approved = 1.
- Cajas Pendientes en Cola (#230): Inventario de cajas pagadas en tránsito sin asignar a líder final.
- Activos en Circulación: Monto total acumulado en las billeteras de los socios pendiente de consumo.
- Saldo Deudor CEDIS: Capital total de producto entregado en consignación a los 15 Centros de Apoyo.
- Gráfica de Ingresos Diarios: Tendencia de facturación día a día del mes seleccionado.
- Top 10 Centros de Apoyo: Ranking de CEDIS por volumen de desplazamiento.
- Top 10 Líderes Productores: Ranking de líderes por volumen personal y grupal de red.
🔘 Fichas de Botones y Modales
Selector de Período (Mes/Año): Recalcula dinámicamente todos los KPIs y tablas en memoria.
↻ Actualizar: Invalida la caché local y vuelve a consultar la base de datos PostgreSQL.
📥 Exportar Resumen (CSV): Descarga un archivo con el desglose contable del mes.
3. Módulo 2: Mi Visión Empresario — Dashboard del Socio
Ruta en Menú: #view-dashboard-lider
Roles Autorizados: Empresario, Prospecto.
Propósito: Panel personalizado para que cada socio distribuidor supervise su negocio, comisiones, avance de rango y calificación.
📊 Componentes y Métricas
- Semáforo de Calificación: 🟢 Calificado (Compró $\ge 1$ caja este mes) / 🔴 Inactivo (Sin calificación mensual).
- Billetera de Activos: Saldo disponible para pagar compras futuras o solicitar liquidación.
- Rango LED Actual: Distintivo del rango alcanzado (Bronce, Plata, Oro, Zafiro, Esmeralda, Rubí, Diamante, etc.).
- Termómetro de Progreso de Rango: Muestra las cajas que faltan en el mes para subir al siguiente nivel.
- Volumen Personal: Cajas compradas directamente con su número de registro.
- Volumen de Grupo (4 Niveles): Cajas producidas por su organización por nivel de profundidad.
4. Módulo 3: Mi Perfil y Seguridad
Ruta en Menú: #view-mi-perfil
Roles Autorizados: Todos los usuarios autenticados.
Propósito: Administración de información personal, datos de contacto, domicilio de envío y credenciales.
🔘 Fichas de Botones
💾 Guardar Cambios: Actualiza teléfono, WhatsApp, correo electrónico y dirección en la tabla cliente.
🔑 Cambiar Contraseña: Solicita contraseña actual y nueva contraseña, cifrándola mediante bcrypt.
📄 Ver Constancia Fiscal: Permite al socio verificar su RFC, Razón Social y Régimen Fiscal registrado para facturación.
5. Módulo 4: Directorio de Líderes y Socios
Ruta en Menú: #view-lideres
Roles Autorizados: Master, Admin, Empresario (solo descendencia).
Propósito: Base de datos centralizada de distribuidores, prospectos y clientes con herramientas de prospección y gestión.
🔘 Fichas de Botones y Modales
➕ Nuevo Socio: Abre el modal de alta de distribuidores:
- Solicita: Nombre, Apellidos, Registro, Teléfono, Email, Patrocinador y Dirección.
- Valida que el número de registro no esté duplicado en PostgreSQL.
Buscador en Tiempo Real: Filtra por Registro (ej. 80000), Nombre, Teléfono o Estado.
👁️ Ver Detalle / Radiografía: Abre el perfil 360° del líder seleccionado.
✏️ Editar Socio: Permite actualizar datos fiscales (RFC, CP, Régimen) y datos de contacto.
⚡ Acreditar Bono Manual: Modal para inyectar activos al socio con captura de concepto y folio de soporte.
🌳 Ver en Árbol: Salta directamente a la vista de genealogía centrada en ese socio.
6. Módulo 5: Árbol de Red & Genealogía Dinámica
Ruta en Menú: #view-arbol
Roles Autorizados: Master, Admin, Empresario (solo su propia red).
Propósito: Visualizador gráfico interactivo de la estructura multinivel de patrocinio.
🎮 Controles y Navegación
- Navegación Interactiva: Arrastrar para mover el lienzo, rueda del ratón para zoom (+ / -).
- Código Visual de Nodos:
- 🟢 Verde: Socio calificado en el mes actual ($\ge 1$ caja).
- 🟡 Amarillo: Nuevo distribuidor inscrito en los últimos 30 días.
- 🔴 Rojo: Socio inactivo (sin compra este mes).
- Clic en Nodo:
- Despliega la tarjeta flotante con: Total de frontales, Cajas en N1, N2, N3, N4, Volumen Grupal y Teléfono.
- Botón
Expandir Hijos / Colapsar Línea.
7. Módulo 6: Radiografía 360° & Análisis de Líder
Ruta en Menú: #view-analisis-lider
Roles Autorizados: Master, Admin.
Propósito: Diagnóstico profundo del rendimiento de un socio en particular para sesiones de coaching empresarial.
📊 Datos Analizados
- Historial de Calificación (12 Meses): Registro mes a mes de cumplimiento de compras.
- Balance de Piernas (Frontales Fuertes vs Débiles): Detecta qué líneas de la red aportan el mayor volumen y cuáles requieren soporte.
- Cumplimiento de Galardones LED: Auditoría de requisitos de frontales calificados y volumen de puntos para el próximo pin.
8. Módulo 7: Módulo de Rescate y Alertas de Seguimiento
Ruta en Menú: #view-rescate
Roles Autorizados: Master, Admin.
Propósito: Algoritmo predictivo de retención que identifica líderes con riesgo de inactividad antes del cierre de mes.
🔘 Fichas de Botones
Filtro de Días Restantes de Mes: Muestra quiénes calificaron los meses anteriores pero aún no compran este mes.
📲 Enviar WhatsApp de Rescate: Abre WhatsApp Web con mensaje personalizado indicando las comisiones que perdería si no califica su caja.
9. Módulo 8: Ventas, Caja y Registro de Pedidos
Ruta en Menú: #view-ventas
Roles Autorizados: Master, Admin, Operativo, Contabilidad.
Propósito: Punto de venta, registro de notas de compra, validación de pagos y control de pedidos.
🔘 Fichas de Botones y Modales
➕ Registrar Nueva Venta: Abre el modal de captura de nota de venta:
- Selección de Cliente / Socio (o Público en General).
- Selección de CEDIS / Almacén de despacho.
- Partidas: Dulet (Natural, Chocolate, Fresa, Vainilla) y Eucament con cálculo de precio unitario automático.
- Método de Pago Mixto: Permite capturar monto en Efectivo/Transferencia y monto deducido de Monedero de Activos.
- Subida de comprobante de pago bancario (JPG/PNG/PDF).
✓ Aprobar Venta (approved=1): Valida el ingreso bancario, genera el volumen en red, acredita comisiones y descuenta inventario.
🚫 Cancelar Venta: Revierte el volumen, regresa el inventario y reintegra los activos consumidos.
🧾 Solicitar Factura: Envía la nota a la cola de timbrado fiscal.
10. Módulo 9: Calificaciones Mensuales y Pagos Adquiridos
Ruta en Menú: Integrado en #view-ventas y #view-centros-apoyo.
Propósito: Gestión de las calificaciones de 1 caja requeridas para el cobro del plan Evolution Link.
⚙️ Reglas Operativas
- Toda compra de 1 caja de Dulet por un socio registrado genera una calificación automática.
- Las compras pagadas por depósito bancario con concepto "Por Asignar" se transfieren a la Cola de Activaciones (#230) para su asignación manual.
11. Módulo 10: Catálogo Maestro de Productos y Precios
Ruta en Menú: #view-productos
Roles Autorizados: Master, Admin.
Propósito: Definición de SKUs, precios de lista por país (MXN/USD), puntos comisionables y costos base.
🔘 Fichas de Botones
➕ Nuevo Producto: Agrega un SKU al catálogo con nombre, código de barras, precio público, precio mayoreo y puntos de red.
✏️ Editar Precios: Permite ajustar precios de lista por inflación o promociones.
Interruptor Activo/Inactivo: Habilita o deshabilita la venta del producto en el punto de venta y tienda online.
12. Módulo 11: Inventario General de Producto Terminado
Ruta en Menú: #view-inventario
Roles Autorizados: Master, Admin, Almacén, Operativo.
Propósito: Control de existencias físicas en el Almacén Central de Matriz.
🔘 Fichas de Botones y Modales
➕ Entrada de Almacén: Ingresa producto terminado proveniente de la planta de producción.
➖ Salida por Merma / Daño: Da de baja producto dañado con justificación.
📦 Traspaso a Centro de Apoyo: Descuenta producto de Matriz y lo envía a un CEDIS en consignación.
📊 Auditoría de Existencias: Formulario de conteo físico vs existencias en sistema.
13. Módulo 12: Reportes de Movimientos y Kárdex
Ruta en Menú: #view-reportes-inventario
Roles Autorizados: Master, Admin, Almacén, Contabilidad.
Propósito: Trazabilidad histórica inmutable de cada entrada, salida, venta, traspaso y devolución de producto con fecha y responsable.
14. Módulo 13: Red de Centros de Apoyo Físicos (CEDIS 1 al 15)
Ruta en Menú: #view-centros-apoyo
Roles Autorizados: Master, Admin, Contabilidad, Operativo.
Propósito: Gestión integral de los 15 Centros de Apoyo físicos en la República Mexicana.
🏢 Sub-Pestañas del Detalle de CEDIS
- Notas Vinculadas: Ventas despachadas por este centro.
- Pagos y Liquidaciones: Registro de depósitos bancarios del operador a Matriz para abonar a su saldo deudor.
- Activaciones: Calificaciones procesadas en este CEDIS.
- Inventario Local: Existencias actuales de cajas y piezas en poder del operador.
- Movimientos y Kárdex: Historial de traspasos recibidos y ventas entregadas.
- Facturación del Centro: CFDIs emitidos con el RFC del operador del CEDIS.
- Notas Activadas: Calificaciones derivadas de producto de este centro.
- Rendimiento & Comisiones: Porcentaje de utilidad del operador acumulado en el período.
🔘 Fichas de Botones en Centros de Apoyo
➕ Crear Nuevo Centro: Da de alta un nuevo CEDIS asignándole nombre, operador, líder responsable, dirección y límite de crédito.
📦 Traspaso de Producto: Envía mercancía desde Matriz al CEDIS.
💵 Registrar Pago / Abono: Disminuye el saldo deudor del centro al recibir el depósito bancario.
🔒 Bloquear Centro: Suspende temporalmente la entrega de producto a un CEDIS por mora en pagos.
15. Módulo 14: Centro Especial Virtual "Por Asignar" (#230) & Cola Multi-Caja
Ruta en Menú: #view-centros-apoyo $\rightarrow$ Botón 📦 Cola de Activaciones (#230).
Roles Autorizados: Master, Admin, Operativo.
Propósito: Administrar notas pagadas en tránsito a cuentas bancarias de la empresa y asignar sus activaciones a líderes finales.
┌─────────────────────────────────────────────────────────────────────────┐
│ COLA DE ACTIVACIONES (#230) │
├─────────────────────────────────────────────────────────────────────────┤
│ [ 197 Notas en Tránsito ] [ 200 Cajas Disponibles ] [ 45 Asignadas] │
├─────────────────────────────────────────────────────────────────────────┤
│ Nota Fecha Destino Detectado Total Cajas Acción │
│ ─────────────────────────────────────────────────────────────────────── │
│ a6cff756… 30/08/26 Ruth Hernández M. $9,500.00 0/2 🟢 [⚡Activar (2)] │
│ 4fa0b60a… 30/08/26 Martín Juárez J. $19,000.00 0/4 🟢 [⚡Activar (4)] │
│ f5d01445… 23/08/26 Eduardo Luquín P. $45,000.00 0/10 🟢 [⚡Activar (10)]│
└─────────────────────────────────────────────────────────────────────────┘
🔘 Fichas de Botones y Modales en Cola de Activaciones
⚡ Activar (1): Abre el modal de asignación para notas de 1 sola caja.
⚡ Activar (N) (Asistente Multi-Caja):
- Genera N slots individuales de asignación (
Caja 1 de N, Caja 2 de N...).
- Cada slot cuenta con su propio buscador de líder y selector de fecha.
- Permite asignar cajas a diferentes personas o al mismo socio en meses distintos.
- Permite confirmación parcial (ej. asignar 2 de 4 cajas hoy y dejar 2 pendientes).
- Botón dinámico:
⚡ Confirmar N Activaciones.
✕ Cancelar Activación (En pestaña *Asignadas*):
- Elimina la calificación
calificacion-mes del líder.
- Devuelve automáticamente 1 cupo disponible a la nota de respaldo original.
16. Módulo 15: Facturación SAT CFDI 4.0 & Facturama
Ruta en Menú: #view-facturacion
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Emisión, timbrado, consulta y descarga de comprobantes fiscales digitales por internet bajo el Anexo 20 CFDI 4.0.
📑 Pestañas del Módulo Fiscal
- ⏳ Facturas Pendientes: Solicitudes de clientes pendientes de timbrado con validación de RFC, Régimen, CP y Uso de CFDI.
- ✅ Facturas del Mes: Comprobantes timbrados exitosamente (Individuales, Globales y de Centro).
- 🌐 Factura Global del Mes: Agrupación automática de notas de Público en General por CEDIS y forma de pago con complemento
GlobalInformation.
- ❌ Facturas Canceladas: Historial de cancelaciones con motivo SAT y UUID de sustitución.
🔘 Fichas de Botones
⚡ Facturar: Envía el documento a Facturama y timbra ante el SAT.
📄 PDF: Descarga el formato gráfico con sellos digitales y código bidimensional QR.
📥 XML: Descarga el archivo XML sellado por el PAC.
📋 Ver Notas: Desglosa cada nota de venta incluida en una factura global o de centro con exportación a PDF y CSV.
⚡ Generar Factura Global: Timbra el CFDI 4.0 global del mes con las notas seleccionadas mediante casillas (✓).
17. Módulo 16: Asistente de Sustitución en 2 Pasos & Cancelación Fiscal
Ruta en Menú: #view-facturacion $\rightarrow$ Botones 🔄 Sustituir y ❌ Cancelar.
Propósito: Cumplir estrictamente con las reglas de cancelación del SAT evitando multas y discrepancias fiscales.
graph TD
A["Factura Original con Error (UUID-1)"] --> B["Clic en 🔄 Sustituir"]
B --> C["Modal: Corregir Datos Fiscales (RFC, CP, Régimen, Forma Pago)"]
C --> D["Paso 1 SAT: Emitir Nueva Factura con Tipo de Relación 04 apuntando a UUID-1"]
D --> E["PAC / SAT Timbra Nueva Factura (UUID-2)"]
E --> F["Paso 2 SAT: Cancelar UUID-1 enviando Motivo 01 y Folio Sustituto UUID-2"]
F --> G["BD Actualizada: UUID-1 pasa a Canceladas / UUID-2 queda Activa en el Mes"]
🔘 Motivos de Cancelación SAT Soportados
- Motivo 01 (Con relación): Ejecutado automáticamente por el Asistente de Sustitución en 2 pasos.
- Motivo 02 (Sin relación): Cancela la factura y libera automáticamente las notas de venta asociadas (
factura_emitida = false) para permitir su re-facturación.
- Motivo 03 (Operación no realizada): Anulación por cancelación de compra.
- Motivo 04 (Operación nominativa en global): Desglose de una venta de la global a factura particular.
18. Módulo 17: Control de Activos & Monedero FIFO
Ruta en Menú: #view-activos
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Gestión del monedero electrónico de comisiones y bonos de red bajo el principio contable FIFO (First In, First Out).
🔘 Fichas de Botones y Modales
➕ Acreditar Activos: Modal para abono manual a un líder (Monto MXN, Concepto, Referencia).
➖ Deducir Activos: Modal para cargo o ajuste justificado.
📋 Bitácora FIFO: Auditoría centavo a centavo del consumo de activos antiguos primero.
📥 Exportar Saldos: Reporte en Excel de todos los monederos activos.
19. Módulo 18: Producción Industrial & Fabricación de Lotes
Ruta en Menú: #view-produccion
Roles Autorizados: Master, Admin, Almacén, Producción.
Propósito: Control de manufactura de producto terminado en planta.
🔘 Fichas de Botones y Modales
➕ Nuevo Lote de Producción:
- Selección de producto a fabricar (Dulet Natural, Sabores, Eucament).
- Captura de Materia Prima ingresada (Kilos de suero, saborizante, aceite).
- Asignación de Número de Lote Industrial y Fecha de Caducidad.
Calculadora de Rendimiento y Merma: Compara unidades teóricas vs reales producidas.
🔒 Cerrar Lote: Bloquea el lote y traspasa las unidades al inventario disponible para venta.
20. Módulo 19: Materias Primas, Insumos y Empaque
Ruta en Menú: #view-materias
Roles Autorizados: Master, Admin, Almacén, Producción.
Propósito: Stock de ingredientes e insumos de empaque (Suero suizo, potes de 500g, tapas, sellos, etiquetas y cajas).
🔘 Fichas de Botones
➕ Registrar Entrada de Materia Prima: Captura compras a proveedores con lote y certificado de calidad.
⚠️ Alertas de Reorden: Notificación automática cuando un insumo cae por debajo del stock mínimo.
21. Módulo 20: Estructura de Costos Industriales & Rendimientos
Ruta en Menú: #view-costos
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Análisis del Costo de Ventas (COGS), costo unitario por pote y margen de contribución.
22. Módulo 21: Directorio de Proveedores
Ruta en Menú: #view-proveedores
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Padrón de proveedores de materias primas, fletes, empaque y servicios corporativos con historial de pagos.
23. Módulo 22: Módulo Intercompañía (México - USA)
Ruta en Menú: #view-intercompania
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Registro y conciliación de operaciones comerciales entre Dulet International Group (México) y Dulet Group LLC (Estados Unidos).
24. Módulo 23: Facturación y Pedidos USA (Dulet Group LLC)
Ruta en Menú: #view-facturacion-usa
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Gestión de ventas en Estados Unidos, facturación en Dólares (USD), cálculo de Sales Tax y reportes corporativos para IRS.
25. Módulo 24: Conciliador Bancario Automatizado 9-en-1
Ruta en Menú: #view-conciliacion
Roles Autorizados: Master, Admin, Contabilidad.
Propósito: Motor de inteligencia contable que cruza extractos bancarios vs notas de venta del sistema.
🏦 Fuentes Integradas
- BBVA Bancomer (Depósitos, Transferencias SPEI, Cie)
- Santander México
- MercadoPago México
- PayPal México & USA
- Stripe E-commerce
- Terminales Clip
- Shopify Payments
- Efectivo en Centros de Apoyo (CEDIS)
- Resumen de Conciliación y Comisiones de Pasarela
26. Módulo 25: Academia Dulet & Cuadernos de Trabajo (1 al 4)
Ruta en Menú: #view-academia
Roles Autorizados: Todos los usuarios.
Propósito: Plataforma de educación empresarial "30 Líderes en 30 Días".
- Cuaderno 1 (
/pages/cuaderno1): Mentalidad, Visión y Lista de Contactos.
- Cuaderno 2 (
/pages/cuaderno2): Presentación del Plan Evolution Link y Objeciones.
- Cuaderno 3 (
/pages/cuaderno3): Cierre, Duplicación y Frontales.
- Cuaderno 4 (
/pages/cuaderno4): Liderazgo Avanzado y Rangos LED.
- Versiones Imprimibles: Disponibles en alta resolución para talleres presenciales.
27. Módulo 26: Academia Admin & Seguimiento Formativo
Ruta en Menú: #view-academia-admin
Roles Autorizados: Master, Admin.
Propósito: Panel para que los instructores supervisen el avance de los socios en sus cuadernos de trabajo.
28. Módulo 27: Auditoría de Premios & Galardones LED
Ruta en Menú: #view-premios
Roles Autorizados: Master, Admin.
Propósito: Control de entrega de reconocimientos: Pines LED, Bonos de Auto, Viajes Nacionales e Internacionales.
29. Módulo 28: Acelerador de Metas Empresariales
Ruta en Menú: #view-acelerador
Roles Autorizados: Master, Admin, Empresario.
Propósito: Tablero de retos mensuales y seguimiento de metas de prospección y ventas.
30. Módulo 29: Centro de Notificaciones, Noticias y Calendario
Rutas en Menú: #view-notificaciones, #view-noticias, #view-calendario.
Propósito: Comunicación oficial, avisos de promociones, fechas de corte y agenda corporativa.
31. Módulo 30: Bitácora de Auditoría del Sistema & Seguridad
Ruta en Menú: #view-bitacora
Roles Autorizados: Master.
Propósito: Registro forense inmutable de todas las acciones del sistema:
- Inicios de sesión con IP y dispositivo.
- Creación, edición o cancelación de ventas.
- Movimientos de monedero de activos.
- Emisiones y cancelaciones de CFDI.
32. Módulo 31: Configuración Global del Sistema
Ruta en Menú: #view-config
Roles Autorizados: Master.
Propósito: Parámetros de negocio, porcentajes de comisión de la red, credenciales de Facturama y llaves de integración.
33. Portal Duletia Master Ops (/pages/ops)
Ruta de Acceso: /pages/ops (Shopify) y ops.html (Cloudflare).
Roles Autorizados: Master, Admin.
Propósito: Centro de comando técnico y observabilidad con Inteligencia Artificial.
┌─────────────────────────────────────────────────────────────────────────┐
│ DULETIA OPS — MASTER HUB (v3.2) │
├─────────────────────────────────────────────────────────────────────────┤
│ [🎯 Leads AI] [🤖 Agentes] [⚡ Observabilidad] [💻 SQL Runner] [📚 Docs]│
└─────────────────────────────────────────────────────────────────────────┘
🔘 Zonas del Portal Ops
- Lead Intelligence (
#view-leads): Captura, perfilado y calificación automática de prospectos con IA.
- Agentes de IA (
#view-agents): Estado y métricas de los chatbots y asistentes virtuales.
- Salud del Sistema (
#view-health): Monitor en vivo de PostgreSQL, n8n y Facturama API.
- SQL Runner (
#view-sql): Consola protegida de consultas de diagnóstico para soporte técnico.
- Documentación Sincronizada (
#view-docs): Manual de usuario integrado en vivo.
34. Compendio de Preguntas Frecuentes & Solución de Casos Extremos
❓ P: ¿Qué ocurre si cancelo una Factura Global porque integré notas de más por error?
R: Al cancelar la global con Motivo 02, el sistema libera automáticamente todas las notas de venta asociadas en la base de datos (factura_emitida = false). Ninguna nota se bloquea. Luego vas a la pestaña *Factura Global*, desmarcas las notas que no correspondían y timbras el nuevo CFDI únicamente con las correctas.
❓ P: ¿Cómo asigno una nota que ampara 4 cajas entre 2 líderes distintos?
R: En la Cola de Activaciones (#230), haz clic en ⚡ Activar (4). Se abrirán los 4 slots: asignas Líder A en las Cajas 1 y 2, y Líder B en las Cajas 3 y 4. Al dar clic en ⚡ Confirmar 4 Activaciones, el sistema genera las calificaciones correspondientes de inmediato.
❓ P: ¿Qué pasa si asigné por error una caja a un socio que no correspondía?
R: Ve a la pestaña Asignadas en la Cola de Activaciones, busca la activación errónea y haz clic en ✕ Cancelar. El sistema eliminará la calificación y devolverá 1 cupo disponible a la nota de respaldo original.
❓ P: ¿Cómo se maneja una compra con pago mixto (efectivo + activos)?
R: En el modal de venta se capturan ambos importes. El sistema deduce los activos aplicando la regla FIFO de la billetera del socio y timbra la factura fiscal únicamente por el importe efectivamente facturable.
💻 Manual de Desarrollador & Arquitectura Técnica Integral — Duletia Core
Versión: 4.0 (Documentación Técnica Integral & DevOps)
Fecha de Actualización: Septiembre 2026
Audiencia: Ingenieros de Software, Arquitectos Cloud, Desarrolladores Full-Stack, Ingenieros de Datos y DevOps
Infraestructura: Servidor n8n (n8n.duletias3rver.com) · PostgreSQL 15 en VPS Cloud · Cloudflare Pages · Shopify Liquid
Confidencial — Uso Interno
📑 Índice de Arquitectura Técnica
- [Topología General del Sistema (3 Capas Desacopladas)](#1-topología-general-del-sistema-3-capas-desacopladas)
- [Diccionario Maestro de Base de Datos PostgreSQL](#2-diccionario-maestro-de-base-de-datos-postgresql)
- [Arquitectura Frontend Modular en JavaScript (15+ Bundles)](#3-arquitectura-frontend-modular-en-javascript-15-bundles)
- [Ecosistema de Workflows n8n & API Endpoints](#4-ecosistema-de-workflows-n8n--api-endpoints)
- [Motor Fiscal CFDI 4.0 & Facturama API Gateway](#5-motor-fiscal-cfdi-40--facturama-api-gateway)
- [Motor de Activaciones (#230) & Asignación Multi-Caja](#6-motor-de-activaciones-230--asignación-multi-caja)
- [Algoritmo de Monedero de Activos FIFO & Compensación](#7-algoritmo-de-monedero-de-activos-fifo--compensación)
- [Motor de Conciliación Bancaria 9-en-1](#8-motor-de-conciliación-bancaria-9-en-1)
- [Módulos Industriales: Producción, Rendimiento y Kárdex](#9-módulos-industriales-producción-rendimiento-y-kárdex)
- [Portal Master Gateway (/pages/ops) & Observabilidad IA](#10-portal-master-gateway-pagesops--observabilidad-ia)
- [Protocolo Obligatorio Dual Deploy (Cloudflare + Shopify)](#11-protocolo-obligatorio-dual-deploy-cloudflare--shopify)
- [Guía de Diagnóstico, Testing y Resolución de Incidencias](#12-guía-de-diagnóstico-testing-y-resolución-de-incidencias)
1. Topología General del Sistema (3 Capas Desacopladas)
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ 1. CAPA DE PRESENTACIÓN (FRONTEND) │
│ • Cloudflare Pages: SPA Reactiva de Alto Rendimiento (pagina 2026/) │
│ • Shopify Liquid Themes: dulet-main-theme (Live: 187616788794) / dulet-backoffice-v2 │
│ • Bundles JS Vanilla Modulares (bo-*.js) sin dependencias pesadas de frameworks │
└───────────────────────────────────────────┬────────────────────────────────────────────┘
│ HTTP / JSON (JWT Bearer Token / CORS / SSL)
▼
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ 2. CAPA DE LÓGICA & MIDDLEWARE (API) │
│ • Motor n8n (n8n.duletias3rver.com) con 65+ Workflows como Código TypeScript │
│ • Master Gateway Endpoint (`RrAWwCVNTcGqvYnQ`) con Auditoría Inmutable │
│ • PAC Facturama REST API v2 para Timbrado CFDI 4.0 / Cancelación SAT │
│ • Pasarelas de Pago: Stripe Checkout, PayPal SDK, MercadoPago API │
└───────────────────────────────────────────┬────────────────────────────────────────────┘
│ SQL Connection Pooling (Node pg / Relay)
▼
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ 3. CAPA DE PERSISTENCIA (BASE DE DATOS) │
│ • PostgreSQL 15 Relacional en VPS Cloud (Conexión SSH / Tailscale 100.68.100.25) │
│ • Tablas Principales: cliente, venta, facturas_solicitadas, centros_apoyo, activos │
│ • Tablas de Auditoría e IA: master_audit_log, ai_event_logs, conciliacion_bancaria │
└────────────────────────────────────────────────────────────────────────────────────────┘
2. Diccionario Maestro de Base de Datos PostgreSQL
2.1 Tabla `cliente` (Padrón de Socios y Usuarios)
CREATE TABLE cliente (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
registro INTEGER UNIQUE NOT NULL, -- Número de socio oficial (ej. 80000, 10700)
nombre VARCHAR(100) NOT NULL,
ape_p VARCHAR(100),
ape_m VARCHAR(100),
email VARCHAR(150),
whatsapp VARCHAR(25),
tel VARCHAR(25),
password VARCHAR(255), -- Hash bcrypt ($2y$... normalizado a $2a$)
rol_id UUID REFERENCES rol(id),
patrocinador INTEGER, -- Registro del líder ascendente
cedis_id INTEGER, -- CEDIS de surtido habitual
active_id INTEGER DEFAULT 1, -- 1: Activo, 0: Baja
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE INDEX idx_cliente_registro ON cliente(registro);
CREATE INDEX idx_cliente_patrocinador ON cliente(patrocinador);
2.2 Tabla `venta` (Transacciones y Notas de Pedido)
CREATE TABLE venta (
id VARCHAR(100) PRIMARY KEY, -- Folio o UUID de nota (ej. a6cff756-867...)
cliente_id UUID REFERENCES cliente(id),
centro_apoyo_id INTEGER, -- CEDIS donde se operó la venta
total NUMERIC(12,2) NOT NULL,
cantidad NUMERIC(8,2) DEFAULT 1, -- Número de cajas amparadas
activaciones_usadas INTEGER DEFAULT 0, -- Cupos de activación consumidos
approved INTEGER DEFAULT 0, -- 1: Cobrada/Autorizada, 0: Pendiente
tipo_pago VARCHAR(50), -- Transferencia, Efectivo, MercadoPago, etc.
fecha_venta TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
producto_id VARCHAR(50), -- 'calificacion-mes' para activaciones virtuales
comentario TEXT, -- Desglose de piezas, destinatario, depósito
factura_emitida BOOLEAN DEFAULT FALSE,
factura_uuid VARCHAR(100),
requiere_factura BOOLEAN DEFAULT FALSE
);
CREATE INDEX idx_venta_cliente_approved ON venta(cliente_id, approved);
CREATE INDEX idx_venta_fecha ON venta(fecha_venta);
2.3 Tabla `facturas_solicitadas` (CFDI 4.0 & Facturama)
CREATE TABLE facturas_solicitadas (
id BIGSERIAL PRIMARY KEY,
cfdi_id VARCHAR(100), -- ID interno en Facturama
cfdi_uuid VARCHAR(100), -- UUID fiscal del SAT (Timbre Fiscal Digital)
numero_nota VARCHAR(100), -- ID de venta o Folio GLOBAL-YYYY-MM / CENTRO-ID
rfc VARCHAR(20) NOT NULL,
razon_social VARCHAR(255),
regimen VARCHAR(10), -- 601, 612, 616, 626, etc.
cp VARCHAR(10),
uso_cfdi VARCHAR(10), -- G01, G03, S01, etc.
forma_pago VARCHAR(10), -- 01 (Efectivo), 03 (Transferencia), etc.
total NUMERIC(12,2) NOT NULL,
monto_facturable NUMERIC(12,2),
estado VARCHAR(30) DEFAULT 'pendiente', -- 'pendiente', 'facturada', 'cancelada'
motivo_cancelacion VARCHAR(10), -- '01', '02', '03', '04'
uuid_sustitucion VARCHAR(100), -- UUID nuevo en caso de sustitución 01
ventas_ids JSONB, -- Array de IDs de notas agrupadas en la global
fecha_solicitud TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
fecha_facturacion TIMESTAMP WITH TIME ZONE,
fecha_cancelacion TIMESTAMP WITH TIME ZONE
);
2.4 Tabla `centros_apoyo` (CEDIS Físicos 1 al 15)
CREATE TABLE centros_apoyo (
id SERIAL PRIMARY KEY,
nombre VARCHAR(150) NOT NULL,
numero_centro INTEGER UNIQUE,
lider_id UUID REFERENCES cliente(id),
direccion TEXT,
telefono VARCHAR(50),
limite_credito NUMERIC(12,2) DEFAULT 100000.00,
saldo_deudor NUMERIC(12,2) DEFAULT 0.00,
comision_porcentaje NUMERIC(5,2) DEFAULT 10.00,
estado VARCHAR(20) DEFAULT 'activo'
);
3. Arquitectura Frontend Modular en JavaScript (15+ Bundles)
Para optimizar tiempos de carga (<400ms) y cumplir con los límites de tamaño de archivo en Shopify, la lógica se encuentra desacoplada en bundles modulares dentro de pagina 2026/backoffice/js/ y shopify pagina 2026/assets/:
| Archivo JS |
Peso |
Capa / Responsabilidad Técnica |
bo-core.js |
~101 KB |
Inicialización del DOM, enrutador de vistas SPA, formatters y helpers de UI. |
bo-auth.js |
~10 KB |
Gestión de sesiones JWT, control de roles (RBAC) y logout seguro. |
bo-ventas.js |
~1.1 MB |
Motor de ventas, captura de pedidos, validación de pago mixto y renderizado. |
bo-facturacion.js |
~320 KB |
Interfaz del SAT CFDI 4.0, Facturama API, facturación global y visor de notas. |
bo-facturacion2.js |
~100 KB |
Asistente de sustitución en 2 pasos, cancelación SAT y validaciones Anexo 20. |
centros-apoyo-detail.js |
~270 KB |
Gestión de CEDIS 1-15, Cola #230, asignación multi-caja y conciliación de stock. |
bo-activos.js |
~105 KB |
Motor de comisiones N1-N4, deducciones de monedero y algoritmo FIFO. |
bo-produccion.js |
~448 KB |
Lotes de planta, cálculo de mermas, formulación de sabores y empaque. |
bo-materias.js |
~235 KB |
Control de existencias de suero suizo, saborizantes, potes y empaque. |
bo-tree.js |
~11 KB |
Renderizador gráfico de genealogía multinivel Canvas / SVG. |
bo-config.js |
~93 KB |
Parámetros globales del sistema, listas de precios y llaves API. |
4. Ecosistema de Workflows n8n & API Endpoints
Los flujos se mantienen sincronizados mediante el CLI n8nac en workflows/default/:
# Estado del entorno de n8n
npx --yes n8nac env status --json
# Push de un workflow específico
npx --yes n8nac push "workflows/default/Backoffice - Motor de Facturacion.workflow.ts"
Endpoints REST Clave
| Endpoint |
Método |
Workflow Responsable |
Descripción |
/webhook/bo/auth/login |
POST |
Backoffice - Auth |
Autenticación con hash bcrypt y entrega de token JWT. |
/webhook/bo/sql-relay |
POST |
Backoffice - SQL Relay |
Relay parametrizado para consultas protegidas con token secreto. |
/webhook/bo/factura/emitir |
POST |
Backoffice - Motor de Facturacion |
Genera y timbra CFDI 4.0 individual o global en Facturama. |
/webhook/bo/factura/cancelar |
POST |
Backoffice - Facturama CFDI |
Solicita cancelación ante el SAT con motivo (01, 02, 03, 04). |
/webhook/bo/master/query |
POST |
Master Gateway |
Ejecución de queries de diagnóstico en Portal Ops con límite de seguridad. |
5. Motor Fiscal CFDI 4.0 & Facturama API Gateway
5.1 Estructura del Payload para Factura Global
const payloadGlobal = {
Receiver: {
Rfc: "XAXX010101000",
Name: "PUBLICO EN GENERAL",
CfdiUse: "S01",
FiscalRegime: "616",
TaxZipCode: taxZipCode // CP del emisor / CEDIS
},
CfdiType: "I",
Currency: "MXN",
PaymentForm: paymentFormCode, // "01", "03", "04", etc.
PaymentMethod: "PUE",
ExpeditionPlace: taxZipCode,
Items: finalFacturamaItems,
GlobalInformation: {
Periodicity: "04", // 04: Mensual, 01: Diario
Months: mesFiscalStr, // "08" para Agosto, "09" para Septiembre
Year: anioFiscalStr // "2026"
}
};
5.2 Algoritmo de Sustitución en 2 Pasos (SAT Motivo 01)
- Paso 1: Se emite la nueva factura incluyendo el nodo
CfdiRelacionados:
`javascript
payload.Relations = {
Type: "04", // Sustitución de los CFDI previos
Cfdis: [uuidOriginal]
};
`
- Paso 2: Una vez timbrada la nueva factura y obtenido su nuevo
uuidSustituto, se invoca la API de cancelación sobre la factura previa:
`javascript
POST /bo/factura/cancelar
{
cfdiId: cfdiIdOriginal,
motivo: "01",
uuidReplacement: uuidSustituto
}
`
6. Motor de Activaciones (#230) & Asignación Multi-Caja
Para notas que amparan múltiples cajas (ej. $9,500.00 = 2 cajas, $19,000.00 = 4 cajas, $45,000.00 = 10 cajas):
- Capacidad Real:
cajas = Math.max(1, Math.round(parseFloat(v.cantidad) || 1))
- Cupos Consumidos:
usadas = parseInt(v.activaciones_usadas) || 0
- Cupos Disponibles:
disponibles = cajas - usadas
Generación de Activación Virtual en Base de Datos:
-- 1. Insertar nota de activación calificacion-mes con importe $0.00
INSERT INTO venta (id, cliente_id, total, cantidad, approved, fecha_venta, producto_id, comentario)
VALUES (
'ACT-PA-' || upper(substring(md5(random()::text) from 1 for 8)),
:lider_uuid,
0.00,
1,
1,
:fecha_activacion_sql,
'calificacion-mes',
'ACTIVACION PAGO ADQUIRIDO || RESPALDO NOTA ' || :nota_respaldo_id || ' || LIDER #' || :lider_registro
);
-- 2. Incrementar contador de cupos usados en la nota de respaldo
UPDATE venta
SET activaciones_usadas = COALESCE(activaciones_usadas, 0) + :cantidad_activada
WHERE id = :nota_respaldo_id;
7. Algoritmo de Monedero de Activos FIFO & Compensación
Para evitar distorsiones contables y expiración injusta de saldo, las deducciones de activos se realizan mediante consumo secuencial del saldo más antiguo:
[Bono Registro Enero $1,000] ──> [Bono Red Febrero $2,000] ──> [Abono Marzo $1,500]
│
▼ Compra de $1,500 en Abril
Consume $1,000 de Enero (Agotado) + $500 de Febrero ($1,500 Restante)
Expresión CTE Recursiva de Compensación Multinivel:
WITH RECURSIVE cadena_red AS (
SELECT id, registro, nombre, ape_p, patrocinador, 1 AS nivel
FROM cliente
WHERE patrocinador = :registro_lider AND active_id = 1
UNION ALL
SELECT c.id, c.registro, c.nombre, c.ape_p, c.patrocinador, cr.nivel + 1
FROM cliente c
INNER JOIN cadena_red cr ON c.patrocinador = cr.registro
WHERE cr.nivel < 4 AND c.active_id = 1
)
SELECT cr.nivel, COUNT(DISTINCT cr.id) AS socios_activos, COALESCE(SUM(v.total), 0) AS volumen_nivel
FROM cadena_red cr
LEFT JOIN venta v ON cr.id = v.cliente_id AND v.approved = 1 AND TO_CHAR(v.fecha_venta, 'YYYY-MM') = :mes_periodo
GROUP BY cr.nivel
ORDER BY cr.nivel;
8. Motor de Conciliación Bancaria 9-en-1
El módulo de conciliación procesa extractos mediante 9 parsers especializados:
parser_bbva.js: Detecta depósitos en ventanilla, transferencias SPEI y cobros Cie.
parser_santander.js: Cruza referencias numéricas de 10 dígitos.
parser_mercadopago.js: Desglosa comisión por cobro con tarjeta vs depósito neto.
parser_paypal.js: Convierte pagos en USD a MXN con tipo de cambio de la transacción.
parser_stripe.js: Extrae identificadores pi_... y cruza contra venta.id.
parser_clip.js: Procesa transacciones de terminales punto de venta físicas.
parser_shopify.js: Cruza números de orden #DULETIA-....
parser_cedis.js: Cuadra remesas en efectivo entregadas por operadores de centros.
matcher_core.js: Algoritmo de ponderación (Fecha $\pm 3$ días, Monto exacto, Nombre/Referencia).
9. Módulos Industriales: Producción, Rendimiento y Kárdex
9.1 Registro de Lote Industrial (`produccion_lotes`)
$$\text{Rendimiento (\%)} = \frac{\text{Kilos Producidos Reales}}{\text{Kilos de Materia Prima Teóricos}} \times 100$$
- Control de Merma: Si la merma supera el 3.5%, el sistema exige captura de justificación obligatoria antes del cierre del lote.
10. Portal Master Gateway (/pages/ops) & Observabilidad IA
El portal /pages/ops expone herramientas de nivel Root para el equipo de ingeniería:
- Observabilidad en Tiempo Real: Métricas de CPU, latencia de consultas SQL y conteo de eventos de IA en
ai_event_logs.
- SQL Runner con Sandboxing: Ejecuta queries de soporte en modo solo lectura o transacción controlada con límite forzado de 500 registros.
- Auditoría Forense: Registro de cada sesión, IP y User-Agent en
master_audit_log.
11. Protocolo Obligatorio Dual Deploy (Cloudflare + Shopify)
Todo cambio en el código fuente debe seguir de manera estricta el Protocolo Dual Deploy:
# 1. Modificar archivos locales en 'pagina 2026/'
# 2. Despliegue a Cloudflare Pages
export CLOUDFLARE_API_TOKEN="cfut_..."
npx --yes wrangler pages deploy "/Users/BryanMalfavon/Downloads/DULETIA/pagina 2026" --project-name="dulet-backoffice" --branch="main" --no-bundle
# 3. Sincronización y Push a Shopify Themes
python3 sync_shopify.py --push
12. Guía de Diagnóstico, Testing y Resolución de Incidencias
Incidencia 1: El botón de activar en la Cola #230 no responde
- Causa Raíz: Comentario de nota con saltos de línea (
\n) o comillas inyectadas dentro de un atributo HTML inline.
- Solución Técnica: Pasar únicamente el ID a la función
onclick="activarLiderDesdeNota('${r.id}')" y recuperar los datos del objeto o base de datos de manera limpia.
Incidencia 2: Factura rechazada por Facturama con error en código postal
- Causa Raíz: Para Público en General (
XAXX010101000), el SAT CFDI 4.0 exige que el TaxZipCode del receptor sea idéntico al ExpeditionPlace del emisor.
- Solución Técnica: En
Backoffice - Motor de Facturacion.workflow.ts, forzar taxZipCode del emisor cuando Rfc === 'XAXX010101000'.
*Manual Técnico & Arquitectura de Software — Dulet International Group & Dulet Group LLC v4.0*