आर्किटेक्चर
यह पृष्ठ डेवलपर्स और उन्नत उपयोगकर्ताओं के लिए WCPOS की तकनीकी आर्किटेक्चर को समझाता है।
दो-भागीय प्रणाली
WCPOS को दो-भागीय प्रणाली के रूप में डिज़ाइन किया गया है:
-
PHP प्लगइन: यह आपके सर्वर पर होस्टेड होता है, यह एक अपेक्षाकृत छोटा प्लगइन है जो WooCommerce REST API का विस्तार करता है।
-
JavaScript क्लाइंट: यह आपके ब्राउज़र या डेस्कटॉप ऐप में स्थानीय रूप से चलता है, और बाद में iOS और Android ऐप्स पर।
आप इसे दो अलग-अलग दुनिया के रूप में सोच सकते हैं:
- PHP दुनिया वह जगह है जहाँ डेटा प्रबंधन WordPress और WooCommerce का उपयोग करके होता है।
- JavaScript दुनिया आपके WooCommerce स्टोर को स्थानीय रूप से प्राकृत करती है, जो तेज़ खोज और ऑफ़लाइन उपयोग के लिए अनुकूलित है।
डेटा सिंक्रोनाइजेशन
डेटा को WooCommerce से WooCommerce REST API का उपयोग करके फेच किया जाता है। इसका मतलब है कि POS को प्रत्येक उत्पाद, विविधता, उत्पाद श्रेणी, ग्राहक, कर दर, और अधिक को स्थानीय रूप से संग्रहित करने के लिए डाउनलोड करना होगा।
हालाँकि, यह प्रारंभ में समय लेने वाला हो सकता है, एक बार डाउनलोड होने के बाद, वे लगातार सर्वर से पुनः प्राप्त करने की आवश्यकता के बिना तुरंत उपलब्ध होते हैं।
क्या सिंक्रोनाइज होता है?
- उत्पाद और विविधताएँ
- उत्पाद श्रेणियाँ और टैग
- ग्राहक
- कर दरें और कर वर्ग
- भुगतान गेटवे (चेकआउट के लिए)
- ऑर्डर (Pro में ऑर्डर इतिहास के लिए)
सिंक रणनीति
WCPOS एक इन्क्रीमेंटल सिंक रणनीति का उपयोग करता है:
- प्रारंभिक सिंक: पहले लोड पर सभी डेटा डाउनलोड करता है
- इन्क्रीमेंटल अपडेट: केवल अंतिम सिंक के बाद के परिवर्तनों को पुनः प्राप्त करता है
- बैगराउंड सिंक: समय-समय पर अपडेट की जांच करता है
- मैनुअल सिंक: उपयोगकर्ता किसी भी समय सिंक प्रारंभ कर सकता है
आर्किटेक्चर के लाभ और हानि
| अच्छा 😊 | बुरा 😟 |
|---|---|
| स्थानीय डेटा को खोजना त्वरित है | डेटा को सिंक्रोनाइज रखना चुनौतीपूर्ण है |
| कैश की गई डेटा ऑफ़लाइन उपलब्ध | WooCommerce REST API द्वारा सीमित |
| डेस्कटॉप, iOS, और Android के लिए बेहतर स्वदेशी ऐप बनाने की क्षमता | WordPress थीम और हुक POS ऐप को अनुकूलित नहीं कर सकते |
स्थानीय डेटाबेस
JavaScript क्लाइंट डेटा को IndexedDB में संग्रहीत करता है, जो एक ब्राउज़र-आधारित डेटाबेस है। यह प्रदान करता है:
- स्थिरता: डेटा ब्राउज़र पुनः आरंभों में बनी रहती है
- प्रदर्शन: नेटवर्क विलंबता के बिना तेज़ क्वेरी
- ऑफ़लाइन ब्राउज़िंग: कैश की गई डेटा बिना इंटरनेट के भी सुलभ रहती है
चेकआउट आर्किटेक्चर
चेकआउट प्रक्रिया एक iframe/webview का उपयोग करती है जो WooCommerce ऑर्डर पे पृष्ठ को लोड करती है। यह दृष्टिकोण:
- मौजूदा भुगतान गेटवे का उपयोग करता है: कोई भी WooCommerce भुगतान गेटवे POS में काम कर सकता है
- सुरक्षा बनाए रखता है: भुगतान संसाधन WooCommerce के सुरक्षित बुनियादी ढांचे के माध्यम से होता है
- जटिलता को घटाता है: भुगतान गेटवे एकीकरण को फिर से लागू करने की आवश्यकता नहीं है
API एक्सटेंशन
PHP प्लगइन POS-विशिष्ट कार्यक्षमता के लिए अतिरिक्त अंत बिंदुओं के साथ WooCommerce REST API का विस्तार करता है। विवरण के लिए WooCommerce REST API देखें।