Zum Hauptinhalt springen
Version: 1.x

Architektur

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

Zweiteiliges System

WCPOS ist als zweiteiliges System konzipiert:

  1. PHP-Plugin: Auf Ihrem Server gehostet, handelt es sich um ein relativ kleines Plugin, das 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 die Datenverwaltung mithilfe von 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. Das bedeutet, dass das POS jedes Produkt, jede Variation, jede Produktkategorie, jeden Kunden, jeden Steuersatz und mehr herunterladen muss, um sie lokal zu speichern.

Obwohl dies anfangs zeitaufwändig sein kann, sind sie, einmal heruntergeladen, sofort verfügbar, ohne ständig vom Server abrufen zu müssen.

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. Erste Synchronisierung: Lädt alle Daten beim ersten Laden herunter
  2. Inkrementelle Aktualisierungen: Holt nur die Änderungen seit der letzten Synchronisierung
  3. Hintergrundsynchronisierung: Überprüft regelmäßig auf Updates
  4. Manuelle Synchronisierung: Der Nutzer kann jederzeit eine Synchronisierung auslösen

Vor- und Nachteile der Architektur

Gut 😊Schlecht 😟
Das Suchen lokaler Daten ist blitzschnellDie Datensynchronisierung ist herausfordernd
Zwischengespeicherte Daten sind offline verfügbarDurch die WooCommerce REST API begrenzt
Möglichkeit, bessere native Apps für Desktop, iOS und Android zu erstellenWordPress-Themes 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 Neustarts des Browsers
  • 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:

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

API-Erweiterungen

Das PHP-Plugin erweitert die WooCommerce REST API mit zusätzlichen Endpunkten für POS-spezifische Funktionen. Siehe WooCommerce REST API für Details.