Architettura
Questa pagina spiega l'architettura tecnica di WCPOS per sviluppatori e utenti avanzati.
Sistema in Due Parti
WCPOS è progettato come un sistema in due parti:
-
Plugin PHP: Ospitato sul tuo server, questo è un plugin relativamente piccolo che estende il WooCommerce REST API.
-
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 rapide e utilizzo offline.
Sincronizzazione dei Dati
I dati vengono recuperati da WooCommerce utilizzando il WooCommerce REST API. Ciò 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 all'inizio, 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 nel Pro)
Strategia di Sync
WCPOS utilizza una strategia di sincronizzazione incrementale:
- Sincronizzazione iniziale: Scarica tutti i dati al primo caricamento
- Aggiornamenti incrementali: Recupera solo le modifiche dall'ultima sincronizzazione
- Sincronizzazione in background: Controlla periodicamente gli aggiornamenti
- Sincronizzazione manuale: L'utente può attivare una sincronizzazione in qualsiasi momento
Vantaggi e Svantaggi dell'Architettura
| Vantaggi 😊 | Svantaggi 😟 |
|---|---|
| La ricerca dei dati locali è immediata | Mantenere i dati sincronizzati è impegnativo |
| Dati memorizzati nella cache disponibili offline | Limitato dall'API REST di WooCommerce |
| Possibilità di creare migliori app native per desktop, iOS e Android | I temi e gli hook di WordPress non possono personalizzare l'app POS |
Database Locale
Il client JavaScript memorizza i dati in IndexedDB, un database basato sul browser. Questo fornisce:
- Persistenza: I dati sopravvivono ai riavvii del browser
- Prestazioni: Query veloci 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 di pagamento degli ordini di WooCommerce. Questo approccio:
- Sfrutta i gateway di pagamento esistenti: Qualsiasi gateway di pagamento di WooCommerce può funzionare nel POS
- Mantiene la sicurezza: L'elaborazione dei pagamenti avviene attraverso l'infrastruttura sicura di WooCommerce
- Riduce la complessità: Non è necessario riimplementare integrazioni di gateway di pagamento
Estensioni API
Il plugin PHP estende il WooCommerce REST API con endpoint aggiuntivi per funzionalità specifiche del POS. Vedi il WooCommerce REST API per dettagli.