Arquitectura
Esta página explica la arquitectura técnica de WCPOS para desarrolladores y usuarios avanzados.
Sistema de Dos Partes
WCPOS está diseñado como un sistema de dos partes:
-
Plugin PHP: Alojado en su servidor, este es un plugin relativamente pequeño que extiende la API REST de WooCommerce.
-
Cliente JavaScript: Esto se ejecuta localmente en su navegador o en la aplicación de escritorio, y más adelante en las aplicaciones de iOS y Android.
Puede pensarlo como dos mundos separados:
- El mundo PHP es donde ocurre la gestión de datos utilizando WordPress y WooCommerce.
- El mundo JavaScript replica su tienda WooCommerce localmente, optimizado para búsquedas rápidas y uso sin conexión.
Sincronización de Datos
Los datos se obtienen de WooCommerce utilizando la API REST de WooCommerce. Esto significa que el POS tiene que descargar cada producto, variación, categoría de producto, cliente, tasa impositiva y más para almacenarlos localmente.
Aunque esto puede llevar tiempo inicialmente, una vez descargados, están disponibles instantáneamente sin la necesidad de obtener continuamente datos del servidor.
¿Qué se Sincroniza?
- Productos y variaciones
- Categorías y etiquetas de productos
- Clientes
- Tasas impositivas y clases impositivas
- Pasarelas de pago (para el proceso de pago)
- Pedidos (para el historial de pedidos en Pro)
Estrategia de Sincronización
WCPOS utiliza una estrategia de sincronización incremental:
- Sincronización inicial: Descarga todos los datos en la primera carga
- Actualizaciones incrementales: Solo obtiene cambios desde la última sincronización
- Sincronización en segundo plano: Comprueba periódicamente si hay actualizaciones
- Sincronización manual: El usuario puede activar una sincronización en cualquier momento
Ventajas y Desventajas de la Arquitectura
| Bueno 😊 | Malo 😟 |
|---|---|
| La búsqueda de datos locales es instantánea | Mantener los datos sincronizados es un desafío |
| Datos en caché disponibles sin conexión | Limitado por la API REST de WooCommerce |
| Capacidad para crear mejores aplicaciones nativas para escritorio, iOS y Android | Los temas y hooks de WordPress no pueden personalizar la aplicación POS |
Base de Datos Local
El cliente JavaScript almacena datos en IndexedDB, una base de datos basada en el navegador. Esto proporciona:
- Persistencia: Los datos sobreviven a los reinicios del navegador
- Rendimiento: Consultas rápidas sin latencia de red
- Navegación sin conexión: Los datos en caché permanecen accesibles sin internet
Arquitectura de Pago
El proceso de pago utiliza un iframe/webview que carga la página de Order Pay de WooCommerce. Este enfoque:
- Aprovecha las pasarelas de pago existentes: Cualquier pasarela de pago de WooCommerce puede funcionar en el POS
- Mantiene la seguridad: El procesamiento de pagos ocurre a través de la infraestructura segura de WooCommerce
- Reduce la complejidad: No es necesario volver a implementar las integraciones de pasarelas de pago
Extensiones de API
El plugin PHP extiende la API REST de WooCommerce con puntos finales adicionales para funcionalidades específicas del POS. Consulte la API REST de WooCommerce para más detalles.