ई-कॉमर्स (Shopify)
अपने Shopify स्टोर से ग्राहकों और ऑर्डर को CRM के साथ सिंक करें, अपने ही स्टोर का उपयोग करते हुए (BYO मॉडल)।
ई-कॉमर्स इंटीग्रेशन आपके अपने Shopify स्टोर का उपयोग करता है (BYO मॉडल: आप अपना स्टोर खुद लाते हैं)। यह आपके स्टोर के webhooks सुनता है और CRM के साथ सिंक करता है: हर ग्राहक एक संपर्क (Contact) बन जाता है और हर ऑर्डर एक सेल्स ऑर्डर बन जाता है। हमारी तरफ से कोई लागत, मार्जिन या मध्यस्थता नहीं है: डेटा सीधे आपके स्टोर से आता है।
इंटीग्रेशन शुरुआत में निष्क्रिय रहता है: जब तक आप फ़ील्ड नहीं भरते और सक्रिय नहीं करते, तब तक कुछ नहीं होता। webhook secret और admin token CRM में एन्क्रिप्टेड रूप में सहेजे जाते हैं और कभी वापस नहीं दिखाए जाते।
पूर्वापेक्षाएं
- webhooks बनाने और signing secret देखने के लिए एडमिनिस्ट्रेटर एक्सेस (Shopify Admin) वाला एक Shopify स्टोर।
- स्टोर का .myshopify.com डोमेन।
- Sellio में, Settings → Integrations में क्रेडेंशियल सहेजने और इंटीग्रेशन सक्रिय करने के लिए एडमिनिस्ट्रेटर एक्सेस।
आपको क्या भरना होगा
- स्टोर डोमेन: आपके स्टोर का .myshopify.com पता (जैसे, mystore.myshopify.com)।
- Webhook secret (API secret): वह secret जो Shopify webhooks को साइन करने के लिए उपयोग करता है। Shopify Admin → Settings → Notifications में webhooks का "signing secret" दिखता है (या, अगर आप अपना खुद का ऐप उपयोग करते हैं, तो उसका API secret)। यही वह मान है जिसका उपयोग CRM हर कॉल के हस्ताक्षर (HMAC) को सत्यापित करने के लिए करता है।
- Admin API access token (वैकल्पिक): केवल तभी आवश्यक है जब भविष्य में आप चाहें कि CRM API के माध्यम से स्टोर डेटा पढ़े। सिर्फ webhooks पाने के लिए, इसे खाली छोड़ें।
कैसे कॉन्फ़िगर करें
- Settings → Integrations खोलें और "ई-कॉमर्स (Shopify)" कार्ड ढूंढें।
- स्टोर डोमेन और webhook secret भरें और "क्रेडेंशियल सहेजें" पर क्लिक करें।
- दिखने वाला "वेबहुक URL (Shopify)" कॉपी करें।
- Shopify Admin → Settings → Notifications → Webhooks में, इन में से हर विषय के लिए उस URL की ओर इशारा करता एक webhook (JSON फॉर्मेट) बनाएं: customers/create, customers/update, orders/create, orders/paid।
- CRM पर वापस जाएं और "Activate" पर क्लिक करें।
हर घटना पर क्या होता है
- customers/create और customers/update: ग्राहक को ईमेल से मिलान करके एक संपर्क (Contact) के रूप में बनाया या अपडेट किया जाता है। CRM पुनः-वितरण (redelivery) पर डुप्लिकेट से बचने के लिए Shopify ग्राहक id सहेजता है।
- orders/create और orders/paid: ऑर्डर को एक सेल्स ऑर्डर (नंबर, राशि, मुद्रा और स्थिति) के रूप में बनाया या अपडेट किया जाता है, और जब मौजूद हो तो संबंधित संपर्क से जोड़ा जाता है। ऑर्डर भुगतान होने पर स्थिति "invoiced" हो जाती है, रद्द होने पर "canceled", अन्यथा "confirmed"।
webhook URL और webhook secret को गुप्त मानें। CRM हर कॉल के X-Shopify-Hmac-Sha256 हस्ताक्षर को आपके webhook secret से सत्यापित करता है; अमान्य हस्ताक्षर अस्वीकार कर दिए जाते हैं। अगर आप secret भरे बिना सक्रिय करने की कोशिश करते हैं, तो इंटीग्रेशन निष्क्रिय रहता है, और जब तक सब कुछ सही जगह पर नहीं है, तब तक कुछ भी सिंक नहीं होता।
परीक्षण कैसे करें
- इंटीग्रेशन सक्रिय होने और webhooks बन जाने के बाद, Shopify Admin → Settings → Notifications → Webhooks में, किसी webhook पर "Send test notification" का उपयोग करें (या स्टोर में एक टेस्ट ऑर्डर/ग्राहक बनाएं)।
- CRM में, Contacts ऑब्जेक्ट (ग्राहकों के लिए) और Sales orders (ऑर्डर के लिए) जांचें: संबंधित रिकॉर्ड दिखना चाहिए।
- वही टेस्ट फिर से भेजें और पुष्टि करें कि यह डुप्लिकेट नहीं होता। CRM Shopify id से रिकॉर्ड की पहचान करता है।
समस्या निवारण
- Invalid signature (कॉल अस्वीकृत): CRM में सहेजा गया webhook secret Shopify के signing secret से अलग है। secret फिर से कॉपी करें (Settings → Notifications, या आपके ऐप का API secret) और उसे CRM में पेस्ट करें।
- कुछ भी सिंक नहीं होता: पुष्टि करें कि आपने हर विषय के लिए एक webhook (JSON फॉर्मेट) बनाया है: customers/create, customers/update, orders/create, orders/paid, सभी "वेबहुक URL (Shopify)" की ओर इशारा करते हुए।
- URL पर 404: इंटीग्रेशन निष्क्रिय है या URL टोकन बदल गया है। फिर से सक्रिय करें और URL को Shopify में फिर से कॉपी करें।
- बिना जुड़े संपर्क वाला ऑर्डर: लिंक ग्राहक के ईमेल से मेल खाता है; अगर ग्राहक अभी तक संपर्क के रूप में मौजूद नहीं है, तो ऑर्डर बिना लिंक के बनाया जाता है और आप इसे बाद में जोड़ सकते हैं।
- जो फ़ील्ड मैंने एडिट किए वे ओवरराइट हो गए: केवल स्टोर से आने वाले फ़ील्ड अपडेट होते हैं; बाकी सुरक्षित रहता है। अगर कोई स्टोर फ़ील्ड बदल गया, तो यह डिज़ाइन के अनुसार स्टोर को दर्शाता है।