Passer au contenu principal
Version : 1.x

Architecture

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

Système en Deux Parties

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

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

  2. Client JavaScript : Celui-ci fonctionne localement dans votre navigateur ou l'app de bureau, et plus tard sur les apps iOS et Android.

Vous pouvez le considérer comme deux mondes séparés :

  • Le monde PHP est celui où la gestion des données se fait à l'aide de 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 depuis WooCommerce en utilisant l'API REST de WooCommerce. Cela signifie que le POS doit télécharger chaque produit, variation, catégorie de produit, client, taux de taxe, et plus encore pour les stocker localement.

Bien que cela puisse prendre du temps au départ, une fois téléchargées, elles sont disponibles instantanément sans avoir besoin de se re-brancher continuellement au serveur.

Qu'est-ce qui est Synchronisé ?

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

Stratégie de Synchronisation

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

  1. Synchronisation initiale : Télécharge toutes les données au premier chargement
  2. Mises à jour incrémentales : Ne récupère que les changements 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 😟
La recherche de données locales est instantanéeMaintenir les données synchronisées est un défi
Les données mises en cache sont disponibles hors ligneLimité par l'API REST de WooCommerce
Capacité à créer de meilleures applications natives pour bureau, iOS et AndroidLes thèmes et hooks WordPress 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 fournit :

  • Persistance : Les données survivent aux redémarrages du navigateur
  • Performance : Requêtes rapides sans latence réseau
  • Navigation hors ligne : Les données mises 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 :

  • Tire parti des 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 des passerelles de paiement

Extensions API

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