انتقل إلى المحتوى
Taha Media

هل يعمل أودو بدون إنترنت؟ ما الذي يعمل فعلاً، وكيف تبني سيرفراً محلياً يزامن مع السحابة

حدود وضع عدم الاتصال في نقطة بيع Odoo، ولماذا لا تعمل الفواتير والمخزون بدون إنترنت في Odoo السحابي، وثلاثة حلول عملية للمحلات والفروع ذات الاتصال غير المستقر.

نُشر في 4 دقائق قراءة

محل أو فرع أو مستودع في منطقة يتقطع فيها الإنترنت، ونظامه Odoo على السحابة. عند كل انقطاع يتوقف إصدار الفواتير ويقف العملاء في الطابور. السؤال المتكرر: هل يعمل أودو بدون إنترنت؟ الإجابة: جزء صغير منه فقط، وبشروط. هذا المقال يوضح ما يعمل، وما لا يعمل، والحلول الممكنة.

ما الذي يعمل بدون اتصال؟

نقطة البيع (POS) فقط، ولفترة محدودة

وثائق Odoo الرسمية لنقطة البيع تقول جملة واحدة في هذا الموضوع: التطبيق يعمل على أي جهاز فيه متصفح، "حتى لو كنت غير متصل مؤقتاً".

التفاصيل التقنية، كما يشرحها مطورو Odoo في المنتدى الرسمي:

  • نقطة البيع تطبيق JavaScript يعمل في المتصفح. عند فتح الجلسة وأنت متصل، تُحمَّل المنتجات والعملاء والأسعار وتُخزَّن محلياً في المتصفح (IndexedDB).
  • الطلبات التي تُنشأ أثناء الانقطاع تُحفظ محلياً كطلبات غير مُزامنة.
  • عند عودة الاتصال تُرسل تلقائياً إلى الخادم.
  • لا يمكن فتح جلسة جديدة بدون إنترنت. فقط الجلسة المفتوحة مسبقاً تستمر.

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

باقي Odoo: لا

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

ثلاثة حلول بحسب حالتك

الحل 1: الاعتماد على وضع POS المؤقت

يناسبك إذا كانت الانقطاعات قصيرة (دقائق) ونادرة، وعملك الأساسي البيع من نقطة البيع:

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

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

الحل 2: سيرفر Odoo داخل المحل

إذا كانت الانقطاعات طويلة أو متكررة، فالحل الجذري أن يكون الخادم داخل الشبكة المحلية: جهاز صغير (Mini PC) يشغّل Odoo Community مع Postgres. كل أجهزة المحل تتصل به عبر الشبكة الداخلية، فلا يتأثر العمل بانقطاع الإنترنت إطلاقاً.

ما تحتاجه:

  • جهاز بمواصفات معقولة (8 إلى 16GB RAM، وقرص SSD)، ومزود طاقة احتياطي (UPS) لأن انقطاع الكهرباء أخطر على قاعدة البيانات من انقطاع الإنترنت.
  • عنوان IP ثابت داخل الشبكة، واسم داخلي مثل odoo.lan.
  • شهادة HTTPS داخلية (مثلاً Caddy بخيار tls internal) تعمل بدون إنترنت، مع تثبيت شهادة الجهة على أجهزة الموظفين.
  • نسخ احتياطي ليلي إلى قرص ثانٍ على الأقل، ونسخة خارج المحل كلما توفر الاتصال.

العيب: البيانات محلية فقط. الإدارة في مكان آخر لا ترى المبيعات لحظياً، وإذا كان لديك عدة فروع فكل فرع جزيرة منفصلة.

الحل 3: سيرفر محلي + مزامنة مع Odoo السحابي

هنا يعمل الموظفون دائماً على النسخة المحلية، وخدمة في الخلفية ترفع ما أُنشئ محلياً (الفواتير، العملاء) إلى Odoo المركزي عندما يكون الاتصال متاحاً. هذا ليس ميزة جاهزة في Odoo، بل يُبنى عبر الواجهة البرمجية الخارجية (External API).

