Ir al contenido

Plugins para SimpleGest TPV

SimpleGest TPV es un único TPV con un núcleo pequeño y estricto (ventas, documentos fiscales, caja e inventario) que se especializa por sector con plugins. Esta sección explica el SDK de plugins versión 0.2 (HOST_SDK_VERSION = 0.2.0), que sigue admitiendo los plugins escritos para 0.1.

  • El paquete @simplegest/plugin-sdk es lo único que un plugin puede importar. Nada de Node, SQL, ficheros, red ni rutas internas (lo comprueba un test).
  • Declarativo primero. El manifiesto describe campos, columnas, pantallas, tablas, formularios, botones del TPV y bloques de impresión; el programa los pinta con sus propios componentes.
  • Seguridad por capacidades. Un plugin solo usa lo que declara y lo que el usuario puede hacer; el servicio local lo comprueba en cada llamada.
  • El núcleo fiscal es intocable. Ningún punto de extensión permite modificar documentos emitidos, importes, IVA ni numeración. El stock solo se mueve con comandos del dominio (entradas, mermas, ajustes), nunca ventas ni devoluciones.
  • Los datos del cliente se conservan. Desactivar o desinstalar nunca borra datos; borrar exige desinstalar y confirmar, con exportación previa.
  • Sin Internet. Un plugin funciona sin conexión o lo declara (offline: 'degraded' | 'online-only').
plugins/<publisher>.<nombre>/
manifest.ts # contrato declarativo (obligatorio)
client.ts # comportamiento en la interfaz (opcional)
server.ts # datos, comandos, eventos, validación de venta, migraciones (opcional)

Un plugin oficial se registra en dos puntos: su manifiesto (y su server) en server/plugins/catalog.ts, y su client en src/platform/plugins/clientModules.ts. El núcleo no se modifica.

Alimentación (simplegest.food), Moda (simplegest.fashion), Informática (simplegest.electronics), Fidelización Pro (simplegest.loyalty-pro), Etiquetas y precios (simplegest.labels), Reposición Inteligente (simplegest.replenishment), Analítica (simplegest.analytics) y Promociones Avanzadas (simplegest.advanced-promotions, SDK 0.2.1) están construidos solo con el SDK; son la mejor referencia de cada punto de extensión. Su manual de usuario está en la sección SimpleGest Shop.

Los plugins de pago solo se instalan y activan con una licencia firmada (Ed25519) por el servicio de cuentas, que el TPV verifica sin conexión (server/plugins/entitlements.ts). La aplicación instalada todavía no incluye la clave pública con la que verificarlas, así que hoy no se puede activar ninguno en ella. En desarrollo hay una fuente de licencias de desarrollo identificada como tal, que solo se aplica en el entorno de licencias de desarrollo (nunca en staging ni en la aplicación instalada). Cómo emitirá la cuenta esas licencias está en preparación; las condiciones comerciales no están definidas.

Versión Estado Añade
0.2 Implementada Almacén propio y migraciones por plugin, interfaz declarativa (páginas, tablas, formularios, tarjetas, secciones, botones del TPV, filtros), captura de línea y validación de venta, lectores de códigos, documentos PDF, permisos y configuración de plugin, licencias firmadas
0.2.1 Implementada Proveedores de reglas de descuento (sale.discount) evaluadas por el motor de promociones del núcleo (Promociones Avanzadas)
0.3 Diseñada Secciones y campos de cliente en sus pantallas; varias tiendas
1.0 Diseñada Aislamiento para terceros, paquetes firmados y publicación en SimpleGest Shop