Odoo REST اور XML-RPC API انٹیگریشن ٹیوٹوریل: کسی بھی سسٹم کو جوڑیں۔
Odoo اپنے پورے ڈیٹا ماڈل کو بیرونی APIs کے ذریعے بے نقاب کرتا ہے، جس سے عملی طور پر کسی بھی سسٹم---ای کامرس پلیٹ فارمز، CRM ٹولز، بزنس انٹیلی جنس سافٹ ویئر، موبائل ایپس، اور کسٹم ایپلی کیشنز کے ساتھ انضمام ممکن ہوتا ہے۔ اس ٹیوٹوریل میں تینوں API پروٹوکولز (XML-RPC، JSON-RPC، اور REST)، تصدیق کے طریقے، CRUD آپریشنز، اور کوڈ کی مثالوں اور بہترین طریقوں کے ساتھ حقیقی دنیا کے انضمام کے نمونوں کا احاطہ کیا گیا ہے۔
اہم نکات
- Odoo تین API پروٹوکول فراہم کرتا ہے: XML-RPC (سب سے زیادہ بالغ)، JSON-RPC (براؤزر کے موافق)، اور REST (Odoo 19، OpenAPI کے مطابق)
- تمام APIs کو ڈیٹا بیس کا نام، صارف نام، اور پاس ورڈ یا API کلید کا استعمال کرتے ہوئے تصدیق کی ضرورت ہوتی ہے۔
- CRUD آپریشن تمام پروٹوکولز میں ایک مستقل پیٹرن کی پیروی کرتے ہیں: تلاش کریں، پڑھیں، تخلیق کریں، لکھیں، لنک ختم کریں
- ڈومین فلٹرز پیچیدہ سوالات کے لیے پولش اشارے کا نحو استعمال کرتے ہیں۔
- صفحہ بندی، فیلڈ کا انتخاب، اور بیچ آپریشنز بڑے ڈیٹا سیٹس کے لیے کارکردگی کو بہتر بناتے ہیں۔
API پروٹوکول کا موازنہ
| فیچر | XML-RPC | JSON-RPC | REST (Odoo 19) |
|---|---|---|---|
| پختگی | Odoo 8 کے بعد سے مستحکم | Odoo 10 کے بعد سے مستحکم | Odoo 19 میں نیا |
| توثیق | صارف نام/پاس ورڈ | سیشن پر مبنی | API کلید یا OAuth 2.0 |
| دستاویزی | دستی | دستی | خود کار طریقے سے تیار کردہ OpenAPI |
| رسپانس فارمیٹ | XML | JSON | JSON |
| بیچ آپریشنز | جی ہاں | جی ہاں | جی ہاں |
| ویب ہکس | نہیں (اپنی مرضی کے ماڈیول کی ضرورت ہے) | نہیں | جی ہاں (قابل ترتیب) |
| زبان کی حمایت | کوئی بھی (XML-RPC عالمگیر ہے) | جاوا اسکرپٹ کے موافق | کوئی بھی (HTTP معیاری) |
توثیق
XML-RPC توثیق
XML-RPC کی توثیق ایک دو قدمی عمل کا استعمال کرتی ہے: صارف ID (uid) حاصل کرنے کے لیے تصدیق کریں، پھر اس uid کو بعد کی کالوں کے لیے استعمال کریں۔
تصدیقی کال authenticate طریقہ کے ساتھ /xmlrpc/2/common اختتامی نقطہ سے ٹکراتی ہے، ڈیٹا بیس کا نام، صارف نام، پاس ورڈ، اور ایک خالی آبجیکٹ کو پاس کرتی ہے۔ جواب عددی صارف ID ہے۔ ڈیٹا بیس، uid، پاس ورڈ، ماڈل کا نام، طریقہ کا نام، اور دلائل کو پاس کرتے ہوئے، بعد میں آنے والی تمام ڈیٹا کالز /xmlrpc/2/object کو execute_kw طریقہ کے ساتھ استعمال کرتی ہیں۔
JSON-RPC توثیق
JSON-RPC /web/session/authenticate اختتامی نقطہ کے ذریعے سیشن پر مبنی توثیق کا استعمال کرتا ہے۔ درخواست کا باڈی jsonrpc: "2.0" کے ساتھ JSON آبجیکٹ ہے، call کا ایک طریقہ، اور db، login، اور password پر مشتمل پیرامز۔ جواب میں کوکی میں ایک سیشن ID شامل ہے جو بعد میں آنے والی درخواستوں کی تصدیق کرتا ہے۔
REST API توثیق (Odoo 19)
REST API Odoo بیک اینڈ میں تیار کردہ API کیز کو سپورٹ کرتا ہے:
- ترتیبات> صارفین> API کیز پر جائیں
- مخصوص اجازتوں کے ساتھ ایک نئی کلید بنائیں
Authorization: Bearerہیڈر میں کلید شامل کریں۔
REST اینڈ پوائنٹس مجموعوں کے لیے پیٹرن /api/{model} اور انفرادی ریکارڈ کے لیے /api/{model}/{id} کی پیروی کرتے ہیں۔
CRUD آپریشنز
تلاش کریں اور پڑھیں
سب سے عام کام مخصوص معیار کے ساتھ ریکارڈز تلاش کرنا اور ان کی فیلڈ ویلیوز کو پڑھنا ہے۔
ڈومین فلٹرز آپریٹرز کے ساتھ پولش اشارے (سابقہ اشارہ) استعمال کرتے ہیں:
| آپریٹر | تفصیل | مثال |
|---|---|---|
= | برابر | ['state', '=', 'sale'] |
!= | برابر نہیں | ['state', '!=', 'draft'] |
> | سے بڑا | ['amount_total', '>', 1000] |
< | سے کم | ['date_order', '<', '2026-01-01'] |
>= | بڑا یا مساوی | ['qty_available', '>=', 10] |
in | فہرست میں | ['state', 'in', ['sale', 'done']] |
like | پیٹرن میچ | ['name', 'like', 'ECOSIRE'] |
ilike | کیس غیر حساس پیٹرن | ['email', 'ilike', '@gmail.com'] |
مضمون شرائط: استعمال کریں & (AND), | (OR) اور ! (NOT) بطور سابقہ آپریٹرز:
- اور:
['&', ['state', '=', 'sale'], ['amount_total', '>', 1000]]1000 سے زیادہ سیل آرڈرز سے میل کھاتا ہے۔ - یا:
['|', ['state', '=', 'sale'], ['state', '=', 'done']]کسی بھی ریاست سے میل کھاتا ہے۔ - پیچیدہ:
['&', ['state', '=', 'sale'], '|', ['partner_id', '=', 5], ['partner_id', '=', 10]]
فیلڈ سلیکشن: صرف ان فیلڈز کی درخواست کریں جن کی آپ کو پے لوڈ کا سائز کم کرنے اور کارکردگی کو بہتر بنانے کی ضرورت ہے۔ فیلڈ کے ناموں کی فہرست کے ساتھ ایک fields پیرامیٹر پاس کریں۔ اگر چھوڑ دیا جائے تو تمام فیلڈز واپس کر دیے جائیں گے۔
صفحہ بندی: نتائج کو صفحہ بندی کرنے کے لیے offset اور limit پیرامیٹرز استعمال کریں۔ مثال: offset: 20, limit: 20 21-40 ریکارڈ واپس کرتا ہے۔
ریکارڈز بنائیں
فیلڈ ویلیوز کی لغت کے ساتھ create طریقہ کو کال کرکے ریکارڈ بنائیں۔ مطلوبہ فیلڈز کو شامل کرنا ضروری ہے۔ جواب نئے بنائے گئے ریکارڈ (یا بیچ کی تخلیق کے لیے IDs کی ایک صف) کی ID لوٹاتا ہے۔
مثال: رابطہ بنانے کے لیے کم از کم name فیلڈ کی ضرورت ہوتی ہے۔ اختیاری فیلڈز میں email, phone, company_id, street, city, state_id, country_id, اور حسب ضرورت فیلڈز شامل ہیں۔
متعلقہ ریکارڈ کے لیے (one2many یا many2many)، خصوصی کمانڈ ٹیپلز استعمال کریں:
| کمانڈ | نحو | تفصیل |
|---|---|---|
| بنائیں | [0, 0, {values}] | ایک نیا متعلقہ ریکارڈ بنائیں |
| اپ ڈیٹ | [1, id, {values}] | موجودہ متعلقہ ریکارڈ کو اپ ڈیٹ کریں |
| حذف کریں | [2, id, 0] | متعلقہ ریکارڈ کو حذف کریں |
| لنک ختم کریں | [3, id, 0] | لنک کو ہٹا دیں (ڈیلیٹ نہ کریں) |
| لنک | [4, id, 0] | موجودہ ریکارڈ میں ایک لنک شامل کریں |
| بدل دیں | [6, 0, [ids]] | تمام لنکس کو فراہم کردہ IDs سے بدل دیں۔ |
ریکارڈز کو اپ ڈیٹ کریں۔
ریکارڈ ID(s) اور تبدیل شدہ فیلڈز کی لغت کے ساتھ write طریقہ کو کال کرکے ریکارڈز کو اپ ڈیٹ کریں۔ صرف وہ فیلڈز شامل کریں جن کو تبدیل کرنے کی ضرورت ہے---چھوڑ دی گئی فیلڈز اپنی موجودہ اقدار کو برقرار رکھتی ہیں۔
بیچ اپ ڈیٹس کی حمایت کی جاتی ہے: ایک ہی کال میں ایک ہی اقدار کے ساتھ متعدد ریکارڈز کو اپ ڈیٹ کرنے کے لیے IDs کی فہرست پاس کریں۔
ریکارڈز کو حذف کریں۔
ریکارڈ ID(s) کے ساتھ unlink طریقہ پر کال کرکے ریکارڈز کو حذف کریں۔ کامیابی پر طریقہ درست واپس آتا ہے۔
حذف کرنے کے ساتھ محتاط رہیں---بہت سے Odoo ریکارڈ کاروباری قواعد کے ذریعہ محفوظ ہیں۔ پوسٹ کردہ انوائس کو حذف کرنے کی کوشش، مثال کے طور پر، ایک خرابی پیدا کر دے گی۔ اس کے بجائے مناسب کاروباری طریقہ استعمال کریں (مثال کے طور پر، حذف کرنے سے پہلے button_cancel)۔
حقیقی دنیا کے انضمام کے پیٹرنز
ای کامرس آرڈر کی مطابقت پذیری۔
ایک بیرونی ای کامرس پلیٹ فارم سے آرڈرز کو Odoo میں سنکرونائز کریں:
- نئے آرڈرز کے لیے پول: آخری سنک ٹائم اسٹیمپ کے بعد سے آرڈرز کے لیے ای کامرس API سے استفسار کریں
- مقابلہ گاہکوں: ای میل کے ذریعے Odoo رابطے تلاش کریں؛ اگر نہیں ملا تو بنائیں
- سیلز آرڈر بنائیں: کسٹمر، لائنز، شپنگ اور ادائیگی کی معلومات کے ساتھ آرڈر بنائیں
- آرڈر کی تصدیق کریں: ورک فلو کے ذریعے آرڈر پر کارروائی کرنے کے لیے
action_confirmپر کال کریں - ای کامرس کو اپ ڈیٹ کریں: Odoo آرڈر کا حوالہ واپس ای کامرس پلیٹ فارم پر بھیجیں
انوینٹری کی مطابقت پذیری۔
انوینٹری کی سطح کو Odoo اور ایک بیرونی چینل کے درمیان مطابقت پذیر رکھیں:
- اسٹاک لیولز پڑھیں: لوکیشن فلٹرز کے ساتھ
search_readکوstock.quantپر کال کریں - پش اپ ڈیٹس: بیرونی چینل پر مقدار میں تبدیلیاں بھیجیں۔
- ریزرویشنز کو سنبھالیں: محفوظ اسٹاک کے لیے اکاؤنٹ (پینڈنگ آرڈرز کے لیے پرعزم)
- شیڈول سنک: درستگی کو برقرار رکھنے کے لیے ہر 15-30 منٹ بعد چلائیں
CRM لیڈ امپورٹ
Odoo CRM میں مارکیٹنگ پلیٹ فارمز سے لیڈز درآمد کریں:
- لیڈز حاصل کریں: مارکیٹنگ پلیٹ فارم API سے نئی لیڈز حاصل کریں۔
- ڈیڈپلیکیٹ: ای میل یا فون کے ذریعے موجودہ رابطوں کے لیے اوڈو تلاش کریں۔
- لیڈز بنائیں: سورس ٹریکنگ کے ساتھ
crm.leadمیں ریکارڈ بنائیں - ** تفویض کریں**: Odoo کے لیڈ اسائنمنٹ رولز استعمال کریں یا حسب ضرورت منطق کی بنیاد پر تفویض کریں
مالیاتی ڈیٹا ایکسپورٹ
کاروباری انٹیلی جنس پلیٹ فارم پر مالیاتی ڈیٹا برآمد کریں:
- اکاؤنٹس کا چارٹ برآمد کریں: اکاؤنٹ کی ساخت کے لیے
account.accountپڑھیں - جرنل اندراجات کو برآمد کریں: تاریخ کے فلٹرز کے ساتھ
account.move.lineپڑھیں - بیلنس ایکسپورٹ کریں: اکاؤنٹ اور مدت کے لحاظ سے بیلنس کو جمع کرنے کے لیے
read_groupاستعمال کریں - شیڈول: اکاؤنٹنگ کلوز ونڈو کے بعد روزانہ چلائیں۔
ہینڈلنگ کی خرابی۔
عام API کی خرابیاں
| خرابی | وجہ | قرارداد |
|---|---|---|
| رسائی سے انکار | غلط اسناد یا اجازتیں | صارف نام، پاس ورڈ، اور رسائی کے حقوق کی تصدیق کریں |
| ریکارڈ نہیں ملا | پڑھنے/لکھنے/ان لنک میں غلط ID | پہلے تلاش کے ساتھ ریکارڈ کے موجود ہونے کی تصدیق کریں |
| توثیق کی خرابی | مطلوبہ فیلڈز غائب ہیں یا غلط اقدار | درست ڈیٹا کے ساتھ تمام مطلوبہ فیلڈز شامل کریں۔ |
| صارف کی خرابی | کاروباری اصول کی خلاف ورزی | مخصوص اصول کے لیے غلطی کا پیغام چیک کریں |
| ConcurrencyException | کسی دوسرے صارف کے ذریعہ ترمیم شدہ ریکارڈ | ریکارڈ کو دوبارہ پڑھیں اور دوبارہ کوشش کریں |
شرح کی حد
Odoo پہلے سے طے شدہ طور پر API کی شرح کی حدود کو نافذ نہیں کرتا ہے، لیکن پیداوار کی تعیناتیوں کو ریورس پراکسی سطح پر شرح کی حد کو نافذ کرنا چاہیے۔ Odoo.sh کے لیے، غلط استعمال کو روکنے کے لیے پہلے سے طے شدہ حدود لاگو ہوتی ہیں۔ مناسب پولنگ وقفوں اور بیچ آپریشنز کے ساتھ انضمام کو ڈیزائن کریں۔
حکمت عملی کی دوبارہ کوشش کریں۔
عارضی غلطیوں کے لیے ایکسپونینشل بیک آف کو لاگو کریں:
- پہلے 1 سیکنڈ کے بعد دوبارہ کوشش کریں۔
- 4 سیکنڈ کے بعد دوسری کوشش کریں۔
- 16 سیکنڈ کے بعد تیسری کوشش کریں۔
- زیادہ سے زیادہ دوبارہ کوششوں کے بعد لاگ اور الرٹ کریں۔
کارکردگی کی اصلاح
بیچ آپریشنز
انفرادی ریکارڈ پروسیسنگ پر بیچ آپریشنز کو ترجیح دیں:
createبیچ کی تخلیق کے لیے قدری لغات کی فہرست قبول کرتا ہے۔writeبیچ اپ ڈیٹس کے لیے IDs کی فہرست قبول کرتا ہے۔- صفحہ بندی کے ساتھ
search_readانفرادیreadکالوں سے زیادہ موثر ہے۔
فیلڈ کا انتخاب
غیر ضروری ڈیٹا لوڈ کرنے سے بچنے کے لیے ہمیشہ fields پیرامیٹر کی وضاحت کریں۔ 50+ کالمز والے ماڈل پر تمام فیلڈز کو لوڈ کرنے سے اہم اوور ہیڈ بنتا ہے، خاص طور پر sale.order یا account.move.line جیسے ماڈلز کے لیے۔
کیشنگ
مقامی طور پر ڈیٹا کو آہستہ آہستہ تبدیل کرنے والا کیش:
- پروڈکٹ کیٹلاگ (فی گھنٹہ تازہ کریں)
- صارفین کی فہرست (تبدیلی کی اطلاع پر تازہ کریں)
- ٹیکس کی شرح اور مالی پوزیشن (روزانہ تازہ کریں)
ECOSIRE انٹیگریشن سروسز
قابل اعتماد انضمام کے لیے بیرونی نظام اور Odoo کے ڈیٹا ماڈل دونوں کو سمجھنے کی ضرورت ہوتی ہے۔ ECOSIRE کی Odoo انٹیگریشن سروسز کا احاطہ API ڈیزائن، کنیکٹر ڈویلپمنٹ، ڈیٹا میپنگ، اور جاری نگرانی۔ ای کامرس پلیٹ فارمز کو جوڑنے والی تنظیموں کے لیے، ہمارے خصوصی Shopify-Odoo انٹیگریشن اور مارکیٹ پلیس کنیکٹر سب سے عام منظرناموں کو ہینڈل کرتے ہیں۔
متعلقہ پڑھنا
- Odoo API انٹیگریشن گائیڈ
- ETL پائپ لائنز برائے ERP ڈیٹا: Odoo اور Shopify
- ڈوکر اوڈو تعیناتی گائیڈ
- اوڈو کسٹم ماڈیول ڈویلپمنٹ گائیڈ
- API سیکیورٹی: توثیق اور اجازت
ایک نئے انضمام کے لیے مجھے کون سا API پروٹوکول منتخب کرنا چاہیے؟
Odoo 19 پر نئے پروجیکٹس کے لیے، REST API استعمال کریں۔ یہ HTTP معیارات کی پیروی کرتا ہے، خود کار طریقے سے تیار کردہ دستاویزات رکھتا ہے، اور توثیق کے لیے API کیز کو سپورٹ کرتا ہے۔ Odoo 17 یا 18 کے لیے، XML-RPC سب سے قابل اعتماد اور اچھی طرح سے دستاویزی آپشن ہے۔ JSON-RPC براؤزر پر مبنی انضمام یا JavaScript ایپلیکیشنز کے لیے بہترین ہے۔
کیا Odoo کے بیرونی API پر شرح کی کوئی حد ہے؟
اوڈو خود شرح کی حدود کو نافذ نہیں کرتا ہے۔ تاہم، Odoo.sh کی تعیناتیوں میں بنیادی ڈھانچے کی سطح کی حدود ہوتی ہیں، اور خود میزبان تعیناتیوں کو ریورس پراکسی (Nginx) کی سطح پر شرح کی حد کو نافذ کرنا چاہیے۔ حدود سے قطع نظر بیچ آپریشنز اور پولنگ کے معقول وقفوں کو استعمال کرنے کے لیے انضمام کو ڈیزائن کریں۔
کیا میں API کے ذریعے ورک فلو کو متحرک کر سکتا ہوں (آرڈر کی تصدیق، انوائس پوسٹ کریں)؟
جی ہاں ورک فلو طریقہ کے نام کے ساتھ execute_kw طریقہ استعمال کریں۔ مثال کے طور پر، اس کی تصدیق کے لیے sale.order پر action_confirm پر کال کریں، یا اکاؤنٹ پر action_post کو کال کریں۔ جرنل اندراج پوسٹ کرنے کے لیے منتقل کریں۔ ورک فلو کے طریقے UI کی طرح کاروباری اصولوں کو نافذ کرتے ہیں۔
تحریر
ECOSIRE Research and Development Team
ECOSIRE میں انٹرپرائز گریڈ ڈیجیٹل مصنوعات بنانا۔ Odoo انٹیگریشنز، ای کامرس آٹومیشن، اور AI سے چلنے والے کاروباری حل پر بصیرت شیئر کرنا۔
متعلقہ مضامین
API-First Strategy for Modern Businesses: Architecture, Integration, and Growth
Build an API-first strategy that connects your business systems, enables partner integrations, and creates new revenue opportunities through platform thinking.
Building AI-Powered Business Workflows: From Manual Processes to Intelligent Automation
Design and build AI-powered workflows that automate multi-step business processes across sales, operations, finance, and customer service systems.
CRM Integration Patterns: Connecting Your Sales Ecosystem
Implement CRM integration patterns for ERP, marketing, support, and e-commerce systems with best practices for data sync, architecture, and error handling.