ई-कॉमर्स (WooCommerce और Magento)
अपने WooCommerce या Magento स्टोर से ग्राहकों और ऑर्डर को CRM के साथ सिंक करें, अपने ही स्टोर का उपयोग करते हुए (BYO मॉडल)।
Shopify के अलावा, CRM WooCommerce और Magento स्टोर भी सिंक करता है (BYO मॉडल: आप अपना स्टोर खुद लाते हैं)। हर ग्राहक एक संपर्क (Contact) बन जाता है और हर ऑर्डर एक सेल्स ऑर्डर बन जाता है। हमारी तरफ से कोई लागत, मार्जिन या मध्यस्थता नहीं है: डेटा सीधे आपके स्टोर से आता है। इंटीग्रेशन शुरुआत में निष्क्रिय रहता है: जब तक आप फ़ील्ड नहीं भरते और सक्रिय नहीं करते, तब तक कुछ नहीं होता। secrets CRM में एन्क्रिप्टेड रूप में सहेजे जाते हैं और कभी वापस नहीं दिखाए जाते।
पूर्वापेक्षाएं
- WooCommerce: एडमिनिस्ट्रेटर एक्सेस वाला एक WordPress/WooCommerce स्टोर (WooCommerce → Settings → Advanced → Webhooks में webhooks बनाने के लिए)।
- Magento (Adobe Commerce): हर ग्राहक/ऑर्डर के लिए JSON POST करने वाला एक मॉड्यूल, इंटीग्रेशन या observer इंस्टॉल/कॉन्फ़िगर करने की पहुंच (Magento में मानकीकृत नेटिव webhooks नहीं होते)।
- Sellio में, Settings → Integrations में क्रेडेंशियल सहेजने और इंटीग्रेशन सक्रिय करने के लिए एडमिनिस्ट्रेटर एक्सेस।
WooCommerce
WooCommerce नेटिव webhooks भेजता है। आप अपने स्टोर में CRM URL की ओर इशारा करते हुए webhooks बनाते हैं और एक "Secret" परिभाषित करते हैं; WooCommerce उस secret से हर कॉल पर हस्ताक्षर करता है (HMAC-SHA256, हेडर X-WC-Webhook-Signature) और CRM सिंक करने से पहले हस्ताक्षर सत्यापित करता है।
- CRM में, Settings → Integrations खोलें और "ई-कॉमर्स (WooCommerce)" कार्ड ढूंढें।
- स्टोर URL (वैकल्पिक, केवल संदर्भ के लिए) और एक Webhook secret (आपकी पसंद की एक स्ट्रिंग) भरें और "क्रेडेंशियल सहेजें" पर क्लिक करें।
- दिखने वाला "वेबहुक URL (WooCommerce)" कॉपी करें।
- अपने स्टोर में, WooCommerce → Settings → Advanced → Webhooks पर जाएं और इन में से हर विषय के लिए एक webhook बनाएं: Customer created, Customer updated, Order created, Order updated। हर एक में, CRM URL को Delivery URL के रूप में पेस्ट करें और CRM में सहेजे गए उसी Secret का उपयोग करें।
- CRM पर वापस जाएं और "Activate" पर क्लिक करें।
Magento (Adobe Commerce)
Magento में मानकीकृत नेटिव webhooks नहीं होते। आप एक मॉड्यूल/इंटीग्रेशन (या एक observer) कॉन्फ़िगर करते हैं जो हर ग्राहक या ऑर्डर के लिए CRM URL पर JSON POST करता है। POST एक secret से प्रमाणित होता है, दो संभावित तरीकों से (जो भी आपका मॉड्यूल सपोर्ट करे उसका उपयोग करें): X-Magento-Signature हेडर में बॉडी का base64 में HMAC-SHA256 हस्ताक्षर, या X-Magento-Secret हेडर में plain text में स्वयं secret।
- CRM में, Settings → Integrations खोलें और "ई-कॉमर्स (Magento)" कार्ड ढूंढें।
- स्टोर URL (वैकल्पिक) और एक Authentication secret (आपकी पसंद की एक स्ट्रिंग) भरें और "क्रेडेंशियल सहेजें" पर क्लिक करें।
- दिखने वाला "वेबहुक URL (Magento)" कॉपी करें।
- अपने Magento मॉड्यूल/इंटीग्रेशन को हर ग्राहक और ऑर्डर के लिए उस URL पर POST (JSON) करने के लिए कॉन्फ़िगर करें, X-Magento-Signature हेडर (HMAC हस्ताक्षर) या X-Magento-Secret (plain मान) में secret भेजते हुए।
- CRM पर वापस जाएं और "Activate" पर क्लिक करें।
Magento द्वारा अपेक्षित JSON फॉर्मेट। ग्राहकों के लिए: { "type": "customer", "id", "email", "firstname", "lastname", "telephone", "street", "city", "region", "country_id" }। ऑर्डर के लिए: { "type": "order", "increment_id" (या "entity_id"), "grand_total", "order_currency_code", "status", "customer_email", "customer_id", "customer_firstname", "customer_lastname" }। "type" फ़ील्ड (customer या order) मैपिंग तय करता है; गायब फ़ील्ड खाली हो जाते हैं।
हर घटना पर क्या होता है
- ग्राहक (Woo में customer.created/updated; Magento में type "customer"): ग्राहक को ईमेल से मिलान करके एक संपर्क (Contact) के रूप में बनाया या अपडेट किया जाता है। CRM पुनः-वितरण पर डुप्लिकेट से बचने के लिए स्टोर ग्राहक id (woo_customer_id / magento_customer_id) सहेजता है।
- ऑर्डर (Woo में order.created/updated; Magento में type "order"): ऑर्डर को एक सेल्स ऑर्डर (नंबर, राशि, मुद्रा और स्थिति) के रूप में बनाया या अपडेट किया जाता है, और जब मौजूद हो तो संबंधित संपर्क से जोड़ा जाता है। Woo में, "completed" "invoiced" बन जाता है और "cancelled/refunded/failed" "canceled" बन जाता है; Magento में, "complete/closed/invoiced" "invoiced" बन जाता है और "canceled/holded" "canceled" बन जाता है; बाकी "confirmed" बन जाते हैं।
webhook URLs और secrets को गुप्त मानें। अमान्य हस्ताक्षर/secret वाली कॉल अस्वीकार कर दी जाती हैं। अगर आप secret भरे बिना सक्रिय करने की कोशिश करते हैं, तो इंटीग्रेशन निष्क्रिय रहता है, और जब तक सब कुछ सही जगह पर नहीं है, तब तक कुछ भी सिंक नहीं होता।
परीक्षण कैसे करें
- WooCommerce: WooCommerce → Settings → Advanced → Webhooks में, एक webhook एडिट करें और एक टेस्ट ग्राहक/ऑर्डर बनाने के बाद "Webhook logs" जांचें; CRM में, Contacts/Sales orders जांचें।
- Magento: एक टेस्ट ग्राहक और ऑर्डर के लिए अपना observer/इंटीग्रेशन ट्रिगर करें (JSON POST "type" फ़ील्ड के साथ) और CRM में रिकॉर्ड जांचें।
- वही घटना फिर से भेजें और पुष्टि करें कि CRM अपडेट करता है (डुप्लिकेट नहीं करता), क्योंकि की बाहरी id है।
समस्या निवारण
- WooCommerce: invalid signature: स्टोर में webhook "Secret" CRM में सहेजे गए Webhook secret के बिल्कुल बराबर होना चाहिए (HMAC-SHA256, हेडर X-WC-Webhook-Signature)। दोनों तरफ वही मान फिर से दर्ज करें।
- Magento: कॉल अस्वीकृत: secret सही तरीके से भेजें, या तो X-Magento-Signature हेडर में बॉडी का base64 में HMAC-SHA256, या X-Magento-Secret हेडर में plain secret (जो भी आपका मॉड्यूल सपोर्ट करे उसका उपयोग करें)।
- सिंक नहीं होता: पुष्टि करें कि webhooks/POSTs ग्राहक और ऑर्डर दोनों (created/updated) को कवर करते हैं और सही "वेबहुक URL" की ओर इशारा करते हैं; पुष्टि करें कि इंटीग्रेशन सक्रिय है।
- Magento: CRM में खाली फ़ील्ड: अपेक्षित JSON को सत्यापित करें (customer: id/email/firstname/lastname...; order: increment_id/grand_total/order_currency_code/status/customer_email...)। "type" फ़ील्ड (customer/order) मैपिंग तय करता है।
- URL पर 404: इंटीग्रेशन निष्क्रिय है या टोकन बदल गया है। फिर से सक्रिय करें और URL फिर से कॉपी करें।