Salta al contenuto principale
Versione: 1.x

Architettura

Questa pagina spiega l'architettura tecnica di WCPOS per sviluppatori e utenti avanzati.

Sistema a Due Parti

WCPOS è progettato come un sistema a due parti:

  1. Plugin PHP: Ospitato sul tuo server, questo è un plugin relativamente piccolo che estende l'API REST di WooCommerce.

  2. Client JavaScript: Questo viene eseguito localmente nel tuo browser o nell'app desktop, e in seguito nelle app iOS e Android.

Puoi pensarlo come due mondi separati:

  • Il mondo PHP è dove avviene la gestione dei dati utilizzando WordPress e WooCommerce.
  • Il mondo JavaScript replica localmente il tuo negozio WooCommerce, ottimizzato per ricerche veloci e utilizzo offline.
SVG not found

Sincronizzazione dei Dati

I dati vengono recuperati da WooCommerce utilizzando l'API REST di WooCommerce. Questo significa che il POS deve scaricare ogni prodotto, variazione, categoria di prodotto, cliente, aliquota fiscale e altro per memorizzarli localmente.

Sebbene questo possa richiedere tempo inizialmente, una volta scaricati, sono disponibili istantaneamente senza la necessità di recuperare continuamente dal server.

Cosa Viene Sincronizzato?

  • Prodotti e variazioni
  • Categorie e tag dei prodotti
  • Clienti
  • Aliquote fiscali e classi fiscali
  • Gateway di pagamento (per il checkout)
  • Ordini (per la cronologia degli ordini in Pro)

Strategia di Sincronizzazione

WCPOS utilizza una strategia di sincronizzazione incrementale:

  1. Sincronizzazione iniziale: Scarica tutti i dati al primo caricamento
  2. Aggiornamenti incrementali: Recupera solo le modifiche dall'ultima sincronizzazione
  3. Sincronizzazione in background: Controlla periodicamente gli aggiornamenti
  4. Sincronizzazione manuale: L'utente può attivare una sincronizzazione in qualsiasi momento

Vantaggi e Svantaggi dell'Architettura

Buono 😊Cattivo 😟
La ricerca di dati locali è istantaneaMantenere i dati sincronizzati è una sfida
Dati memorizzati nella cache disponibili offlineLimitato dall'API REST di WooCommerce
Possibilità di creare migliori app native per desktop, iOS e AndroidI temi e i ganci di WordPress non possono personalizzare l'app POS

Database Locale

Il client JavaScript memorizza i dati in IndexedDB, un database basato su browser. Questo fornisce:

  • Persistenza: I dati sopravvivono ai riavvii del browser
  • Prestazioni: Query rapide senza latenza di rete
  • Navigazione offline: I dati memorizzati nella cache rimangono accessibili senza internet

Architettura del Checkout

Il processo di checkout utilizza un iframe/webview che carica la pagina WooCommerce Order Pay. Questo approccio:

  • Sfrutta i gateway di pagamento esistenti: Qualsiasi gateway di pagamento WooCommerce può funzionare nel POS
  • Mantiene la sicurezza: L'elaborazione dei pagamenti avviene attraverso l'infrastruttura sicura di WooCommerce
  • Riduce la complessità: Non è necessario re-implementare le integrazioni dei gateway di pagamento

Estensioni API

Il plugin PHP estende l'API REST di WooCommerce con endpoint aggiuntivi per funzionalità specifiche del POS. Vedi API REST di WooCommerce per dettagli.