WooCommerce انٹیگریشن گائیڈ
یہ گائیڈ ایک WooCommerce اسٹور کو Tajo سے جوڑتی ہے۔ انٹیگریشن کے دو حصے ہیں جو مل کر کام کرتے ہیں:
- Tajo for WooCommerce پلگ ان: WordPress کے اندر ریئل ٹائم انگیجمنٹ ایونٹس (آرڈرز، کارٹس، ریفنڈز، ریویوز، فارم سبمیشنز) پکڑتا ہے اور انہیں ایک پائیدار، دستخط شدہ آؤٹ باکس کے ذریعے Tajo تک پہنچاتا ہے۔
- WooCommerce REST کنکشن: Tajo تاریخی امپورٹ اور مسلسل سنک کے لیے آپ کے اسٹور کے گاہک، آرڈرز، پروڈکٹس، کوپنز، ریفنڈز اور ریویوز پڑھتا ہے۔ صرف REST والے سیٹ اپ کے لیے WooCommerce کنیکٹر ریفرنس دیکھیں۔
مارکیٹنگ آٹومیشن خود (Brevo اور دیگر فراہم کنندگان کے ذریعے ای میل، SMS، واٹس ایپ) پلگ ان میں نہیں بلکہ 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 webhook URL، مثلاً https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement |
| Binding ID | Tajo میں موجود کنکشن کا binding ID |
| سائننگ سیکرٹ | مشترکہ سیکرٹ (32–256 حروف)۔ پلگ ان فعال ہوتے وقت ایک مضبوط مقامی سیکرٹ بناتا ہے؛ اسے Tajo میں پیسٹ کریں، یا Tajo کا سیکرٹ یہاں پیسٹ کریں |
wp-config.php میں شامل کرنے کے لیے کوئی API کلید کا constant نہیں ہے۔ جب تک تینوں ویلیوز محفوظ نہ ہو جائیں، ایونٹس مقامی آؤٹ باکس میں محفوظ طریقے سے قطار میں رہتے ہیں۔
پھر پائپ کو سرے سے سرے تک جانچیں:
- Queue test event پر کلک کریں، پھر Process now پر۔
- ڈیلیوری آؤٹ باکس ٹیبل میں ایونٹ ڈیلیور شدہ نظر آنا چاہیے۔
- Tajo میں تصدیق کریں کہ
connection.testایونٹ WordPress کنکشن پر پہنچ گیا ہے۔
پلگ ان کیا بھیجتا ہے
ہر ایونٹ ایک مختصر، پرائیویسی کے لحاظ سے کم سے کم رکھا گیا لفافہ ہے جس پر HMAC-SHA256 سے دستخط ہوتے ہیں۔ WordPress سے صرف انگیجمنٹ کی شناختی فیلڈز (ای میل، فون، مقامی IDs) اور محدود ایونٹ میٹا ڈیٹا باہر جاتا ہے؛ نام، ڈاک کے پتے، IP ایڈریسز، یوزر ایجنٹس، کمنٹ کے متن، من مانی فارم فیلڈز، آرڈر نوٹس یا ادائیگی کی تفصیلات کبھی باہر نہیں جاتیں۔
WooCommerce ایونٹس
| Hook | ایونٹ |
|---|---|
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 |
آرڈر ایونٹس آرڈر نمبر، اسٹیٹس، کرنسی، کل رقوم، لائن آئٹمز اور استعمال کے لیے تیار ریویو/دوبارہ آرڈر URLs ساتھ لاتے ہیں، جو خریداری کے بعد اور واپس لانے والی آٹومیشنز کے لیے کسی اضافی API کال کے بغیر کافی ہیں۔
WordPress ایونٹس
- یوزر اکاؤنٹس کے لیے
contact.created/contact.updated/contact.deleted - عوامی مواد کے لیے
content.published/content.updated/content.unpublished - وزیٹر کمنٹس اور پروڈکٹ ریویوز کے لیے
comment.created/comment.status_changed(WooCommerce کے اندرونی آرڈر نوٹس، pingbacks اور trackbacks کبھی نہیں بھیجے جاتے) - کامیاب Contact Form 7، WPForms، Gravity Forms اور Fluent Forms سبمیشنز کے لیے
form.submitted؛ صرف ٹائپ شدہ ای میل/فون کی شناختی فیلڈز اور فارم میٹا ڈیٹا نکالا جاتا ہے، من مانی بھیجی گئی فیلڈز رد کر دی جاتی ہیں
قابلِ اعتماد ہونا: ڈیلیوری آؤٹ باکس
پلگ ان کبھی بھی صفحہ لوڈ ہوتے وقت ایونٹس براہ راست Tajo کو نہیں بھیجتا۔ ہر ایونٹ پہلے مقامی آؤٹ باکس ٹیبل میں لکھا جاتا ہے، پھر WP-Cron اسے ان خصوصیات کے ساتھ ڈیلیور کرتا ہے:
- محدود ایکسپونینشل بیک آف (
Retry-Afterکا لحاظ رکھتے ہوئے زیادہ سے زیادہ 8 کوششیں) - ڈیڈ لیٹرز، ایڈمن میں ایک کلک والے Replay dead letters کے ساتھ
- ریٹینشن کی حدیں تاکہ ناقابلِ رسائی اینڈ پوائنٹ کبھی ذاتی ڈیٹا جمع نہ کر سکے (ڈیلیور شدہ: 7 دن؛ قطار میں: 30 دن؛ ڈیڈ لیٹرز: آخری اپ ڈیٹ کے 30 دن بعد)
- Idempotent ایونٹ IDs، تاکہ دوبارہ کوششیں اور ری پلے آگے کبھی نقل نہ بنائیں
اگر آپ کا ہوسٹ WP-Cron بند کر دیتا ہے (DISABLE_WP_CRON)، تو wp-cron.php کو کسی حقیقی شیڈیولر سے کم از کم ہر منٹ میں ایک بار چلائیں۔
رضامندی کبھی فرض نہیں کی جاتی
اکاؤنٹ بنانا، چیک آؤٹ، خریداری اور عام فارم سبمیشنز کو مارکیٹنگ کی رضامندی نہیں سمجھا جاتا۔ بلٹ ان ایونٹس خالی رضامندی کی فہرست ساتھ لاتے ہیں۔ واضح رضامندی (مثلاً نیوز لیٹر کے ٹک شدہ باکس سے) ریکارڈ کرنے کے لیے اسے ایکسٹینشن hook کے ذریعے بھیجیں:
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' ));یہی hook کسی بھی پلگ ان یا تھیم کو اپنی مرضی کے ایونٹس بھیجنے دیتا ہے؛ ہر چیز اسی سینیٹائزر، آؤٹ باکس اور دستخط سے گزرتی ہے۔
مرحلہ 3: تاریخی امپورٹ
ریئل ٹائم ایونٹس انسٹالیشن کے بعد کی ہر چیز کا احاطہ کرتے ہیں۔ پلگ ان سے پہلے کی تاریخ کے لیے Tajo کا WooCommerce REST کنکشن موجودہ گاہک، آرڈرز، پروڈکٹس، کوپنز، ریفنڈز اور ریویوز امپورٹ کرتا ہے، جو مکمل طور پر Tajo کی طرف ایک WooCommerce REST API کلید سے کنفیگر ہوتا ہے (WooCommerce → Settings → Advanced → REST API، پڑھنے کی اجازت)۔ تفصیلات کے لیے WooCommerce کنیکٹر ریفرنس دیکھیں۔
پرائیویسی اور GDPR
- پلگ ان WordPress کے Tools → Export Personal Data اور Tools → Erase Personal Data کے ساتھ رجسٹر ہوتا ہے؛ کسی مماثل ای میل کے محفوظ آؤٹ باکس ایونٹس مقامی طور پر ایکسپورٹ یا مٹا دیے جاتے ہیں۔
- مٹانے اور ڈیلیوری کے درمیان ایک fail-closed میوٹیکس مشترک ہے، اس لیے کوئی مٹانے کا عمل اُس وقت مکمل ہونے کی اطلاع نہیں دے سکتا جب کوئی پے لوڈ بھیجا جا رہا ہو۔
- مقامی مٹانا صرف WordPress آؤٹ باکس کا احاطہ کرتا ہے۔ آگے کے ڈیٹا کے لیے متعلقہ درخواست Tajo میں جمع کرائیں۔
- غیر فعال کرنے سے ڈیلیوری رک جاتی ہے مگر کنفیگریشن اور قطار میں موجود ایونٹس محفوظ رہتے ہیں؛ پلگ ان کو ڈیلیٹ کرنے سے آؤٹ باکس، سیٹنگز، سیکرٹ اور شیڈولز مستقل طور پر ختم ہو جاتے ہیں۔
مطابقت
- HPOS: پلگ ان WooCommerce High-Performance Order Storage سے مطابقت کا اعلان کرتا ہے اور صرف CRUD آبجیکٹس اور عوامی hooks استعمال کرتا ہے۔
- WooCommerce Subscriptions: ایکسٹینشن فعال ہونے پر سبسکرپشن کے اسٹیٹس کی تبدیلیاں پکڑی جاتی ہیں۔
- ملٹی سائٹ: ان انسٹال نیٹ ورک کی ہر سائٹ کو صاف کرتا ہے۔
آپریشنز ریفرنس
سرور ٹو سرور دریافت اور آؤٹ باکس کنٹرول ایڈمنسٹریٹرز کو 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 | ڈیڈ لیٹرز دوبارہ چلائیں |
مسائل کا حل
| علامت | وجہ اور حل |
|---|---|
| ایونٹس “Queued” پر رکے رہتے ہیں | اینڈ پوائنٹ، binding ID یا سیکرٹ ابھی محفوظ نہیں ہوا۔ جب تک تینوں کنفیگر نہ ہوں ڈیلیوری روکی رہتی ہے |
| ایونٹس “Retrying” پر رکے رہتے ہیں | Tajo اینڈ پوائنٹ آپ کے ہوسٹ سے قابلِ رسائی نہیں، یا WP-Cron نہیں چل رہا۔ آؤٹ باکس ٹیبل کا error کالم اور اپنا cron سیٹ اپ دیکھیں |
| ڈیڈ لیٹرز جمع ہو رہے ہیں | ایسی خرابی جس پر دوبارہ کوشش نہیں ہو سکتی (عام طور پر غلط binding ID یا سیکرٹ)۔ کنفیگریشن درست کریں، پھر Replay dead letters چلائیں |
| ”Enter a valid HTTPS Tajo webhook endpoint” | اینڈ پوائنٹ HTTPS ہونا چاہیے اور اس میں کوئی امبیڈڈ کریڈنشلز نہ ہوں |
| ٹیسٹ ایونٹ ڈیلیور ہوا مگر Tajo میں کچھ نہیں | جانچیں کہ آپ نے binding ID اسی Tajo ورک اسپیس/کنکشن سے پیسٹ کیا ہے جس سے اینڈ پوائنٹ تعلق رکھتا ہے |
اگلے اقدامات
- WooCommerce کنیکٹر ریفرنس: REST سنک، webhook دستخط کی تفصیلات، کنفیگ کیز
- گاہک کی سنک: WooCommerce گاہکوں کو آپ کے سسٹم آف ریکارڈ میں میپ کرنا
- Tajo میں
cart.updated،order.placedاورorder.fulfilledایونٹس کی مدد سے چھوڑی گئی کارٹ، خریداری کے بعد اور واپس لانے والی آٹومیشنز کنفیگر کریں