WillyPOS es el software multiplataforma de punto de venta minimalista de WillyLabs que ayuda a digitalizar ventas de manera rápida y casi sin curva de aprendizaje, ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento. Pequeños locales, startups y cadenas de negocios que aún usan lápiz y papel para registrar sus ventas, usan WillyPOS para reemplazar al lápiz y digitalizan sus operaciones diarias de inicio y cierres de sesión de caja y cajeros, registros de entradas y salidas de dinero, cuadraturas, cancelaciones de ventas, aplicación de descuentos y propinas, recuperación de datos ante desastres, etc. Todos los planes de precio fijo de WillyLabs incluyen una cantidad máxima de licencias para WillyPOS disponibles gratuitamente para su uso. Cada licencia para WillyPOS activa el software en un único dispositivo físico instalado en las dependencias del local comercial. Tendrá la oportunidad de adquirir licencias para WillyPOS adicionales de tiempo limitado y ponerles fin cuando no se requieran. WillyLabs proporciona funciones de administración para que pueda optimizar, organizar y configurar los productos, el catálogo y los accesos a WillyPOS permitiendo con esto satisfacer sus requisitos específicos de negocio, organización y cumplimiento normativo.

> **NOTA:**  
Para obtener más información sobre los usuarios autorizados como cajeros y cómo crearlos/modificarlos/eliminarlos consulte, [Usuarios Especiales del Servicio]() en la *Guía del Usuario de IAM*.
> 
> Para obtener más información sobre cómo crear productos y catálogos de productos, asi cómo categorías, precios, costos, etc., consulte [WillyLabs GCP (Gestor de Catálogos de Productos)]() en la *Guía del Usuario de GCP*.

---

<h4>Temas</h4>
  : [Características de WillyPOS]()
  : [Cómo funciona WillyPOS]()
  : Modelo de consistencia de datos de WillyLabs
  : Servicios relacionados
  : Accesos de cajeros y administradores a WillyPOS
  : Acceso programático a WillyPOS a través de la API RESTful de WillyLabs
  : Pagos a WillyLabs por eso programático del servicio GCP de la WillyLabs API
  : Cumplimiento normativo y auditoría

## Características de WillyPOS
### Almacenamiento de WillyPOS

WillyPOS utiliza una estrategia de sincronización constante con la nube, esto significa que los datos **no son almacenados** de manera permanente en los dispositivos donde se ejecuta WillyPOS, en su lugar, son recibidos/enviados desde/hacia `WillyHUB Data360`. Data360 es una nube de alta disponibilidad y segura para el almacenamiento persistente, coherente y estructurado de los datos necesarios para el funcionamiento de software WillyPOS y posteriormente para ser ingeridos por los agentes de `WillySynaps` para su análisis inteligente. Esta arquitectura garantiza la centralización de los datos permitiendo ser accedidos desde cualquier dispositivo y en cualquier lugar, además de ofrecer una única fuente de verdad, logrando que todo el ecosistema de WillyLabs se nutra y procese una única fuente de datos, permitiendo que no importando el servicio que utilice para ver y consultar los datos, siempre verá lo mismo.

Data360 ofrece almacenamiento de última generación, alto rendimiento, distribución y redundancia, diseñada específicamente para operar con los servicios de inteligencia artificial, aprendizaje profundo y agentes de Synaps, ofreciendo acceso a datos consistentes en milisegundos de un solo dígito para los servicios más sensibles a la latencia, como búsuqedas semánticas complejas y filtrado de datos en millones de registros. Para más información, consulte [Clases de almacenamiento de Data360]() en la *Guía Técnica de WillyHUB Data360* o [¿Qué es Data360?]() en la *Guía del Usuario de WillyHUB Data360*

