Zum Hauptinhalt springen
Version: 1.x

Architektur

Diese Seite erklärt die technische Architektur von WCPOS für Entwickler und fortgeschrittene Benutzer.

Zweiteiliges System

WCPOS ist als zweigeteiltes System konzipiert:

  1. PHP-Plugin: Auf Ihrem Server gehostet, ist dies ein relativ kleines Plugin, welches die WooCommerce REST API erweitert.

  2. JavaScript-Client: Dieser läuft lokal in Ihrem Browser oder in der Desktop-App und später in iOS- und Android-Apps.

Sie können es sich als zwei separate Welten vorstellen:

  • Die PHP-Welt ist der Ort, an dem das Datenmanagement mit WordPress und WooCommerce erfolgt.
  • Die JavaScript-Welt repliziert Ihren WooCommerce-Shop lokal, optimiert für schnelles Suchen und Offline-Nutzung.
SVG not found

Datensynchronisierung

Daten werden von WooCommerce über die WooCommerce REST API abgerufen. Dies bedeutet, dass der POS jedes Produkt, jede Variante, jede Produktkategorie, jeden Kunden, jeden Steuersatz und mehr herunterladen muss, um sie lokal zu speichern.

Obwohl dies anfangs zeitaufwendig sein kann, sind sie nach dem Herunterladen sofort verfügbar, ohne dass ständig vom Server abgerufen werden muss.

Was wird synchronisiert?

  • Produkte und Variationen
  • Produktkategorien und -tags
  • Kunden
  • Steuersätze und Steuerklassen
  • Zahlungs-Gateways (für den Checkout)
  • Bestellungen (für die Bestellhistorie in Pro)

Synchronisierungsstrategie

WCPOS verwendet eine inkrementelle Synchronisierungsstrategie:

  1. Erst-Synchronisierung: Lädt alle Daten beim ersten Laden herunter
  2. Inkrementelle Updates: Holt nur Änderungen seit der letzten Synchronisierung
  3. Hintergrund-Synchronisierung: Überprüft regelmäßig auf Updates
  4. Manuelle Synchronisierung: Der Benutzer kann jederzeit eine Synchronisierung auslösen

Vor- und Nachteile der Architektur

Gut 😊Schlecht 😟
Das Suchen lokaler Daten erfolgt sofortDie Daten synchron zu halten ist herausfordernd
Zwischengespeicherte Daten sind offline verfügbarBegrenzungen durch die WooCommerce REST API
Möglichkeit zur Erstellung besserer nativer Apps für Desktop, iOS und AndroidWordPress-Themen und Hooks können die POS-App nicht anpassen

Lokale Datenbank

Der JavaScript-Client speichert Daten in IndexedDB, einer browserbasierten Datenbank. Dies bietet:

  • Persistenz: Daten überstehen Browserneustarts
  • Leistung: Schnelle Abfragen ohne Netzwerkverzögerung
  • Offline-Browsing: Zwischengespeicherte Daten bleiben ohne Internetzugang zugänglich

Checkout-Architektur

Der Checkout-Prozess verwendet ein iframe/webview, das die WooCommerce Order Pay-Seite lädt. Dieser Ansatz:

  • Nutzen bestehender Zahlungs-Gateways: Jedes WooCommerce-Zahlungs-Gateway kann im POS verwendet werden
  • Sichert die Sicherheit: Die Zahlungsabwicklung erfolgt über die sichere Infrastruktur von WooCommerce
  • Reduziert die Komplexität: Keine Notwendigkeit, Integrationen von Zahlungs-Gateways neu zu implementieren

API-Erweiterungen

Das PHP-Plugin erweitert die WooCommerce REST API mit zusätzlichen Endpunkten für POS-spezifische Funktionen. Weitere Informationen finden Sie in der WooCommerce REST API.