kerneltics

المدونة

تطوير إضافات أودو حسب شغلك: متى تحتاج موديول مخصص وكيف ينبني صح

قبل ما تطلب إضافة أودو مخصصة، اعرف متى تكفيك الإعدادات أو متجر أودو، وش أنواع الإضافات الي تحتاجها الشركات فعلًا، وكيف تنبني بدون ما تكسر الترقية الجاية.

بقلم kerneltics5 دقائق قراءة
  • Odoo
  • أودو
  • إضافات أودو
  • تطوير موديولات

«أودو ما فيه الشي الفلاني، نبي أحد يبرمجه لنا». هذي الجملة نسمعها كثير. وأحيانًا تكون صح، وأحيانًا يكون الشي موجود في أودو من الأساس وينحل بإعداد بسيط، وأحيانًا فيه إضافة جاهزة في متجر أودو تسويه.

الإضافة المخصصة (Custom Module أو Addon) أداة قوية، بس لها تكلفة تستمر معك: كل سطر كود تضيفه على أودو لازم أحد يصونه ويرقّيه مع كل نسخة جديدة. عشان كذا خلنا نمشي معك بالترتيب.

الترتيب الصح: إعدادات، ثم متجر أودو، ثم برمجة

1. جرّب الإعدادات أول. أودو فيه خيارات أكثر بكثير مما يبان. قواعد الموافقات، الحقول الإضافية عن طريق Studio (في نسخة Enterprise)، الأتمتة (Automated Actions)، قوالب الإيميل، مسارات المخزون، قواعد إعادة الطلب. كثير من الطلبات الي توصلنا كـ«برمجة» تنحل هنا.

2. بعدها شوف متجر أودو (Odoo Apps). فيه آلاف الإضافات، بعضها ممتاز وبعضها مهجور. الإضافة الجاهزة المصانة أرخص من أي تطوير، بشرط تكون على نفس نسختك، وناشرها يحدّثها، وتتوافق مع Community أو Enterprise حسب الي عندك.

3. البرمجة المخصصة آخر خيار، بس لها مكانها. تستاهل لما:

  • العملية هي الي تميّز شغلك عن المنافسين، ومو منطقي تغيّرها عشان تناسب البرنامج.
  • تحتاج ربط مع نظام محلي أو خارجي ما له إضافة جاهزة.
  • الإضافات الجاهزة تسوي أغلب الشغل وتخرب الباقي.
  • عندك إدخال يدوي يتكرر كل يوم ويقدر النظام يسويه لحاله.

إذا تبي الصورة الأكبر (أودو ولا نظام خاص كامل)، كتبنا عنها في أودو ولا نظام مخصص؟.

وش الإضافات الي تحتاجها الشركات فعلًا؟

من الشغل الي نشوفه، الطلبات تتكرر في أنواع معروفة:

ربط بوابات الدفع

الدفع بالتقسيط والبوابات المحلية ما تجي جاهزة دايمًا في أودو. مثال من شغلنا: إضافة تابي وتمارا لأودو الي بنيناها وننشرها، تربط الدفع بالتقسيط مع نقاط البيع والفواتير. (الإضافة من تطويرنا، وما هي تابعة لتابي ولا تمارا.)

واتساب داخل أودو

هذا من أكثر الطلبات هالأيام: الفاتورة تروح للعميل على واتساب أول ما تنعتمد، تذكير بالدفعة المتأخرة، رسالة فيها زرّين «موافق / رفض» والرد يحدّث السجل في أودو مباشرة، وبوت يرسل للعميل فواتيره لما يطلبها. كتبنا عن الرحلة كاملة في تأسيس واتساب API وربطه مع أودو، وعن البوت الذكي في ربط الذكاء الاصطناعي بواتساب.

الربط مع أنظمة ثانية

شركات الشحن، المتجر الإلكتروني، تطبيق الجوال حقك، نظام البنك. الربط عن طريق API ينقل الطلبات والمخزون والحالات بدون ما أحد ينسخ ويلصق.

تعديلات المحفظة والولاء ونقاط البيع

رصيد عميل، نقاط، طريقة خصم خاصة، شاشة كاشير فيها خطوة زيادة تناسب فرعك. هذي تفاصيل صغيرة في الورق وكبيرة في التشغيل.

مسارات موافقات وتقارير مطبوعة بالعربي

أمر شراء يحتاج موافقة مدير بعد حد معين، عرض سعر بشكل شركتك، تقرير يومي بالعربي ينطبع صح من اليمين لليسار.

تعديلات تخص الفوترة الإلكترونية

بعض الحالات تحتاج ضبط في طريقة إصدار الفواتير أو بياناتها عشان تمشي مع متطلبات زاتكا وشغلك مع بعض.

كيف تنبني الإضافة الصح؟

