Odoo REST and XML-RPC API Integration Tutorial: Connect Any System

Step-by-step tutorial for integrating with Odoo APIs using REST, XML-RPC, and JSON-RPC. Covers authentication, CRUD operations, and real-world integration patterns.

E
ECOSIRE Research and Development Team
|16 مارچ، 202610 منٹ پڑھیں2.2k الفاظ|

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-RPCJSON-RPCREST (Odoo 19)
پختگیOdoo 8 کے بعد سے مستحکمOdoo 10 کے بعد سے مستحکمOdoo 19 میں نیا
توثیقصارف نام/پاس ورڈسیشن پر مبنیAPI کلید یا OAuth 2.0
دستاویزیدستیدستیخود کار طریقے سے تیار کردہ OpenAPI
رسپانس فارمیٹXMLJSONJSON
بیچ آپریشنزجی ہاںجی ہاںجی ہاں
ویب ہکسنہیں (اپنی مرضی کے ماڈیول کی ضرورت ہے)نہیںجی ہاں (قابل ترتیب)
زبان کی حمایتکوئی بھی (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 کیز کو سپورٹ کرتا ہے:

  1. ترتیبات> صارفین> API کیز پر جائیں
  2. مخصوص اجازتوں کے ساتھ ایک نئی کلید بنائیں
  3. Authorization: Bearer ہیڈر میں کلید شامل کریں۔

REST اینڈ پوائنٹس مجموعوں کے لیے پیٹرن /api/{model} اور انفرادی ریکارڈ کے لیے /api/{model}/{id} کی پیروی کرتے ہیں۔

CRUD آپریشنز

تلاش کریں اور پڑھیں

سب سے عام کام مخصوص معیار کے ساتھ ریکارڈز تلاش کرنا اور ان کی فیلڈ ویلیوز کو پڑھنا ہے۔

ڈومین فلٹرز آپریٹرز کے ساتھ پولش اشارے (سابقہ اشارہ) استعمال کرتے ہیں:

آپریٹرتفصیلمثال
=برابر['state', '=', 'sale']
!=برابر نہیں['state', '!=', 'draft']
>سے بڑا['amount_total', '>', 1000]
&lt;سے کم['date_order', '<', '2026-01-01']
&gt;=بڑا یا مساوی['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 میں سنکرونائز کریں:

  1. نئے آرڈرز کے لیے پول: آخری سنک ٹائم اسٹیمپ کے بعد سے آرڈرز کے لیے ای کامرس API سے استفسار کریں
  2. مقابلہ گاہکوں: ای میل کے ذریعے Odoo رابطے تلاش کریں؛ اگر نہیں ملا تو بنائیں
  3. سیلز آرڈر بنائیں: کسٹمر، لائنز، شپنگ اور ادائیگی کی معلومات کے ساتھ آرڈر بنائیں
  4. آرڈر کی تصدیق کریں: ورک فلو کے ذریعے آرڈر پر کارروائی کرنے کے لیے action_confirm پر کال کریں
  5. ای کامرس کو اپ ڈیٹ کریں: Odoo آرڈر کا حوالہ واپس ای کامرس پلیٹ فارم پر بھیجیں

انوینٹری کی مطابقت پذیری۔

انوینٹری کی سطح کو Odoo اور ایک بیرونی چینل کے درمیان مطابقت پذیر رکھیں:

  1. اسٹاک لیولز پڑھیں: لوکیشن فلٹرز کے ساتھ search_read کو stock.quant پر کال کریں
  2. پش اپ ڈیٹس: بیرونی چینل پر مقدار میں تبدیلیاں بھیجیں۔
  3. ریزرویشنز کو سنبھالیں: محفوظ اسٹاک کے لیے اکاؤنٹ (پینڈنگ آرڈرز کے لیے پرعزم)
  4. شیڈول سنک: درستگی کو برقرار رکھنے کے لیے ہر 15-30 منٹ بعد چلائیں

CRM لیڈ امپورٹ

Odoo CRM میں مارکیٹنگ پلیٹ فارمز سے لیڈز درآمد کریں:

  1. لیڈز حاصل کریں: مارکیٹنگ پلیٹ فارم API سے نئی لیڈز حاصل کریں۔
  2. ڈیڈپلیکیٹ: ای میل یا فون کے ذریعے موجودہ رابطوں کے لیے اوڈو تلاش کریں۔
  3. لیڈز بنائیں: سورس ٹریکنگ کے ساتھ crm.lead میں ریکارڈ بنائیں
  4. ** تفویض کریں**: Odoo کے لیڈ اسائنمنٹ رولز استعمال کریں یا حسب ضرورت منطق کی بنیاد پر تفویض کریں

مالیاتی ڈیٹا ایکسپورٹ

کاروباری انٹیلی جنس پلیٹ فارم پر مالیاتی ڈیٹا برآمد کریں:

  1. اکاؤنٹس کا چارٹ برآمد کریں: اکاؤنٹ کی ساخت کے لیے account.account پڑھیں
  2. جرنل اندراجات کو برآمد کریں: تاریخ کے فلٹرز کے ساتھ account.move.line پڑھیں
  3. بیلنس ایکسپورٹ کریں: اکاؤنٹ اور مدت کے لحاظ سے بیلنس کو جمع کرنے کے لیے read_group استعمال کریں
  4. شیڈول: اکاؤنٹنگ کلوز ونڈو کے بعد روزانہ چلائیں۔

ہینڈلنگ کی خرابی۔

عام API کی خرابیاں

خرابیوجہقرارداد
رسائی سے انکارغلط اسناد یا اجازتیںصارف نام، پاس ورڈ، اور رسائی کے حقوق کی تصدیق کریں
ریکارڈ نہیں ملاپڑھنے/لکھنے/ان لنک میں غلط IDپہلے تلاش کے ساتھ ریکارڈ کے موجود ہونے کی تصدیق کریں
توثیق کی خرابیمطلوبہ فیلڈز غائب ہیں یا غلط اقداردرست ڈیٹا کے ساتھ تمام مطلوبہ فیلڈز شامل کریں۔
صارف کی خرابیکاروباری اصول کی خلاف ورزیمخصوص اصول کے لیے غلطی کا پیغام چیک کریں
ConcurrencyExceptionکسی دوسرے صارف کے ذریعہ ترمیم شدہ ریکارڈریکارڈ کو دوبارہ پڑھیں اور دوبارہ کوشش کریں

شرح کی حد

Odoo پہلے سے طے شدہ طور پر API کی شرح کی حدود کو نافذ نہیں کرتا ہے، لیکن پیداوار کی تعیناتیوں کو ریورس پراکسی سطح پر شرح کی حد کو نافذ کرنا چاہیے۔ Odoo.sh کے لیے، غلط استعمال کو روکنے کے لیے پہلے سے طے شدہ حدود لاگو ہوتی ہیں۔ مناسب پولنگ وقفوں اور بیچ آپریشنز کے ساتھ انضمام کو ڈیزائن کریں۔

حکمت عملی کی دوبارہ کوشش کریں۔

عارضی غلطیوں کے لیے ایکسپونینشل بیک آف کو لاگو کریں:

  1. پہلے 1 سیکنڈ کے بعد دوبارہ کوشش کریں۔
  2. 4 سیکنڈ کے بعد دوسری کوشش کریں۔
  3. 16 سیکنڈ کے بعد تیسری کوشش کریں۔
  4. زیادہ سے زیادہ دوبارہ کوششوں کے بعد لاگ اور الرٹ کریں۔

کارکردگی کی اصلاح

بیچ آپریشنز

انفرادی ریکارڈ پروسیسنگ پر بیچ آپریشنز کو ترجیح دیں:

  • create بیچ کی تخلیق کے لیے قدری لغات کی فہرست قبول کرتا ہے۔
  • write بیچ اپ ڈیٹس کے لیے IDs کی فہرست قبول کرتا ہے۔
  • صفحہ بندی کے ساتھ search_read انفرادی read کالوں سے زیادہ موثر ہے۔

فیلڈ کا انتخاب

غیر ضروری ڈیٹا لوڈ کرنے سے بچنے کے لیے ہمیشہ fields پیرامیٹر کی وضاحت کریں۔ 50+ کالمز والے ماڈل پر تمام فیلڈز کو لوڈ کرنے سے اہم اوور ہیڈ بنتا ہے، خاص طور پر sale.order یا account.move.line جیسے ماڈلز کے لیے۔

کیشنگ

مقامی طور پر ڈیٹا کو آہستہ آہستہ تبدیل کرنے والا کیش:

  • پروڈکٹ کیٹلاگ (فی گھنٹہ تازہ کریں)
  • صارفین کی فہرست (تبدیلی کی اطلاع پر تازہ کریں)
  • ٹیکس کی شرح اور مالی پوزیشن (روزانہ تازہ کریں)

ECOSIRE انٹیگریشن سروسز

قابل اعتماد انضمام کے لیے بیرونی نظام اور Odoo کے ڈیٹا ماڈل دونوں کو سمجھنے کی ضرورت ہوتی ہے۔ ECOSIRE کی Odoo انٹیگریشن سروسز کا احاطہ API ڈیزائن، کنیکٹر ڈویلپمنٹ، ڈیٹا میپنگ، اور جاری نگرانی۔ ای کامرس پلیٹ فارمز کو جوڑنے والی تنظیموں کے لیے، ہمارے خصوصی Shopify-Odoo انٹیگریشن اور مارکیٹ پلیس کنیکٹر سب سے عام منظرناموں کو ہینڈل کرتے ہیں۔

متعلقہ پڑھنا

ایک نئے انضمام کے لیے مجھے کون سا 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 کی طرح کاروباری اصولوں کو نافذ کرتے ہیں۔

E

تحریر

ECOSIRE Research and Development Team

ECOSIRE میں انٹرپرائز گریڈ ڈیجیٹل مصنوعات بنانا۔ Odoo انٹیگریشنز، ای کامرس آٹومیشن، اور AI سے چلنے والے کاروباری حل پر بصیرت شیئر کرنا۔

Chat on WhatsApp