Skip to main content
Version: 1.x

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:

  1. Plugin PHP: Alojado en su servidor, es un plugin relativamente pequeño que extiende la API REST de WooCommerce.

  2. Cliente JavaScript: Se ejecuta localmente en su navegador o en la aplicación de escritorio, y posteriormente en aplicaciones de iOS y Android.

Puede pensarlo como dos mundos separados:

  • El mundo PHP es donde se administran los datos utilizando WordPress y WooCommerce.
  • El mundo JavaScript replica su tienda de WooCommerce localmente, optimizado para búsquedas rápidas y uso sin conexión.
pos-client-woo-server

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, tarifa de impuestos y más para almacenarlos localmente.

Aunque inicialmente puede ser consumidor de tiempo, una vez descargados, están disponibles instantáneamente sin necesidad de buscarlos continuamente en el servidor.

Qué Se Sincroniza

  • Productos y variaciones
  • Categorías y etiquetas de productos
  • Clientes
  • Tarifas de impuestos y clases de impuestos
  • Pasarelas de pago (para checkout)
  • Pedidos (para historial de pedidos en Pro)

Estrategia de Sincronización

WCPOS utiliza una estrategia de sincronización incremental:

  1. Sincronización inicial: Descarga todos los datos en la primera carga
  2. Actualizaciones incrementales: Solo busca los cambios desde la última sincronización
  3. Sincronización en segundo plano: Comprueba periódicamente si hay actualizaciones
  4. Sincronización manual: El usuario puede iniciar una sincronización en cualquier momento

Pros y Contras de la Arquitectura

Bueno 😊Malo 😟
Búsqueda de datos local instantáneaMantener los datos sincronizados es un desafío
Datos en caché disponibles sin conexiónLimitado por la API REST de WooCommerce
Capacidad de crear aplicaciones nativas mejores para escritorio, iOS y AndroidLos temas de WordPress y los hooks no pueden personalizar la aplicación POS

Base de Datos Local

El cliente JavaScript almacena datos en IndexedDB, una base de datos basada en navegador. Esto proporciona:

  • Persistencia: Los datos sobreviven a 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 Checkout

El proceso de checkout utiliza un iframe/webview que carga la página de Pago de Pedido 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 se realiza a través de la infraestructura segura de WooCommerce
  • Reduce la complejidad: No es necesario volver a implementar integraciones de pasarelas de pago

Extensiones de API

El plugin PHP extiende la API REST de WooCommerce con puntos finales adicionales para funcionalidad específica de POS. Consulte API REST de WooCommerce para más detalles.