هنا الفرق بين إضافة تعيش معك سنين وإضافة تصير عبء:

  • ما تلمس كود أودو الأساسي أبدًا. كل تعديل يكون بالوراثة (_inherit) وتوسيع الشاشات (view inheritance). إذا أحد عدّل ملفات أودو نفسها، أول ترقية بتمسح شغله أو توقف.
  • موديول مستقل له اعتماديات واضحة. ملف __manifest__.py يقول بالضبط وش يحتاج (مثلًا account وpoint_of_sale)، وما يعتمد على أشياء بالصدفة.
  • الصلاحيات من أول يوم. ملفات ir.model.access وقواعد السجلات (Record Rules)، عشان الموظف في الفرع يشوف بيانات فرعه بس.
  • سكربتات ترحيل للبيانات. لما يتغير شكل البيانات بين إصدار وإصدار من الإضافة، فيه سكربت ينقلها، مو تعديل يدوي في قاعدة البيانات.
  • اختبارات. اختبارات آلية تتأكد إن الحسبة والموافقة والربط تشتغل، وتنبهك لو تحديث كسرها.
  • على نسختك بالضبط. إضافة مكتوبة لأودو 16 ما تشتغل كما هي على 17 أو 18. ولازم تعرف من البداية هل عندك Community ولا Enterprise، لأن بعض الوحدات موجودة في وحدة وما هي في الثانية.
  • ترجمة عربية وواجهة يمين ليسار. مو بس ترجمة الكلمات، الطباعة والتقارير والحقول لازم تطلع مرتبة.
  • توثيق. وش تسوي الإضافة، وش الإعدادات، وش المتوقع. عشان أي مطور بعدنا يفهمها.

وين تخرب الإضافات السيئة؟

إذا جربت أودو قبل وتعبت، غالبًا واحد من هذي كان السبب:

  • تعديل على الكود الأساسي يخلي الترقية شبه مستحيلة.
  • إضافة تنكسر مع النسخة الجاية لأنها مكتوبة على أشياء أودو غيّرها.
  • ما أحد يصونها. المطور الي كتبها راح، والكود ما هو عندك.
  • حقول محسوبة بطيئة تحسب آلاف السجلات كل مرة تفتح الشاشة، فيصير النظام ثقيل بدون سبب واضح.
  • ثغرات صلاحيات بسبب استخدام sudo() عشان «تمشي الأمور»، فيقدر موظف يشوف أو يعدل شي ما يخصه.

كتبنا عن أنماط الفشل الأوسع في ليش مشاريع أودو تتعثر.

الترقية: الإضافات المخصصة هي الي تأخر كل شي

لما أودو يطلع نسخة جديدة، الوحدات القياسية تترقّى بأدوات أودو نفسها. الي يأخذ الوقت دايمًا هو الكود المخصص: كل إضافة لازم تنراجع وتتعدل على التغييرات الجديدة وتنختبر.

عشان تكون الترقية الجاية رخيصة:

  • قلّل الكود، وكل شي ينحل بإعداد لا تبرمجه.
  • وراثة بس، بدون أي تعديل على الأساس.
  • اختبارات تشتغل على النسخة الجديدة وتقول لك وش انكسر.
  • كل إضافة تسوي شي واحد، بدل إضافة عملاقة فيها كل شي.

كيف تشرح طلبك للمطور؟

اشرح العملية والمشكلة، مو الشاشة. بدل «أبي زر هنا»، قل: «لما الفاتورة تتجاوز حد معين، المدير المالي لازم يوافق قبل ما تنرسل، وحاليًا نسويها بالواتساب والذاكرة». كذا المطور يقدر يقترح الحل الأبسط، وأحيانًا يكون إعداد موجود.

وجهّز أمثلة حقيقية: فاتورة، أمر شراء، تقرير تطبعونه اليوم. المثال الحقيقي يوفّر أسبوع نقاش ويكشف الحالات الشاذة الي ما أحد يتذكرها في الاجتماع.

وقبل ما تبدأ، اتفق على شي واحد: الكود ملكك. تستلمه في مستودع (Git) باسمك أو تقدر توصله، مع التوثيق.

أسئلة سريعة

مين يملك كود الإضافة؟

المفروض أنت. اطلبها صريحة في الاتفاق: تستلم الكود كامل، وتقدر تعطيه لأي مطور ثاني.

تشتغل على Odoo.sh وعلى السيرفر الخاص وOdoo Online؟

على Odoo.sh والسيرفر الخاص (On-premise) أي. أما Odoo Online (النسخة السحابية العادية) فما تسمح بإضافات بايثون مخصصة، ولازم تنتقل لـ Odoo.sh أو سيرفر خاص لو تحتاجها.

كم تاخذ؟

حسب حجم العملية وعدد الأنظمة الي تنربط. الإضافة الصغيرة الي تغير شاشة أو تقرير غير عن ربط كامل مع نظام خارجي. أي أحد يعطيك مدة قبل ما يفهم العملية، يخمّن.

وش يصير لو أودو طلّع نسخة جديدة؟

ما لازم ترقّي كل سنة. بس لما ترقّي، الإضافات لازم تنراجع وتنختبر على نسخة تجريبية قبل الانتقال. الإضافة المكتوبة صح ترقيتها أسرع بكثير.

كيف نشتغل عليها

نبدأ بدراسة العملية وتحديد وش ينحل بالإعدادات ووش يحتاج برمجة فعلًا. الي يحتاج برمجة نبنيه كموديول مستقل بالوراثة، مع صلاحيات واختبارات وترجمة عربية، ونجربه على نسخة من بياناتك قبل ما يوصل للنظام الحي. وبالنهاية تستلم الكود والتوثيق.

شوف صفحة أودو وأودو مع الفوترة الإلكترونية، أو إضافتنا تابي وتمارا لأودو كمثال على إضافة نصونها، أو احجز استشارة وقل لنا وش العملية الي تتعبكم.