Skip to main content
Version: 1.x

Architecture

Cette page explique l'architecture technique de WCPOS pour les développeurs et les utilisateurs avancés.

Système Bipartite

WCPOS est conçu comme un système à deux parties :

  1. Plugin PHP : Hébergé sur votre serveur, c'est un plugin relativement petit qui étend l'API REST WooCommerce.

  2. Client JavaScript : S'exécute localement dans votre navigateur ou l'application de bureau, et plus tard sur les applications iOS et Android.

Vous pouvez le considérer comme deux mondes distincts :

  • Le monde PHP est l'endroit où la gestion des données se fait en utilisant WordPress et WooCommerce.
  • Le monde JavaScript réplique votre boutique WooCommerce localement, optimisé pour une recherche rapide et une utilisation hors ligne.
pos-client-woo-server

Synchronisation des Données

Les données sont récupérées à partir de WooCommerce en utilisant l'API REST WooCommerce. Cela signifie que le POS doit télécharger chaque produit, variation, catégorie de produit, client, taux de taxe, etc. pour les stocker localement.

Bien que cela puisse être long initialement, une fois téléchargés, ils sont disponibles instantanément sans avoir besoin de les récupérer continuellement du serveur.

Que se synchronise ?

  • Produits et variations
  • Catégories et étiquettes de produits
  • Clients
  • Taux de taxe et classes de taxe
  • Passerelles de paiement (pour le paiement)
  • Commandes (pour l'historique des commandes dans la version Pro)

Stratégie de Synchronisation

WCPOS utilise une stratégie de synchronisation incrémentale :

  1. Synchronisation initiale : Télécharge toutes les données lors du premier chargement
  2. Mises à jour incrémentielles : Ne récupère que les modifications depuis la dernière synchronisation
  3. Synchronisation en arrière-plan : Vérifie périodiquement les mises à jour
  4. Synchronisation manuelle : L'utilisateur peut déclencher une synchronisation à tout moment

Avantages et Inconvénients de l'Architecture

Bon 😊Mauvais 😟
Recherche de données locale instantanéeMaintenir les données synchronisées est complexe
Données en cache disponibles hors ligneLimité par l'API REST WooCommerce
Possibilité de créer de meilleures applications natives pour bureau, iOS et AndroidLes thèmes WordPress et les hooks ne peuvent pas personnaliser l'application POS

Base de Données Locale

Le client JavaScript stocke les données dans IndexedDB, une base de données basée sur le navigateur. Cela offre :

  • Persistance : Les données survivent aux redémarrages du navigateur
  • Performance : Requêtes rapides sans latence réseau
  • Navigation hors ligne : Les données en cache restent accessibles sans internet

Architecture de Paiement

Le processus de paiement utilise un iframe/webview qui charge la page de paiement de commande WooCommerce. Cette approche :

  • Exploite les passerelles de paiement existantes : Toute passerelle de paiement WooCommerce peut fonctionner dans le POS
  • Maintient la sécurité : Le traitement des paiements se fait via l'infrastructure sécurisée de WooCommerce
  • Réduit la complexité : Pas besoin de réimplémenter les intégrations de passerelles de paiement

Extensions API

Le plugin PHP étend l'API REST WooCommerce avec des points de terminaison supplémentaires pour des fonctionnalités spécifiques au POS. Consultez API REST WooCommerce pour plus de détails.