```mermaid
graph TD
    %% Estilos pastel suaves
    classDef pos fill:#b3e5fc,stroke:#4f46e5,color:#1e1b4b,stroke-width:2px;
    classDef cloud fill:#ddd0ff,stroke:#8b5cf6,color:#1e1b4b,stroke-width:2px;
    classDef ai fill:#b7f5c9,stroke:#4f46e5,color:#1e1b4b,stroke-width:2px;
    classDef note fill:#f9c2fc,stroke:#8b5cf6,color:#1e1b4b,stroke-width:2px,stroke-dasharray: 5 5;

    subgraph Devices [🏪 Dispositivos WillyPOS]
        POS1[WillyPOS 1]
        POS2[WillyPOS 2]
        POSn[WillyPOS N...]
    end

    Data360[(☁️ Data360<br/>Almacenamiento Persistente<br/>Alta Disponibilidad y Redundancia)]:::cloud

    subgraph Ecosystem [🧠 Ecosistema WillyLabs]
        Synaps[WillySynaps<br/>Agentes de IA]:::ai
        OtrosServicios[Otros Servicios<br/>y Consultas]:::ai
    end

    NotaLocal[⚠️ Sin almacenamiento permanente en los dispositivos]:::note
    NotaFuenteUnica[✅ Única fuente de verdad<br/>Todos los servicios ven siempre los mismos datos]:::note

    %% Flujo de sincronización constante
    POS1 <-->|"Sync bidireccional<br/>de datos"| Data360
    POS2 <-->|"Sync bidireccional<br/>de datos"| Data360
    POSn <-->|"Sync bidireccional<br/>de datos"| Data360

    NotaLocal -.-> POS1

    %% Data360 como centro único para todo el ecosistema
    Data360 -->|"Acceso en milisegundos<br/>(consultas semánticas, filtrado)"| Synaps
    Data360 -->|"Datos consistentes"| OtrosServicios

    NotaFuenteUnica -.-> Data360
```

### Sincronización automática con Data360
Toda la información que el software WillyPOS registra y muestra en pantalla, incluyendo su catálogo de productos y productos, precios de venta y costos, ventas diferidas pendientes, entre otros se gestionan, administran y almacenan por separado del dispositivo WillyPOS en la nube de WillyLabs (`Data360`). Este modelo permite independizarse de los puntos de venta y administrarlos en cualquier momento y lugar, sin detener ni por un segundo las operaciones de sus cajeros/vendedores, usando una plataforma centralizada basada en web, moderna, intuitiva y de fácil uso (`WillyDashboard`). Con Dashboard puede agregar/modificar/pausar/eliminar productos, cajeros, categorías, ventas, compras, etc. mediante asistentes que automatizan la mayor cantidad de operaciones liberándolo de costos formularios y opciones.

Con Dashboard, cada vez que los administradores realizan cambios en los datos del negocio (por ejemplo, agregan nuevos productos, modifican precios y descuentos o reorganizan productos), todos los WillyPOS reciben los cambios automáticamente y realizan las operaciones y procedimientos internos sin necesidad de intervención humana, reflejando ne consecuencia los cambios realizados.

> **¡IMPORTANTE!**  
WillyPOS al igual que la mayoría de los servicios de infraestructura central de WillyLabs, es [eventualmente consistente](). WillyLabs logra alta disponibilidad y recuperación de datos ante desastres replicando la información en varios centros de datos distribuidos. Esto significa que cada vez que realiza un cambio y este se confirma, es guardado de forma segura inmediatamente, sin embargo, debe replicarse por toda la infraestructura, lo que podría tardar un tiempo. Junto a esto, los clientes realizan operaciones y búsquedas en los datos con tiempos de respuestas en milisegundos. Para lograrlo aplicamos cuotas de servicio para determinadas acciones sensibles o que podrían provocar amenazas en la eficiencia o en la integridad de nuestra plataforma.

A continuación se ilustra un diagrama que explica visualmente el funcionamiento básico de la sincronización con Data360

