مقارنة بين Nordlet و Odoo للمنصات الرقمية
مقارنة موجهة للمطورين الذين يفاضلون بين واجهة برمجة تطبيقات محاسبية مدمجة وبين حزمة تخطيط موارد مؤسسات (ERP) مفتوحة المصدر، استناداً إلى وثائق كل منتج.
غالباً ما يتم إدراج Odoo و Nordlet معاً في القوائم المختصرة لفرق تطوير المنصات، ولكنهما ليسا من نفس النوع من المنتجات. إن Odoo عبارة عن حزمة تطبيقات تجارية واسعة النطاق تحتوي على نظام محاسبي بداخله، ويمكنك استضافته ذاتياً وتعديله. أما Nordlet فهو نظام خلفي محاسبي لا طموح له سوى المحاسبة، وقد صُمم ليتم استدعاؤه من منتجات جهات أخرى.
عادة ما يتحدد الاختيار بناءً على سؤالين رئيسيين: ما حجم أعمالك الذي ترغب في وضعه داخل نظام واحد، ومن الذي سيتولى تشغيله. وكل ما ورد أدناه حول Odoo مستمد من وثائق Odoo الرسمية صفحات التسعير الخاصة به، مع وضع روابط حيثما كان ذلك مناسباً.
ما هو كل منتج
Odoo هو حزمة برمجيات مفتوحة المصدر تغطي المحاسبة، والمخزون، والتصنيع، والمبيعات، وإدارة علاقات العملاء (CRM)، والموارد البشرية، ومواقع الويب، والمزيد، وهي متاحة عبر Odoo Online، أو على منصة Odoo.sh، أو للاستضافة الذاتية. وتكمن نقاط قوتها في شموليتها، وقابليتها للتوسع، وخيار تشغيلها بنفسك. أما السلوك المحاسبي الخاص بكل دولة فيأتي من وحدات التوطين (localisation modules)، ويتمتع المجتمع المحيط به بحجم كبير.
Nordlet هي واجهة برمجة تطبيقات (API) للمحاسبة السحابية. وهي توفر دفتر أستاذ مزدوج القيود (double-entry ledger) غير قابل للتعديل، والفواتير، وسجلات المشتريات، وتغذية البنوك والتسوية، والمخزون، والأصول الثابتة، وكشوف المرتبات، والتقارير، ومعالجة ضريبة القيمة المضافة في الاتحاد الأوروبي من خلال واجهة REST واحدة - تضم حالياً أكثر من 400 نقطة نهاية (endpoints) عبر 29 وحدة، يتم توليدها من مواصفات OpenAPI واحدة. وهناك تطبيق خاص بها، ويعمل على نفس نقاط النهاية التي يحصل عليها المستخدمون الخارجيون.
سؤال واجهة برمجة التطبيقات (API)، والذي يحسم معظم عمليات التقييم
هنا تتباعد المنتجات بشكل حاد بالنسبة لمطوري المنصات.
واجهة برمجة التطبيقات الخارجية لـ Odoo تعمل على مستوى النماذج (model-level). حيث تقوم بالمصادقة ثم استدعاء طرق تخزين الكائنات ونظم الإدارة (ORM methods) على نماذج البيانات مثل account.move للقيود اليومية والفواتير، وres.partner لجهات الاتصال، وaccount.account لدليل الحسابات، وذلك عبر بروتوكول XML-RPC أو JSON-RPC. هذا الأمر قوي للغاية: فأي شيء يمكن للنظام نمذجته، يمكنك الوصول إليه. ولكنه يعني أيضاً أن مسؤولية استخدام النماذج بشكل صحيح تقع على عاتقك وحدك، ويكون تكامل نظامك مرتبطاً بنموذج البيانات الداخلي لـ Odoo بدلاً من ارتباطه بعقد نطاقي (domain contract) مستقر.
وهناك حقيقتان مستمَدتان من مواد Odoo الخاصة تغيران معادلة الحساب:
- تشير وثائق Odoo إلى أن الوصول إلى واجهة برمجة التطبيقات الخارجية متاح ضمن شريحة التسعير المخصصة (Custom) وليس على خطط التطبيق الواحد المجاني (One App Free) أو القياسية (Standard). وعليه، يُعد الوصول إلى واجهة برمجة التطبيقات قراراً سعرياً وليس تقنياً فحسب. ويمكن الاطلاع على الخطط والأسعار الحالية على صفحة تسعير Odoo.
- أعلنت Odoo عن جدولة إزالة نقاط النهاية
/xmlrpcو/xmlrpc/2و/jsonrpc- في الإصدار Odoo 22 و Odoo Online 21.1 - مع توفير واجهة برمجة تطبيقات أحدث تُسمى JSON-2 API كبديل لها. وبالتالي، فإن أي تكامل يتم برمجته بناءً على نقاط نهاية RPC الحالية سينتظره ترحيل (migration) في المستقبل.
واجهة برمجة التطبيقات لـ Nordlet تعمل على مستوى النطاق (domain-level). حيث تتم العمليات عبر POST /v1/{module}/{resource}/{action} مع تضمين جسم طلب بصيغة JSON، لذا فأنت تستدعي sales/invoices/issue بدلاً من التلاعب بنموذج القيود اليومية مباشرة، وتصبح التبعيات المحاسبية مسؤولية واجهة برمجة التطبيقات نفسها. وتحمل مفاتيح المصادقة نطاقات (scopes) مثل sales:write. كما تُحْمَى عمليات إعادة المحاولة بواسطة ترويسة Idempotency-Key: حيث يعيد نفس المفتاح الذي يحمل نفس الحمولة (payload) الاستجابة المخزنة مسبقاً، بينما يتم رفض نفس المفتاح في حال تغير الحمولة مع إرجاع الخطأ idempotency_key_reuse بدلاً من قبوله بصمت. ويتم كتابة أحداث الخطافات (webhooks) في صندوق صادر معاملاتي (transactional outbox) ضمن نفس معاملة قاعدة البيانات التي تم فيها التغيير، بحيث لا يُصدر المستند الذي تم التراجع عن معاملته أي حدث على الإطلاق، ويتم توقيع عمليات التسليم بتوقيع HMAC يمكنك التحقق منه.
مقارنة الميزات
الخلايا التي تحمل عبارة "غير مؤكد علنواً" تعني أننا لم نتمكن من التحقق من الميزة بالمستوى الذي يحتاجي إليه المطور قبل الالتزام باستخدامها. وهي لا تمثل ادعاءً بعدم وجودها.
| الميزة | Nordlet | Odoo |
|---|---|---|
| شكل المنتج | واجهة برمجة تطبيقات محاسبية، مُستضافة | حزمة أعمال كاملة؛ مُستضافة أو ذاتية الاستضافة |
| واجهة الاستخدام الرئيسية | واجهة برمجة تطبيقات REST مع حزمة تطوير برمجيات (SDK) مكتوبة بلغة TypeScript | تطبيق ويب؛ واجهة برمجة تطبيقات خارجية على مستوى النماذج |
| بروتوكول واجهة برمجة التطبيقات | JSON عبر HTTPS، بنمط RPC لكل إجراء | XML-RPC و JSON-RPC، مع استبدالهما بواجهة JSON-2 API |
| توفر واجهة برمجة التطبيقات | في كل خطة، وجميع الوحدات | خطمة مخصصة (Custom) حسب وثائق Odoo |
| دفتر الأستاذ مزدوج القيود | نعم، يتم فرض التوازن بواسطة مشغل قاعدة بيانات (database trigger) عند الالتزام | نعم، داخل الوحدة المحاسبية |
| إغلاق الفترات المالية | نعم؛ يتم رفض القيود المؤرخة داخل فترة مغلقة بالخطأ 409 |
تواريخ الإغلاق مدعومة في الوحدة المحاسبية |
| مفاتيح منع التكرار (Idempotency keys) | نعم، دلالات موثقة تشمل إعادة التشغيل والتعارض | غير مؤكد علنواً لواجهة برمجة التطبيقات الخارجية |
| الخطافات (Webhooks) | نعم، موقعة، يُعاد محاولة إرسالها، وتصدر من صندوق صادر معاملاتي | إجراءات آلية وخطافات موجودة؛ ضمانات التسليم غير مؤكدة علنواً |
| سجل التدقيق (Audit record) | كل عملية تعديل تشمل الفاعل، والإجراء، والكيان، والفروق؛ وقابلة للاستعلام | ملاحظات الدردشة وسجل السجلات؛ النطاق يختلف حسب النموذج |
| ضريبة القيمة المضافة في الاتحاد الأوروبي | معدلات لكل دولة لدول الاتحاد الـ 27، والتحقق من رقم تسجيل ضريبة القيمة المضافة VIES، وحساب نظام One Stop Shop / Import One Stop Shop مع التصحيحات | وحدات توطن خاصة بكل دولة؛ العمق يختلف حسب الدولة |
| الفوترة الإلكترونية | معيار EN 16931 UBL لشبكة Peppol BIS 3.0؛ التنسيقات الوطنية لإيطاليا، بولندا، رومانيا | تغطي وحدات التوطين عدة تنسيقات وطنية |
| المخزون والتصنيع | مخزون الوارد أولاً صادر أولاً (FIFO)، قوائم المواد (BOM)، التجميع والتفكيك، مسارات التوجيه، مراكز العمل، أوامر الإنتاج مع التسجيل لكل عملية، فحوصات الجودة، الصيانة | واسعة النطاق، وممثل نقطة قوة أساسية |
| إدارة علاقات العملاء، موقع الويب، التسويق | استفسارات الشركاء، المجموعات والحالات فقط؛ لا يوجد منشئ مواقع ويب أو أدوات تسويق | نعم، نقطة قوة أساسية |
| الاستضافة الذاتية (Self-hosting) | لا؛ دعم جلب السحابة الخاصة بك (BYOC) مدرج في الشريحة المخصصة (Custom) | نعم |
| توفر الكود المصدري | ملكية خاصة (Proprietary) | نواة مفتوحة المصدر، مع إصدارات مدفوعة |
| الشركات المتعددة | عدد غير محدود من الشركات تحت حساب واحد، صلاحيات مبنية على الأدوار | دعم الشركات المتعددة مدعوم |
نماذج التسعير
لا يمكن مقارنة النموذجين جنباً إلى جنب، لأنهما يتقاضيان الرسوم مقابل أشياء مختلفة.
Odoo يتقاضى رسوماً لكل مستخدم شهرياً، مع خطة مجانية تقتصر على تطبيق واحد وإمكانية الوصول إلى واجهة برمجة التطبيقات الخارجية في الشريحة المخصصة (Custom). أما بالنسبة للمنصات، فالجانب المزعج يتمثل في أن "المستخدمين" يُعد مؤشراً ضعيفاً لتحديد حجم الحمل عندما يكون برنامجك، وليس موظفوك، هو من يولد القيود المحاسبية. بينما تلغي الاستضافة الذاتية تكلفة الاشتراكات وتضيف تكاليف البنية التحتية والصيانة.
Nordlet يتقاضى رسوماً حسب عدد الطلبات (per request). الخطط المنشورة تبدأ من 10 يورو شهرياً مقابل 3,000 طلب، و50 يورو مقابل 30,000 طلب، و300 يورو مقابل 200,000 طلب، مع احتساب التكاليف للطلبات الإضافية لكل طلب، إضافة إلى توفر خطة مخصصة عند الطلب. وكل خطة تتضمن كافة الوحدات وواجهة برمجة التطبيقات كاملة؛ والمستخدمون والشركات وشركات البيئة التجريبية (sandbox) بلا حدود. ويُحتسب الطلب كأي إجراء يتم تنفيذه عبر واجهة برمجة التطبيقات أو التطبيق.
النتيجة العملية: سوق إلكتروني يضم أربعة موظفين و50,000 إجراء محاسبي شهرياً سيقوم بالدفع مقابل 50,000 إجراء وفقاً للنموذج الاستهلاكي، بينما سيدفع مقابل أربعة مستخدمين وفقاً لنموذج الدفع لكل مستخدم - علماً أن رقم المستخدمين لا يتغير عند مضاعفة حجم العمل، وهو سلاح ذو حدين. قم بنمذجة أرقامك الخاصة بدقة.
أين يكون Odoo هو الخيار الأفضل
- كنت ترغب في إدارة المحاسبة، والمخزون، والتصنيع، وعلاقات العملاء، وموقع الويب داخل نظام واحد وقاعدة بيانات واحدة.
- كنت بحاجة إلى الاستضافة الذاتية لأسباب تتعلق بإقامة البيانات، أو التكاليف، أو السياسات التنظيمية.
- كنت ترغب في تعديل الكود المصدري، وتمتلك القدرة الداخلية لصيانة تلك التعديلات مع كل ترقية جديدة.
- كانت محاسبتك عبارة عن إدارة أعمال داخلية وليست ميزة أساسية للمنتج الذي تبيعه.
- كنت تتواجد في دولة تتوفر فيها وحدة توطين قوية لـ Odoo ويتم صيانتها بفعالية.
إن شمولية Odoo حقيقية، ولا توجد واجهة برمجة تطبيقات محاسبية تعوضها.
أين يناسب Nordlet
- كان برنامجك، وليس موظفوك، هو من ينشئ الأحداث المحاسبية.
- كنت بحاجة إلى دفاتر حسابات للعديد من الشركات تحت حساب واحد دون الحاجة لاشتراك لكل كيان على حدة.
- كنت بحاجة إلى ثوابت مفروضة يمكن لمنصتك الاعتماد عليها: قيود متوازنة، ترقيم خالٍ من الفجوات، فترات مغلقة، سجل تاريخي غير قابل للتعديل، وعمليات كتابة ذات خصائص متطابقة (idempotent writes).
- كنت ترغب في التكامل مع عقد نطاقي مستقر بدلاً من نموذج بيانات داخلي.
- كانت التزاماتك تجاه ضريبة القيمة المضافة في الاتحاد الأوروبي تمتد عبر عدة دول وكنت تفضل عدم صيانة تلك المنطقية البرمجية بنفسك.
الحدود، بكل وضوح: يتواجد Nordlet في مرحلة الوصول المبكر (early access) وتصميم شركاء الإعداد؛ وهو مُستضاف بدلاً من استضافته ذاتياً؛ كما تحمل سجلات الشركاء الاستفسارات والمجموعات والحالات بدلاً من مسار مبيعات كامل (sales pipeline)، ولا يتضمن منشئ مواقع ويب أو وظائف تسويقية؛ وكشوف المرتبات تقتصر على ليتوانيا وحدها؛ وحزم الإقرارات الضريبية المحلية متاحة لثلاث دول حالياً - ليتوانيا (FR0600)، وألمانيا (UStVA)، وبولندا (JPK_V7M) - مع حساب ضرائب OSS و IOSS دون تقديمها نيابة عنك.
ما نود التحقق منه قبل الالتزام
- تأكد من خطة Odoo التي تحتاجها بالفعل. إذا كان الوصول إلى واجهة برمجة التطبيقات الخارجية يتطلب الشريحة المخصصة (Custom)، فقم بتسعير تلك الشريحة بناءً على عدد مستخدميك وليس على شريحة الدخول.
- اسأل عن الجدول الزمني لترحيل RPC لأي تكامل مع Odoo تخطى موعد إيقاف نقاط النهاية الحالية المعلن عنه.
- اختبر عمليات إعادة المحاولة على النظامين. أرسل نفس الطلب مرتين واقِع القيود الناتجة.
- اختبر نظام الإغلاق. أغلق فترة مالية، ثم حاول ترحيل قيود داخلها.
- تحقق من دولتك المحددة. بالنسبة لـ Odoo، تحقق من وحدة التوطين ومدى نشاط صيانتها؛ وبالنسبة لـ Nordlet، تحقق من مخرجات ضريبة القيمة المضافة المتاحة لتلك الدول حالياً.
- قم بنمذجة التكلفة الإجمالية على مدى ثلاث سنوات، بما في ذلك الاستضافة وجهود الترقية إذا اخترت الاستضافة الذاتية، ونمو حجم الطلبات إذا اخترت نموذج الاستهلاك.
FAQ
هل Odoo مجاني؟
تنشر Odoo خطة مجانية تقتصر على تطبيق واحد، والإصدار المجتمعي مفتوح المصدر. أما بالنسبة لتكامل المنصات، فالتكاليف ذات الصلة عادة ما تكون الاستضافة، والترقيات، وصيانة التوطين، والشريحة المدفوعة المطلوبة للوصول إلى واجهة برمجة التطبيقات الخارجية، وليست رخصة البرنامج نفسها.
هل يمكن استخدام Odoo كخلفية محاسبية مدمجة لسوق إلكتروني؟
يمكن دمجه، وتقوم بعض الفرق بذلك بالفعل. الاعتبارات الأساسية هنا هي أن واجهة برمجة التطبيقات الخارجية تعمل على مستوى نموذج البيانات، وأن الوصول إلى واجهة برمجة التطبيقات مرتبط بشريحة تسعير محددة، وأن نقاط نهاية RPC الحالية مجدولة للاستبدال، وأنك تتحمل مسؤولية الاستخدام الصحيح للنماذج المحاسبية. تحقق من هذه النقاط مقابل متطلباتك الخاصة بدلاً من افتراض أي من الامرين مسبقاً.
هل يقوم Nordlet بكل ما يقوم به Odoo؟
لا. إن Nordlet يختص بالمحاسبة والعمليات المرتبطة بها - الفوترة، دفتر الأستاذ، البنوك، المخزون، الأصول، الإنتاج، كشوف المرتبات، التقارير، وضرائب الاتحاد الأوروبي. ويغطي التصنيع قوائم المواد، ومسارات التوجيه، ومراكز العمل، أوامر الإنتاج مع التسجيل لكل عملية، وفحوصات الجودة، وصيانة المعدات، وذلك دون توفير تخطيط الطلب والقدرات الذي يقدمه Odoo. كما تحمل سجلات الشركاء الاستفسارات والمجموعات والحالات بدلاً من مسار المبيعات، ولا توجد أدوات لإنشاء مواقع الويب أو أدوات تسويقية.
أيهما أفضل لضريبة القيمة المضافة في الاتحاد الأوروبي؟
يعتمد ذلك على الدولة. يوفر Nordlet معدلات ضريبة القيمة المضافة لكل دولة في الاتحاد الأوروبي، والتحقق من رقم VIES، وحساب إقرارات OSS و IOSS مع تصحيحات الفترات السابقة، وسجلات i.SAF، ومعيار EN 16931 UBL، وتعتبر ليتوانيا الدولة الأكثر عمقاً في حزمة الدول المدعومة. أما تغطية Odoo فتأتي من وحدات التوطين التي يختلف عمقها وصيانتها من دولة لأخرى، لذا فالإجابة الصادقة لأي دولة معينة هي التحقق من وحدة تلك الدولة بالتحديد.
هل يمكنني استضافة Nordlet ذاتياً؟
ليس على الخطط القياسية. تدرج الشريحة المخصصة (Custom) دعم جلب السحابة الخاصة بك (bring-your-own-cloud)، وهو النقاش الذي يجب إجراؤه إذا كانت الاستضافة الذاتية متطلباً أساسياً.