النقاط التي تحدد نجاح المزامنة أو فشلها:

  1. كشف الاتصال بدون تذبذب: فحص عدة أهداف، وعدم تغيير الحالة إلا بعد عدة نتائج متتالية، حتى لا "تقفز" الخدمة مع كل تأخير بسيط.
  2. عدم التكرار (Idempotency): إذا انقطع الاتصال في منتصف الإرسال، يجب ألا تُنشأ الفاتورة مرتين عند إعادة المحاولة. الطريقة الموثوقة ربط كل سجل محلي بمعرّف خارجي (External ID في ir.model.data) على الخادم المركزي، والتحقق منه قبل الإنشاء.
  3. العلاقات: الفاتورة تشير لعميل ومنتجات وضرائب وعملة. يجب مطابقتها على الطرف الآخر بمفتاح ثابت (رمز المنتج، الرقم الضريبي، المعرّف الخارجي مثل base.SAR).
  4. الأخطاء: خطأ الشبكة يُعاد مع تأخير متزايد. أما خطأ التحقق في سجل واحد فيُعزل في قائمة انتظار بعد عدة محاولات، دون إيقاف بقية السجلات.
  5. الترقيم: تسلسل أرقام الفواتير المحلية والمركزية يجب أن يكون محسوماً من البداية (بادئة لكل فرع مثلاً).

ملاحظة عن الواجهة البرمجية

أغلب أدوات المزامنة الحالية تستخدم XML-RPC. وثائق Odoo 19 تعلن أن واجهتي XML-RPC وJSON-RPC (/xmlrpc و/xmlrpc/2 و/jsonrpc) مهملتان (deprecated)، والبديل واجهة JSON-2 الجديدة، مع جدول إزالة يمتد إلى Odoo 22. إذا كنت تبني مزامنة جديدة على إصدار حديث، خطط للانتقال إلى JSON-2.

كيف تختار؟

حالتكالحل المناسب
انقطاعات قصيرة، بيع من POS فقطالحل 1
انقطاعات طويلة، فرع واحدالحل 2
عدة فروع وإدارة مركزية تحتاج الأرقامالحل 3
لا يوجد من يتابع سيرفراً محلياًالحل 1 مع اتصال احتياطي (شريحة بيانات 4G/5G)

خيار الاتصال الاحتياطي يستحق الذكر: راوتر بشريحة بيانات كخط ثانٍ يحل جزءاً كبيراً من المشكلة بتكلفة أقل من أي سيرفر، إذا كانت التغطية جيدة في منطقتك.

الخلاصة

Odoo السحابي لا يعمل بدون إنترنت، باستثناء جلسة نقطة بيع مفتوحة مسبقاً تحفظ الطلبات في المتصفح مؤقتاً. إذا كان عملك يتوقف مع كل انقطاع، فالحل سيرفر داخل المحل، ومعه مزامنة مدروسة إذا كنت تحتاج نسخة مركزية. والمزامنة الجيدة تُقاس بشيء واحد: تشغيلها مرتين لا يكرر أي فاتورة.

المصادر

تحتاج من ينفّذ هذا عنك؟

حزمة جاهزة

سيرفر Odoo يعمل بدون إنترنت مع مزامنة تلقائية

Odoo 18 وPostgres بـ Docker على سيرفر داخل المحل، وخدمة مزامنة ترفع الفواتير والعملاء إلى Odoo السحابي عند عودة الاتصال، مع 34 اختباراً ودليل استعادة بالعربية.

خدمة

أركّب لك النظام على سيرفرك مع SSL ونسخ احتياطي

n8n أو Supabase أو Odoo أو غيرها، على VPS أو جهاز داخل شركتك: Docker، دومين بشهادة SSL، نسخ احتياطي تلقائي مع شرح الاستعادة، ودليل تشغيل بالعربية. التسليم خلال يومين.