```mermaid

graph TD
    %% Estilos pastel basados en la paleta proporcionada
    classDef dashboard fill:#cbb6fa,stroke:#8b5cf6,color:#1e1b4b,stroke-width:2px;
    classDef cloudMain fill:#ddd0ff,stroke:#a78bfa,color:#1e1b4b,stroke-width:2px;
    classDef cloudReplica fill:#b7f5c9,stroke:#4f46e5,color:#1e1b4b,stroke-width:2px;
    classDef pos fill:#b3e5fc,stroke:#4f46e5,color:#1e1b4b,stroke-width:2px;
    classDef eventualNote fill:#f9c2fc,stroke:#8b5cf6,color:#1e1b4b,stroke-width:2px;

    subgraph Cloud ["☁️ WillyHUB Data360"]
        style Cloud fill:#f3edff,stroke:#a78bfa,color:#1e1b4b,stroke-width:2px
        Data360[(🗄️ Centro de Datos Principal)]:::cloudMain
        DC2[(🔄 Réplica Secundaria)]:::cloudReplica
        DC3[(🔄 Réplica Terciaria)]:::cloudReplica
    end

    Admin[👤 Administrador]:::dashboard
    Dashboard[📊 WillyDashboard<br/>Plataforma Web Centralizada]:::dashboard
    POS[🏪 WillyPOS<br/>Puntos de Venta]:::pos

    %% Flujo de Datos
    Admin -->|"Gestiona Catálogo,<br/>Precios y Cajeros"| Dashboard
    Dashboard -->|"Guarda Cambios de<br/>Forma Segura"| Data360
    
    Data360 -->|"Replica Información"| DC2
    Data360 -->|"Replica Información"| DC3

    Data360 -->|"Envía Actualizaciones<br/>Automáticamente"| POS
    POS -->|"Operaciones sin detenerse<br/>(Envía Ventas/Consultas)"| Data360
```

### Autorización de cajeros y cajeros administradores
WillyPOS, al nutrirse y usar las capacidades en la nube de WillyLabs a través de Data360, hereda las opciones de seguridad e inicio de sesión proporcionadas por `WillyLabs IAM` (Identity and Access Management). IAM es un servicio web centralizado que el ayuda a controlar con efectividad y facilidad quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para usar sus recursos de WillyLabs, entre ellos, el acceso al software WillyPOS. Con IAM puede configurar fácilmente los usuarios cajeros y los usuarios cajeros administradores que estarán autorizados a iniciar sesión y realizar ventas en sus WillyPOS. Gracias a la característica de permisos granulares con los que cuenta IAM, usted puede definir qué permisos exactamente tendrán cada uno de sus usuarios cajeros y bajo qué condiciones pueden iniciar sesión o utilizar un recurso determinado. Con esta flexibilidad puede crear usuarios cajeros que únicamente puedan realizar ventas, otros que únicamente tengan control sobre las cancelaciones y deoluciones e incluso usuarios que solo puedan realizar cancelaciones en un horario definido y solo ventas todo el resto del tiempo. IAM ofrece los registros de cada acción realizada en IAM y sobre sus recursos, con esto puede dar cumplimiento a sus reglas de negocio, auditoría y cumplimiento normativo.

### Capacidad para operar incluso sin conexión `offline-first`
Una de las características claves del software WillyPOS es que, a pesar de estar ligado y ser dependiente de la nube de WillyLabs y su ecosistema, en el caso de cortes o caídas del servicio de Internet, los WillyPOS tienen la capacidad de seguir operando con normalidad sin interrupciones. Una vez realizada una sincronización, los WillyPOS almacenan localmente dicha información, con esto puede seguir vendiendo los productos de su catálogo y cerrar ventas sin problemas, al mismo tiempo, las ventas que se realicen durante estos periodos sin acceso a internet, son almacenadas localmente y de manera encriptada en los dispositivos que ejecutan WillyPOS. Una vez que el problema de conectividad termina y los WillyPOS recuperan el acceso a Internet, se vuelven a sincronizar con la nube de WillyLabs, enviando todas sus ventas y operaciones acumuladas y recibiendo todos los cambios que se hayan producido desde la nube.

> **NOTA:**  
Debe tener en consideración que los WillyPOS sí requieren conexión a internet. Su capacidad `offline-first` los habilita para operar largos periodos de tiempo sin conexión, sin embargo, es fundamental que dicha conexión sea recuperada para que WillyPOS puede volver a sincronizarse con la nube. Como medida de seguridad y para garantizar que los WillyPOS se encuentren con información útil y actualizada al momento de emitir una venta, estos deben realizar al menos una sincronización correcta con la nube de WillyLabs cada 48 horas.