सवालों के जवाब
डेटा को प्रारूपित करने के लिए कौन जिम्मेदार है, उदाहरण के लिए कीमतें। Magento एपीआई और सीमावर्ती ढांचा?
Magento API डेटा और व्यावसायिक तर्क तक पहुँच प्रदान करता है । फ़ॉर्मेटिंग डेटा / कीमतें प्रेजेंटेशन लॉजिक का हिस्सा होती हैं , इसलिए इस तरह से, आपके पास अपनी इच्छानुसार जानकारी प्रस्तुत करने के लिए अधिक लचीलापन होता है (इसे मैगेंटो तरीके से करने के लिए मजबूर किए बिना)।
उदाहरण के लिए, आप स्थानीय सेटिंग्स का पता लगाने और उचित डेटा प्रदान करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं। निम्नलिखित की जाँच करें:
navigator.language
toLocaleString ()
या, आप Magento से 3rd पार्टी सिस्टम या डेटा एनालिसिस टूल में कीमतें आयात करने का विकल्प भी चुन सकते हैं, और मुद्रा प्रारूप के अनुसार स्वरूपित कीमतें केवल "मुद्रा रूपांतरण" को हल करने तक आयात प्रक्रिया को तोड़ देगी।
उत्पाद चित्रों का आकार बदलने और उन्हें कैश करने के लिए कौन जिम्मेदार है? क्योंकि देशी Magento 2 API में कोई आकार या कैश सिस्टम नहीं है।
ठीक ठीक। जैसा कि मैंने ऊपर कहा, Magento डेटा तक पहुँच प्रदान करता है (प्रस्तुति तर्क के बिना)। यह आपके ऊपर है कि आप इसका उपयोग कैसे करेंगे।
उदाहरण के लिए, आप http://adaptive-images.com/details.htm के अनुकूली छवि का विकल्प चुन सकते हैं , इसलिए आप आसानी से मूल छवि का उपयोग कर सकते हैं और जो चाहें कर सकते हैं।
आप छवियों को कैश करने का तरीका चुन सकते हैं, क्या आप छवियों को कम करने के लिए हानिपूर्ण या दोषरहित संपीड़न का उपयोग करना चाहते हैं, आदि।
क्या मुझे नए कस्टम पृथक एपीआई बनाने या भविष्य के उन्नयन के उद्देश्य के लिए देशी का विस्तार करने की आवश्यकता है?
मैं आपको अपना एपीआई बनाने की सलाह देता हूं जिसका उपयोग प्रस्तुति तर्क के लिए किया जाएगा, और आप 99.9% (मेरे अनुमान) सुनिश्चित करेंगे कि आप Magento2 API के भविष्य के उन्नयन से प्रभावित नहीं होंगे।
क्या आप CMS और Magento API को संयोजित करने के लिए एक अतिरिक्त परत का उपयोग करने की सलाह देते हैं?
अत्यधिक सिफारिशित। लेकिन, अतिरिक्त परत के लिए एक अतिरिक्त अनुप्रयोग नहीं होना चाहिए; यह एक Magento2 मॉड्यूल भी हो सकता है। इसके बारे में अच्छी बात यह है कि आप इसे वैसे ही जोड़ना चाहते हैं, जब आप चाहें; आप किसी भी भाषा / तकनीक का उपयोग करके अपनी प्रॉक्सी परत का निर्माण कर सकते हैं।
मैं अनुभव में अपनी वापसी को साझा करने के लिए आपकी सराहना करता हूं।
कई दृष्टिकोण हैं जो आप यहां उपयोग कर सकते हैं। मैं इस पर अपनी राय साझा करूंगा ।
माई अप्रोच टू हेडलेस
पहले, मैं इसे दो परतों में विभाजित करूंगा: प्रॉक्सी परत और प्रस्तुति परत ।
प्रॉक्सी परत
पहली बात जिस पर आपको विचार करना होगा, वह प्रॉक्सी लेयर के निर्माण के बारे में है। पर्दे के पीछे, आप मैगेंटो एपीआई, सीएमएस एपीआई, ईआरपी एपीआई, एक्स एपीआई का उपयोग कर सकते हैं, जो भी आप चाहते हैं ...
प्रॉक्सी लेयर में, आप जिस तरह से चाहें, डेटा का उपयोग और व्यवस्थित करने के लिए स्वतंत्र हैं। आप कैशिंग परत को लागू कर सकते हैं, साथ ही साथ डेटा स्वरूपण, ग्राहक ट्रैकिंग, विभिन्न ऑटोमैटाइजेशन, आदि के लिए अतिरिक्त कार्यशीलता भी कर सकते हैं। सामान्य तौर पर, प्रस्तुति परत में आसान-बाजीगरी के लिए आपको कुछ भी चाहिए।
प्रॉक्सी परत को PHP में कोडित करने की आवश्यकता नहीं है; इसे Java, NodeJS में कोडित किया जा सकता है, या आप संपूर्ण प्रॉक्सी लेयर प्रदान करने के लिए AWS API गेटवे, AWS SQS और लैंबडा का भी उपयोग कर सकते हैं, या इसका केवल एक हिस्सा।
आपके द्वारा उपयोग किए जा सकने वाले दृष्टिकोणों में से एक का वर्णन Fabrizio Branca द्वारा http://fbrnc.net/blog/2015/10/super-scaling-magento पर किया गया है
प्रस्तुति अंश
प्रस्तुति परत क्लाइंट प्लेटफ़ॉर्म पर निर्भर करती है; यदि आप मोबाइल ऐप के लिए इसका उपयोग करने जा रहे हैं, तो चीजें इस बारे में बहुत स्पष्ट हैं कि आपको प्रॉक्सी एपीआई का उपयोग कैसे करना चाहिए।
एक वेब एप्लिकेशन के लिए, कई संभावनाएं हैं। आप उपयोग कर सकते हैं:
- मानक PHP समाधान (किसी भी ढांचे द्वारा संचालित) जहाँ आप HTML उत्पादन प्रदान करने के लिए किसी भी PHP टेम्प्लेटिंग इंजन (जैसे कि स्मार्टी, ट्विग, ड्वो ...) का उपयोग कर सकते हैं।
- Java / NodeJS / जिस भी भाषा से आप परिचित हैं
- विशुद्ध रूप से जावास्क्रिप्ट आधारित समाधान, जो सभी HTML को रेंडर करेगा और डेटा के साथ इसे पॉप्युलेट करने के लिए ajax के माध्यम से उपयुक्त API को कॉल करेगा।
- ऊपर से उन दृष्टिकोणों का कोई हाइब्रिड / संयोजन
यह पुस्तक सूची द्वारा नहीं है , मैंने अभी कुछ संयोजन साझा किए हैं। वास्तव में, आपकी कल्पना ही एकमात्र सीमा है।
अंतिम विचार
जितना हो सके जावास्क्रिप्ट आधारित समाधान का उपयोग करें, क्योंकि यह ग्राहक को बेहतर अनुभव प्रदान कर सकता है, पेज लोड के लिए छोटे पेलोड, आप सट्टा डेटा लोड भी कर सकते हैं यदि आप ग्राहक के अगले कार्यों की भविष्यवाणी कर सकते हैं।
लेकिन, विशुद्ध रूप से जावास्क्रिप्ट समाधान के साथ समस्या एसईओ है। यदि आपके सभी डेटा को अजाक्स के माध्यम से लोड किया जाता है, तो Google शायद इसे पार्स नहीं कर पाएगा।
समाधान एक हाइब्रिड ऐप बनाना है जो पहले लोड होने पर पूरे HTML पृष्ठ की सेवा करेगा, उदाहरण के लिए जब आप हिट / कैटलॉग / जूते। साइट के माध्यम से किसी भी अन्य नेविगेशन के लिए, आप केवल आवश्यक ब्लॉकों को लाने के लिए अजाक्स का उपयोग कर सकते हैं।
दृष्टिकोणों में से एक आपके पेज का स्नैपशॉट बना रहा होगा, उदाहरण के लिए PhantomJS का उपयोग करके । इसके लिए कुछ सशुल्क समाधान भी हैं, जैसे: