WooCommerce इंटीग्रेशन गाइड
यह गाइड एक WooCommerce स्टोर को Tajo से कनेक्ट करती है. इंटीग्रेशन के दो हिस्से हैं जो साथ मिलकर काम करते हैं:
- Tajo for WooCommerce प्लगइन: WordPress के भीतर रीयल-टाइम एंगेजमेंट इवेंट (ऑर्डर, कार्ट, रिफ़ंड, रिव्यू, फ़ॉर्म सबमिशन) कैप्चर करता है और उन्हें एक टिकाऊ, साइन किए गए आउटबॉक्स के ज़रिए Tajo तक पहुंचाता है.
- WooCommerce REST कनेक्शन: Tajo ऐतिहासिक इंपोर्ट और चलते रहने वाले सिंक के लिए आपके स्टोर के ग्राहक, ऑर्डर, प्रोडक्ट, कूपन, रिफ़ंड और रिव्यू पढ़ता है. केवल REST वाले सेटअप के लिए WooCommerce कनेक्टर संदर्भ देखें.
मार्केटिंग ऑटोमेशन ख़ुद (Brevo और अन्य प्रोवाइडर के ज़रिए ईमेल, SMS, WhatsApp) Tajo में कॉन्फ़िगर होता है, प्लगइन में नहीं. प्लगइन का काम WordPress से भरोसेमंद इवेंट बाहर निकालना है.
पूर्वापेक्षाएं
- एडमिन एक्सेस के साथ WordPress 6.3+
- PHP 7.4+
- WooCommerce 7.0+ (प्लगइन WooCommerce के बिना वाली WordPress साइटों पर भी काम करता है, कॉमर्स अडैप्टर बस निष्क्रिय रहते हैं)
- WordPress कनेक्शन बनाए गए Tajo अकाउंट
- Tajo एंडपॉइंट पर HTTPS (होस्टेड Tajo में हमेशा सही)
चरण 1: Tajo for WooCommerce प्लगइन इंस्टॉल करें
मैन्युअल इंस्टॉलेशन
# Download the plugincd wp-content/pluginswget https://tajo.io/downloads/woocommerce/tajo-woocommerce-latest.zip
# Verify and unzipunzip tajo-woocommerce-latest.zipफिर WordPress एडमिन से सक्रिय करें:
- Plugins → Installed Plugins पर जाएं
- “Tajo for WooCommerce” खोजें
- Activate पर क्लिक करें
आप zip को सीधे Plugins → Add New → Upload Plugin के ज़रिए भी अपलोड कर सकते हैं. हर रिलीज़ के साथ tajo.io/downloads/woocommerce/ पर एक SHA-256 चेकसम प्रकाशित होता है. प्लगइन अभी WordPress.org डायरेक्टरी में सूचीबद्ध नहीं है, आज मैन्युअल इंस्टॉलेशन ही समर्थित रास्ता है.
चरण 2: कनेक्शन कॉन्फ़िगर करें
WooCommerce → Tajo पर जाएं (WooCommerce के बिना वाली साइटों पर: Settings → Tajo) और अपने Tajo WordPress कनेक्शन से तीनों मान डालें:
| फ़ील्ड | मान |
|---|---|
| Tajo एंडपॉइंट | Tajo में दिखाया गया HTTPS वेबहुक URL, जैसे https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement |
| Binding ID | Tajo से कनेक्शन का binding ID |
| साइनिंग सीक्रेट | साझा सीक्रेट (32–256 वर्ण). प्लगइन सक्रिय होते ही एक मज़बूत लोकल सीक्रेट बनाता है, उसे Tajo में पेस्ट करें, या Tajo का सीक्रेट यहां पेस्ट करें |
wp-config.php में जोड़ने के लिए कोई API-key कॉन्स्टेंट नहीं है. तीनों मान सेव होने तक इवेंट लोकल आउटबॉक्स में सुरक्षित रूप से कतार में रहते हैं.
फिर पूरी पाइप शुरू से आख़िर तक जांचें:
- Queue test event पर क्लिक करें, फिर Process now.
- डिलीवरी आउटबॉक्स टेबल में इवेंट डिलीवर हुआ दिखना चाहिए.
- Tajo में पुष्टि करें कि
connection.testइवेंट WordPress कनेक्शन पर पहुंचा.
प्लगइन क्या भेजता है
हर इवेंट एक कॉम्पैक्ट, प्राइवेसी-मिनिमाइज़्ड एनवेलप होता है जिसे HMAC-SHA256 से साइन किया जाता है. WordPress से केवल एंगेजमेंट पहचान फ़ील्ड (ईमेल, फ़ोन, लोकल ID) और सीमित इवेंट मेटाडेटा बाहर जाते हैं, नाम, डाक पते, IP पते, यूज़र एजेंट, कमेंट की सामग्री, मनमाने फ़ॉर्म फ़ील्ड, ऑर्डर नोट्स या पेमेंट विवरण कभी नहीं.
WooCommerce इवेंट
| हुक | इवेंट |
|---|---|
woocommerce_created_customer / woocommerce_update_customer | customer.created / customer.updated |
woocommerce_new_product / woocommerce_update_product | product.created / product.updated |
woocommerce_add_to_cart, आइटम हटाना, कूपन लगाना/हटाना | cart.updated (छोड़े गए कार्ट के फ़्लो के लिए कार्ट सारांश के साथ) |
woocommerce_cart_emptied | cart.emptied |
woocommerce_new_order / woocommerce_update_order | order.placed / order.updated |
woocommerce_order_status_changed | order.status_changed (पूरा होने पर + order.fulfilled) |
woocommerce_payment_complete | order.paid |
woocommerce_order_refunded | refund.created |
| WooCommerce Subscriptions स्थिति अपडेट | subscription.status_changed |
ऑर्डर इवेंट में ऑर्डर नंबर, स्थिति, करेंसी, कुल राशि, लाइन आइटम और तुरंत इस्तेमाल लायक रिव्यू/रीऑर्डर URL होते हैं, यानी खरीद के बाद और विन-बैक ऑटोमेशन के लिए बिना किसी अतिरिक्त API कॉल के पर्याप्त.
WordPress इवेंट
- यूज़र अकाउंट के लिए
contact.created/contact.updated/contact.deleted - सार्वजनिक कंटेंट के लिए
content.published/content.updated/content.unpublished - विज़िटर कमेंट और प्रोडक्ट रिव्यू के लिए
comment.created/comment.status_changed(WooCommerce के आंतरिक ऑर्डर नोट्स, pingback और trackback कभी नहीं भेजे जाते) - सफल Contact Form 7, WPForms, Gravity Forms और Fluent Forms सबमिशन के लिए
form.submitted. केवल टाइप किए गए ईमेल/फ़ोन पहचान फ़ील्ड और फ़ॉर्म मेटाडेटा निकाले जाते हैं, मनमाने सबमिट किए गए फ़ील्ड हटा दिए जाते हैं
भरोसेमंदी: डिलीवरी आउटबॉक्स
प्लगइन कभी भी पेज लोड से सीधे Tajo पर इवेंट नहीं दागता. हर इवेंट पहले एक लोकल आउटबॉक्स टेबल में लिखा जाता है, फिर WP-Cron उसे इनके साथ डिलीवर करता है:
- सीमित एक्सपोनेंशियल बैकऑफ़ (अधिकतम 8 कोशिशें,
Retry-Afterका पालन करते हुए) - एडमिन में एक क्लिक वाले Replay dead letters के साथ dead letter
- रिटेंशन सीमाएं, ताकि पहुंच से बाहर कोई एंडपॉइंट कभी निजी डेटा जमा न कर सके (डिलीवर: 7 दिन, कतार में: 30 दिन, dead letter: आख़िरी अपडेट के 30 दिन बाद)
- आइडेम्पोटेंट इवेंट ID, ताकि रीट्राई और रीप्ले डाउनस्ट्रीम कभी डुप्लिकेट न बनाएं
अगर आपका होस्ट WP-Cron बंद कर देता है (DISABLE_WP_CRON), तो wp-cron.php को किसी असली शेड्यूलर से हर मिनट में कम से कम एक बार चलाएं.
सहमति कभी मानी नहीं जाती
अकाउंट बनाना, चेकआउट, खरीद और सामान्य फ़ॉर्म सबमिशन मार्केटिंग सहमति नहीं माने जाते. बिल्ट-इन इवेंट में सहमति की सूची खाली रहती है. स्पष्ट सहमति दर्ज करने के लिए (उदाहरण के लिए चेक किए गए न्यूज़लेटर बॉक्स से), उसे एक्सटेंशन हुक के ज़रिए भेजें:
do_action( 'tajo_engagement_emit', 'consent.updated', array( 'email' => $email ), array( 'policyVersion' => '2026-07' ), array( array( 'channel' => 'email', 'status' => 'opt_in', // or 'opt_out' 'purpose' => 'marketing', 'source' => 'newsletter_checkbox', 'evidence' => array( 'formId' => 'newsletter-footer', 'field' => 'marketing_email' ), ), ), gmdate( 'c' ));यही हुक किसी भी प्लगइन या थीम को कस्टम इवेंट भेजने देता है, सब कुछ उसी सैनिटाइज़र, आउटबॉक्स और सिग्नेचर से होकर गुज़रता है.
चरण 3: ऐतिहासिक इंपोर्ट
रीयल-टाइम इवेंट इंस्टॉलेशन के बाद का सब कुछ कवर करते हैं. प्लगइन से पहले के इतिहास के लिए Tajo का WooCommerce REST कनेक्शन मौजूदा ग्राहक, ऑर्डर, प्रोडक्ट, कूपन, रिफ़ंड और रिव्यू इंपोर्ट करता है, जो पूरी तरह Tajo की तरफ़ एक WooCommerce REST API की (WooCommerce → Settings → Advanced → REST API, रीड अनुमति) से कॉन्फ़िगर होता है. विवरण के लिए WooCommerce कनेक्टर संदर्भ देखें.
प्राइवेसी और GDPR
- प्लगइन WordPress के Tools → Export Personal Data और Tools → Erase Personal Data के साथ रजिस्टर होता है, मेल खाते ईमेल के लिए रखे गए आउटबॉक्स इवेंट लोकल स्तर पर एक्सपोर्ट या मिटा दिए जाते हैं.
- मिटाने और डिलीवरी में एक फ़ेल-क्लोज़्ड म्यूटेक्स साझा होता है, इसलिए कोई मिटाने की प्रक्रिया तब पूरी होने की सूचना नहीं दे सकती जब कोई पेलोड बीच रास्ते में हो.
- लोकल मिटाना केवल WordPress आउटबॉक्स को कवर करता है, डाउनस्ट्रीम डेटा के लिए Tajo में उससे जुड़ा अनुरोध डालें.
- निष्क्रिय करने से डिलीवरी रुकती है पर कॉन्फ़िगरेशन और कतार में रखे इवेंट बने रहते हैं, प्लगइन को डिलीट करने से आउटबॉक्स, सेटिंग्स, सीक्रेट और शेड्यूल हमेशा के लिए हट जाते हैं.
कम्पैटिबिलिटी
- HPOS: प्लगइन WooCommerce High-Performance Order Storage कम्पैटिबिलिटी घोषित करता है और केवल CRUD ऑब्जेक्ट और सार्वजनिक हुक इस्तेमाल करता है.
- WooCommerce Subscriptions: एक्सटेंशन सक्रिय होने पर सब्सक्रिप्शन की स्थिति के बदलाव कैप्चर होते हैं.
- Multisite: अनइंस्टॉल नेटवर्क की हर साइट को साफ़ करता है.
ऑपरेशंस संदर्भ
सर्वर-टू-सर्वर डिस्कवरी और आउटबॉक्स नियंत्रण एडमिन को Application Password ऑथेंटिकेशन के ज़रिए उपलब्ध हैं:
| मेथड | रूट | उद्देश्य |
|---|---|---|
GET | /wp-json/tajo/v1/capabilities | प्लगइन वर्शन, पहचाने गए अडैप्टर, इवेंट सूची, आउटबॉक्स की सेहत |
GET | /wp-json/tajo/v1/outbox | आउटबॉक्स गिनती (पेलोड कभी उजागर नहीं होते) |
POST | /wp-json/tajo/v1/outbox/process | एक बैच तुरंत प्रोसेस करें |
POST | /wp-json/tajo/v1/outbox/replay | dead letter दोबारा भेजें |
समस्या निवारण
| लक्षण | कारण और समाधान |
|---|---|
| इवेंट “Queued” पर अटके रहते हैं | एंडपॉइंट, binding ID या सीक्रेट अभी सेव नहीं हुआ, तीनों कॉन्फ़िगर होने तक डिलीवरी रुकी रहती है |
| इवेंट “Retrying” पर अटके रहते हैं | Tajo एंडपॉइंट आपके होस्ट से पहुंच में नहीं है, या WP-Cron नहीं चल रहा. आउटबॉक्स टेबल का एरर कॉलम और अपना cron सेटअप जांचें |
| dead letter जमा हो रहे हैं | कोई ऐसा एरर जिस पर दोबारा कोशिश नहीं होती (आमतौर पर ग़लत binding ID या सीक्रेट). कॉन्फ़िगरेशन ठीक करें, फिर Replay dead letters चलाएं |
| ”Enter a valid HTTPS Tajo webhook endpoint” | एंडपॉइंट HTTPS होना चाहिए और उसमें क्रेडेंशियल एम्बेड नहीं होने चाहिए |
| टेस्ट इवेंट डिलीवर हुआ पर Tajo में कुछ नहीं | जांचें कि आपने binding ID उसी Tajo वर्कस्पेस/कनेक्शन से पेस्ट किया है जिससे एंडपॉइंट जुड़ा है |
अगले कदम
- WooCommerce कनेक्टर संदर्भ: REST सिंक, वेबहुक सिग्नेचर का विवरण, config key
- कस्टमर सिंक: WooCommerce ग्राहकों को आपके सिस्टम ऑफ़ रिकॉर्ड में मैप करना
- Tajo में
cart.updated,order.placedऔरorder.fulfilledइवेंट का उपयोग करके छोड़े गए कार्ट, खरीद के बाद और विन-बैक ऑटोमेशन कॉन्फ़िगर करें