تشتري إضافة من متجر أودو ولا تبنيها؟ كيف تفحص الموديول قبل ما تدفع
إضافة من متجر أودو أرخص بكثير من التطوير، بشرط تكون على نسختك ولها أحد يصونها. هذي الفحوصات الي نسويها قبل ما نثبّت أي موديول: النسخة والنوع والكود.
تلقى في متجر أودو إضافة تسوي بالضبط الي تبيه، وسعرها أقل بكثير من أي عرض تطوير جاك. وش تنتظر؟ اشترها.
وأحيانًا هذا هو القرار الصح فعلًا. بس نفس الإضافة ممكن تصير بعد سنتين هي الشي الواقف قدام الترقية، أو السبب الي يخرّب إقفال الكاشير آخر اليوم وما أحد يعرف ليش. سعر الإضافة في المتجر أصغر جزء من تكلفتها. التكلفة الحقيقية: مين يبقيها شغالة على نسختك، وعلى نسختك الجاية.
في مقال تطوير إضافات أودو حسب شغلك قلنا إن الترتيب الصح: إعدادات، ثم متجر أودو، ثم برمجة. هذا المقال عن الخطوة الوسطى: وش تفحص قبل ما تدفع، ومتى يكون البناء أحسن.
قبل كل شي: تقدر تركّب إضافات أصلًا؟
إذا أنت على Odoo Online (النسخة السحابية العادية الي تشترك فيها من موقع أودو)، وقف هنا. شروط البيع في متجر أودو تقول إن إضافات الطرف الثالث تنثبّت على Odoo.sh وعلى السيرفر الخاص (On-premise)، مو على Odoo Online. ونفس الشروط تحط «قاعدة بيانات على Odoo Online» ضمن الحالات الي ما ينرد فيها المبلغ.
فسؤالك الأول مو «أي إضافة؟». سؤالك: نبقى على Online ونمشي بالي فيه، ولا ننتقل لـ Odoo.sh أو سيرفر خاص؟ والانتقال قرار له تكلفته، لا تاخذه عشان إضافة وحدة.
النسخة: كل نسخة تنباع لحالها
من أودو 13 وطالع، كل نسخة من الإضافة تنباع منفصلة. اشتريتها لنسخة 16 وأنت على 17؟ ما تنفعك، و«اشتريت النسخة الغلط» برضو من الحالات الي ما ينرد فيها المبلغ.
نسختك بالضبط تلقاها تحت في آخر صفحة الإعدادات في أودو، ومعها هل هي Community ولا Enterprise. وفي صفحة الإضافة في المتجر قائمة بالنسخ المتوفرة. شوفها كلها، مو بس نسختك:
- الإضافة موجودة لآخر نسخة من أودو؟ إذا القائمة وقفت قبل كم نسخة، غالبًا ناشرها وقف معها.
- ناويين ترقّون السنة الجاية؟ تأكد إن الإضافة موجودة للنسخة الي بتنتقلون لها، لأنك بتشتريها لها مرة ثانية.
Community ولا Enterprise؟
في صفحة الإضافة قسم اسمه Odoo Apps Dependencies: التطبيقات الي لازم تكون عندك عشان تشتغل. إذا فيها تطبيق موجود في Enterprise بس، الإضافة ما راح تتثبّت على Community مهما كان وصفها حلو.
والعكس يصير بعد: إضافات مكتوبة لـ Community عشان تعوّض شي جاهز في Enterprise. مثلًا تطبيق واتساب الرسمي في أودو موجود في Enterprise بس، فتلقى في المتجر إضافات واتساب كثيرة موجهة لـ Community. لو ثبّت وحدة منها على Enterprise، صار عندك طريقتين لنفس الشغل، والثنتين يعدّلون على نفس الشاشات. الفرق هذا شرحناه في إشعارات أودو على واتساب.
مين بيصونها؟
أسئلة متجر أودو واضحة في هالنقطة: الدعم من الناشر، مو من أودو. والناشر مطلوب منه يصلح الأخطاء الي تمنع المزايا المعلنة ويساعدك في الإعدادات، أما التعديلات والمزايا الجديدة فعادة بفلوس زيادة. وأودو نفسه يقول إنه ما يراجع كل موديول ينرفع، وإنه يشيل الإضافة لما يكتشف فيها كود مسروق أو برمجيات خبيثة أو مزايا مخفية أو جمع بيانات بدون إذن.
فقبل ما تشتري:
- مين الناشر؟ شركة لها موقع وقناة دعم، ولا اسم ما له أي أثر؟
- اقرأ النقاش في صفحة الإضافة. الناس تسأل؟ الناشر يرد؟ ومتى آخر رد؟
- أرسل له سؤال تقني قبل الدفع. مثلًا: «وش يصير للدفعة الي سجلتها إضافتكم لو ألغيت الفاتورة بعدها؟». طريقة جوابه تقول لك وش بتلقى بعد ما تدفع.
- شوف الرخصة. إذا كانت OPL-1، نص رخصة أودو الخاصة يمنع نشر الإضافة أو توزيعها أو بيعها، معدّلة أو كما هي. وإذا كانت LGPL-3 فهي أوسع بكثير. وفي الحالتين أنت تنزّل ملفات الموديول نفسها، وعادة تقدر تقراها، وهذا الي يحميك لو الناشر اختفى: أي مطور يقدر يكمّل عليها.
اقرأ الكود، أو خلّ أحد يقراه لك
صفحة الإضافة تعرض Lines of code. هذا مو مقياس جودة، بس مؤشر: إضافة تضيف حقل وتقرير وفيها آلاف الأسطر، وش يسوي الباقي؟ وربط كامل مع بوابة دفع في مية سطر، وين معالجة الأخطاء؟
وإذا عندك مطور أو شريك تقني، هذي أول الأشياء الي نفتحها:
- ملف
__manifest__.py: النسخة، والتطبيقات الي تعتمد عليها، وexternal_dependencies، يعني مكتبات بايثون لازم تتثبّت على السيرفر، وهذي تفرق على Odoo.sh. - دوال أودو الأساسية الي تعدّلها، مثل
createوwriteواعتماد الفاتورة. إذا وحدة منها ما تناديsuper()، الإضافة تبلع سلوك أودو وسلوك أي إضافة ثانية تعدّل نفس الدالة، بدون ما أحد يدري. sudo()في كل مكان، وSQL خام مبني بدمج النصوص. الأول يتخطى الصلاحيات، والثاني باب لحقن SQL ويتخطى كل قواعد أودو.- الصلاحيات: كل جدول جديد له سطر في
ir.model.access.csv، وإذا عندك أكثر من شركة، قواعد سجلات (Record Rules) تفصل بياناتهم. - اتصالات بسيرفرات خارجية ما ذكرها الوصف: فحص ترخيص يتصل بالناشر، أو بيانات تطلع لمكان ما تعرفه.
- كود مشفّر أو مخفي. الي ما تقدر تقراه ما تقدر تصونه.
- مجلد
testsوملف ترجمةi18n/ar.po. وجودهم ما يضمن شي، بس غيابهم يقول لك كثير.
جرّبها على نسخة، مو على النظام الحي
لا تثبّت أي إضافة على قاعدة البيانات الي يشتغل عليها فريقك. خذ نسخة منها (فرع staging على Odoo.sh، أو نسخة مكررة على سيرفرك)، وثبّتها هناك، ومشّ العملية كاملة ببياناتك الحقيقية: الفاتورة، والمرتجع، وإقفال جلسة الكاشير. وجرّب بمستخدم عادي، مو بحساب الأدمن الي يشوف كل شي.
وجرّب إلغاء التثبيت بعد. لما تشيل إضافة من أودو، الحقول والجداول الي أضافتها تنحذف مع بياناتها. اعرف وش بتخسر قبل ما تبني شغلك عليها.
واستعجل في التجربة لسبب ثاني: حسب شروط المتجر، المطالبة باسترجاع المبلغ مسموحة خلال أول شهرين من الشراء. تفتحها من زر الدعم في صفحة طلبك، وهي القناة الوحيدة الي تنحسب فيها مهلة الاسترجاع. الناشر عنده 15 يوم يحلها، وبعدها أي طرف يقدر يطلب تدخّل أودو. والمبلغ ينرد لو فيه خطأ ما انصلح، أو ميزة معلنة مو موجودة، أو الإضافة ما تتثبّت على النسخة المكتوبة عليها. أما «تشتغل، بس ما تناسبنا» فما ينرد.
وش ينكسر وقت الترقية
توثيق أودو للترقية يقول إن قاعدة البيانات الي فيها موديولات مخصصة ما تترقّى لين تتوفر نسخة من هالموديولات للنسخة الجديدة. والإضافة الي اشتريتها من المتجر حالها حال أي كود مو من أودو نفسه: تنتظر ناشرها.
والتغييرات مو شكلية. أودو 17 شال attrs وstates من الشاشات واستبدل name_get، وأودو 18 غيّر اسم شاشات tree إلى list. وواجهة نقاط البيع تتغير كثير بين النسخ، فأي إضافة تلمس الكاشير تحتاج شغل حقيقي مع كل ترقية. الناشر الي يصون إضافته يسوي هالشغل، والي ما يصونها يخليك واقف على نسختك.
متى تبنيها بدل ما تشتريها؟
الشراء يكسب في أغلب الحالات العامة: بوابة دفع، تقرير، ربط منتشر. والبناء يكسب لما:
- بتعدّل الإضافة كثير عشان تناسبك. هنا صرت تملك نسخة معدّلة من كود غيرك، وأول تحديث من الناشر يمسح تعديلاتك.
- العملية هي الي تميّزك، وما تبي تغيّرها عشان تناسب إضافة.
- ما فيه إضافة على نسختك، أو الموجودة تفشل في فحوصات الكود الي فوق.
- تحتاج ربط مع نظام محلي ما له أحد في المتجر.
وفيه حل وسط نستخدمه كثير: تشتري الإضافة كما هي، وأي تعديل تحتاجه يكون في موديول صغير مستقل يورث منها (_inherit)، بدون ما تلمس ملفاتها. كذا تحديثات الناشر توصلك، وتعديلاتك تبقى. والسؤال الأكبر (أودو ولا نظام خاص كامل) غطيناه في أودو ولا نظام مخصص؟.
شكل الإضافة المصانة: مثال من شغلنا
تابي وتمارا لأودو إضافة بنيناها وننشرها في متجر أودو، تربط الدفع بالتقسيط مع المتجر الإلكتروني ونقاط البيع والفواتير. (الإضافة من تطويرنا، وما هي تابعة لتابي ولا تمارا.) نذكرها هنا عشان تشوف شكل الأجوبة الي تدوّر عليها في أي إضافة:
- فرع لكل نسخة من 14 إلى 19، على Community وEnterprise.
- رخصة LGPL-3، وكود بايثون مقروء تقدر تعدّل عليه وتوسّعه.
- المرتجعات الكاملة والجزئية من داخل أودو نفسه.
- سجل لطلبات الـ API، والمفاتيح السرية مخفية فيه.
- أدلة إعداد مكتوبة، وقناة دعم معروفة.
وإذا تقارن بين البوابات نفسها، كتبنا عنها في بوابات الدفع في السعودية.
أسئلة سريعة
الإضافات المجانية أأمن؟
المجانية مو بالضرورة مصانة، والمدفوعة مو بالضرورة سليمة. إضافات OCA (مجتمع أودو) لها ميزة: التعديلات يراجعها مساهمين غير كاتبها، وكل نسخة من أودو لها فرع منفصل في مستودعاتهم. بس نفس الفحوصات الي فوق تنطبق عليها.
اشتريت الإضافة لنسخة 16 وبنرقّي، أشتريها مرة ثانية؟
حسب شروط المتجر، من أودو 13 وطالع كل نسخة تنباع لحالها. حطها في ميزانية الترقية من البداية.
أقدر أعدّل على الإضافة الي اشتريتها؟
لاستخدامك، غالبًا أي حسب الرخصة. بس لا تعدّل ملفاتها، ابنِ تعديلك في موديول مستقل فوقها.
الناشر اختفى، وش أسوي؟
الكود عندك. مطور يقدر يراجعه ويصونه ويرقّيه لك، وهنا يبان إذا كان مكتوب صح ولا لا.
كيف نشتغل عليها
لما يكون العميل محتار في إضافة من المتجر، نفحصها قبل ما يدفع: النسخة، والتطبيقات الي تعتمد عليها، والكود نفسه. بعدها نثبّتها على نسخة من بياناته ونمشّي عمليته كاملة. إذا صمدت، نركّبها وأي تعديل يكون في موديول مستقل فوقها. وإذا ما صمدت، نبنيها صح من الأول.
شوف صفحة أودو وأودو مع الفوترة الإلكترونية، أو احجز استشارة وأرسل لنا رابط الإضافة الي تفكر فيها.