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 :
-
Plugin PHP : Hébergé sur votre serveur, c'est un plugin relativement petit qui étend l'API REST de WooCommerce.
-
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.
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 :
- Synchronisation initiale : Télécharge toutes les données au premier chargement
- Mises à jour incrémentales : Ne récupère que les changements depuis la dernière synchronisation
- Synchronisation en arrière-plan : Vérifie périodiquement les mises à jour
- 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ée | Maintenir les données synchronisées est un défi |
| Les données mises en cache sont disponibles hors ligne | Limité par l'API REST de WooCommerce |
| Capacité à créer de meilleures applications natives pour bureau, iOS et Android | Les 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.