تقنِكس لنقاط البيع – نقطة بيع تعمل دون اتصال لأودو 19 كتطبيق ويب تقدمي: شيفرة Next.js المصدرية مع طاولات المطعم وتذاكر المطبخ والولاء والعربية
نقطة بيع لأودو 19 تعمل في المتصفح كتطبيق قابل للتثبيت وتواصل البيع عند انقطاع الشبكة: يُحفظ كل طلب على الجهاز أولًا ثم يُرسل إلى أودو مرة واحدة بالاستدعاء نفسه الذي تستخدمه نقطة بيع أودو. منتجات بخيارات ووجبات مركبة ودفع مقسّم وإيصالات بباركود ورمز QR وطاولات المطعم وتذاكر المطبخ ولوحة معلومات والاستعلام عن المخزون والحجز بعربون والولاء بالعربية والإنجليزية. الشيفرة المصدرية كاملة بـ Next.js دون أي وحدة أودو للتثبيت.
يعمل تقنِكس لنقاط البيع في المتصفح كتطبيق قابل للتثبيت (PWA). يحتفظ بالمنتجات والعملاء والطلبات المفتوحة على الجهاز، ويبيع دون اتصال، ويرسل كل طلب إلى أودو مرة واحدة عبر pos.order.sync_from_ui، وهو الاستدعاء نفسه الذي تستخدمه نقطة بيع أودو. لا توجد وحدة أودو للتثبيت: يعمل مع نقطة البيع القياسية في أودو 19. وتحصل على تطبيق ويب جاهز للتشغيل (فُكّ ضغطه وشغّله بـ Node.js وافتحه في Chrome) والشيفرة المصدرية الكاملة بـ Next.js، لشركتك ولأي عدد تحتاجه من الأجهزة.
للكاشير
شاشة بيع للمنضدة والجهاز اللوحي: بحث بالاسم أو المرجع أو الباركود وفئات ملونة ومفضلة وماسح باركود يكتب كلوحة مفاتيح واختصارات لوحة المفاتيح
منتجات بخيارات ووجبات مركبة بأسعار الخيارات الإضافية والاستثناءات ومجموعات «1 من 2» كما في أودو؛ وملاحظات وخصم على البند والطلب وقوائم أسعار ومواقف ضريبية
العملاء: بحث وتفاصيل، وإنشاء عملاء جدد دون اتصال عندما يملك مستخدم أودو هذه الصلاحية
الدفع: عدة طرق وباقٍ نقدًا وتقريب النقد والدفع على حساب العميل وخيار الفاتورة
إيصالات 58 أو 80 مم بأحرف الضرائب كما في أودو وباركود ورمز QR، تُطبع عبر المتصفح
العربية والإنجليزية بتخطيط كامل من اليمين إلى اليسار و5 سمات ولون علامتك التجارية ورمز قفل ورمز المدير للخصومات والاستردادات والإلغاء
العمل دون اتصال أولًا
يُكتب كل طلب على الجهاز قبل عرض الإيصال، ثم يُرسل طلبًا بعد طلب بدءًا بالأقدم؛ ويتعرّف أودو على الطلب الموجود لديه فلا يتكرر الطلب إذا ضاع الرد
تُعاد المحاولة عند أخطاء الشبكة (من 5 ثوانٍ حتى كل 15 دقيقة)؛ ويبقى الرفض في شاشة المزامنة مع سببه والصلاحية الناقصة
تصل تغييرات المنتجات كتحديثات صغيرة كل 5 دقائق؛ ويبدأ الجهاز دون اتصال منذ الزيارة الأولى (عامل الخدمة)
إجماليات مثل أودو
يحفظ أودو الإجماليات التي ترسلها نقطة البيع، لذلك يحسبها الجهاز بـنسخة TypeScript من شيفرة الضرائب في أودو 19 وقواعد الأسعار في نقطة البيع (قوائم الأسعار والمواقف الضريبية والوجبات المركبة والخيارات وتقريب النقد والخصم العام). فُحصت على 667 سيناريو حسبها أودو 19 نفسه (أُرسل 447 منها إلى أودو) وعلى 1,149 طلبًا آخر أُرسلت إلى أودو وأُعيد حسابها ببايثون وجافاسكربت أودو. والحالات التي يختلف فيها عميل أودو عن خادمه موثّقة.
المطاعم
عندما تكون وحدة المطاعم في أودو مثبتة ونقطة البيع مطعمًا: مخطط الصالة من أودو بحالات الطاولات الحية، وطلبات الطاولات مع الضيوف والإعدادات المسبقة، وتذاكر المطبخ لكل طابعة ترسل ما تغيّر فقط، وتقسيم الفاتورة والنقل والدمج والإكرامية.
شاشات احترافية مشمولة
لوحة معلومات (المبيعات والطلبات ومتوسط الفاتورة والضرائب وطرق الدفع والأكثر مبيعًا)، والاستعلام عن المخزون في كل المستودعات، والحجز بعربون مع الدفعات المقدمة، ونقاط الولاء وأكواد الخصم.
القياسات
على جهاز Mac واحد بمعالج Apple Silicon يعمل عليه أودو والتطبيق والمتصفح معًا (ليس جهازًا لوحيًا؛ سيكون الجهاز اللوحي أبطأ): تنزيل 20,000 منتج و20,000 عميل في 24.5 ثانية؛ وبدء دافئ حتى شبكة منتجات جاهزة في 0.78-0.87 ثانية؛ وبحث المنتجات نحو 80 مللي ثانية؛ وإضافة إلى السلة 1.7 مللي ثانية (الوسيط)؛ وإرسال 1,000 طلب انتظرت دون اتصال في 169 ثانية بالترتيب ودون تكرار.
الاختبارات
3,336 اختبارًا آليًا (وحدات وتكامل مع أودو محاكى ومحرك الضرائب مقابل أرقام أودو)، إضافة إلى 66 اختبارًا حيًا تعمل على قاعدة بيانات أودو 19 حقيقية.
حدود بصراحة
لم تُجرَّب الطابعات وماسحات الباركود وأدراج النقد على أجهزة حقيقية؛ والطباعة عبر المتصفح فقط (لا ESC/POS مباشرة ولا صندوق IoT ولا طباعة Epson ePOS عبر الشبكة من الجهاز)؛ ولا ربط بأجهزة الدفع
جُرّب في متصفحات عائلة Chromium (Chrome وEdge)؛ ولم يُجرَّب Safari وFirefox
جُرّب على أودو 19 Community ولم يُجرَّب أودو Enterprise. ملف Dockerfile مرفق ولم تُبنَ الصورة في اختباراتنا
شُغّل التطبيق الجاهز للتشغيل على ماك مع Node.js 24؛ ولم يُجرَّب ملف التشغيل لويندوز ولا لينكس ولا Node.js 20 و22
لا يستطيع الكاشير العادي إنشاء العملاء أو حفظ قيم الخصائص المخصصة أو بيع منتجات الدفعات والأرقام التسلسلية دون صلاحيات أودو المناسبة (تعرض شاشة الإعداد الصلاحيات الناقصة التي تستطيع فحصها)
غير مشمول: الأطباق المتتالية في المطعم وتعديل مخطط الصالة (يتم في أودو) وبطاقات الهدايا والمحفظة الإلكترونية (تُخفى منتجاتها من الكتالوج عندما يكون أحد هذه البرامج نشطًا لأن الجهاز لا يستطيع إضافة رصيدها) وتعدد الشركات وتسجيل دخول الموظفين (pos_hr) والطلب الذاتي
رمز القفل قفل للراحة، وليس حماية ممن ينسخ ملف تعريف المتصفح
محتويات الحزمة
taqnix-pos-terminal-webapp.zip: تطبيق الويب جاهزًا للتشغيل (مبنيّ مسبقًا) مع ملف تشغيل لويندوز وماك ولينكس؛ يكفي Node.js 20.9 أو أحدث
دليل مصوّر بالعربية والإنجليزية (HTML وPDF) والرخصة وسجل التغييرات
المتطلبات
أودو 19.0 مع نقطة البيع (المطاعم والولاء والخصم اختيارية) وNode.js 20.9 أو أحدث (وهو كل ما يحتاجه التطبيق الجاهز للتشغيل؛ أو Docker) وHTTPS وChrome أو Edge على جهاز البيع.
ما يتضمنه التنزيل
الملفات الموجودة في الأرشيف الذي يمكنك تنزيله بعد الشراء.
لا توجد تقييمات بعد. هل اشتريت هذا المنتج؟ كن أول من يقيّمه.
الاستخدام
ثبّته واستخدمه في بضعة أسطر.
# in the folder taqnix-pos-terminal-webapp (unzipped from taqnix-pos-terminal-webapp.zip); only Node.js 20.9+ is neededsh start.sh https://your-odoo.example.com # Windows: start.bat https://your-odoo.example.com# then open http://localhost:3000 in Chrome or Edge (tills on other devices: put HTTPS in front, see README.txt)
# the application is in src/pos-terminal/ of the packagecd src/pos-terminalnpm cinpm run buildcp .env.example .env # set POS_ALLOWED_ORIGINS=https://your-odoo.example.com (and POS_DISABLE_JSONRPC=1)npm start # http://localhost:3000 - put it behind HTTPS (deploy/nginx.conf.example)npm test # the unit, integration and tax-engine tests (no Odoo needed)
Offline-first point of sale for Odoo 19 as an installable progressive web app (Next.js 16, React 19, TypeScript): no Odoo module to install.
Setup with a connection test (JSON-2 with API key or JSON-RPC, proxy or direct mode), point-of-sale picker, opening cash count and session closing with cash difference and closing report.
Sell screen: search, categories, favourites, barcode scanner, variants, combos, notes, discounts, pricelists, customers (also created offline when the user may), held orders.
Payment with several methods, change, cash rounding, customer account and invoice flag; receipts 58 / 80 mm with tax letters, barcode and QR; browser printing.
Offline data in IndexedDB with delta downloads; orders sent once, in order, with retries; Orders and Sync screens with reprint, refund, retry, export and diagnostics.
Tax and price engine ported from Odoo 19, checked against 667 scenarios computed by Odoo and 1,149 orders sent to Odoo.
Restaurant (when Odoo's Restaurant is installed): floor plan, table orders, kitchen tickets per printer, split bill, transfer, merge, tips.
Pro screens: dashboard, stock lookup across warehouses, layaway with deposits, loyalty points and promo codes.
Settings: 5 themes and brand colour, density, text size, English and Arabic (right to left), lock PIN, manager PIN.
Security: allow-listed proxy with address checks and a failed-login limit, Content-Security-Policy, encrypted key with a lock PIN.
Ready-to-run web app with launchers for Windows, macOS and Linux (only Node.js needed), and the complete source code.
3,336 automated tests; Dockerfile and nginx examples; documentation in English and Arabic.
الأسئلة الشائعة
ماذا أحصل عليه؟+
تطبيق الويب جاهزًا للتشغيل (يكفيك Node.js، مع ملف تشغيل لويندوز وماك ولينكس) والشيفرة المصدرية الكاملة للجهاز (Next.js 16 وReact 19 وTypeScript وTailwind CSS 4 وIndexedDB) مع 3,336 اختبارًا آليًا وملف Dockerfile وأمثلة nginx وبذرة المتجر التجريبي الظاهر في الصور ودليلًا مصوّرًا بالعربية والإنجليزية. الشراء الواحد يغطي شركة واحدة وعددًا غير محدود من الأجهزة.
هل أحتاج إلى وحدة أودو أو إلى أودو Enterprise؟+
لا توجد وحدة للتثبيت: يتصل الجهاز بنقطة البيع القياسية في أودو 19 بالاستدعاءات نفسها التي تستخدمها نقطة بيع أودو. جُرّب على أودو 19 Community ولم يُجرَّب على أودو Enterprise. وتُستخدم وحدات المطاعم والولاء والخصم عند تثبيتها.
كيف يعمل دون اتصال؟+
تُحفظ المنتجات والعملاء والضرائب والأسعار والطلبات المفتوحة في المتصفح (IndexedDB). ويُحفظ الطلب المدفوع على الجهاز قبل ظهور الإيصال ثم يُرسل إلى أودو طلبًا بعد طلب بدءًا بالأقدم، ويتعرّف أودو على الطلب الموجود لديه فلا يتكرر الطلب إذا ضاع الرد. تُعاد المحاولة عند أخطاء الشبكة، أما الرفض (مثل نقص صلاحية) فيبقى في شاشة المزامنة مع سببه. ويحتاج إغلاق الجلسة إلى الاتصال.
هل الإجماليات مطابقة لأودو؟+
يحفظ أودو الإجماليات التي ترسلها نقطة البيع، لذلك يحسبها الجهاز بنسخة TypeScript من شيفرة الضرائب في أودو 19 وقواعد الأسعار في نقطة البيع. وقد فُحصت على 667 سيناريو حسبها أودو 19 نفسه (أُرسل 447 منها إلى أودو) وعلى 1,149 طلبًا آخر أُرسلت إلى أودو وأُعيد حسابها ببايثون وجافاسكربت أودو. والحالات القليلة التي يختلف فيها عميل أودو عن خادمه مذكورة في الدليل.
هل أحصل على شاشات المطعم؟+
نعم عندما تكون وحدة المطاعم (pos_restaurant) مثبتة ونقطة البيع مطعمًا: مخطط الصالة وطلبات الطاولات وتذاكر المطبخ لكل طابعة وتقسيم الفاتورة ونقل الطاولات ودمجها والإكرامية. ولا يظهر شيء منها في نقطة بيع للتجزئة. أما الأطباق المتتالية (courses) وتعديل مخطط الصالة فليست في الجهاز (يُعدَّل المخطط في أودو).
ما الطابعات والماسحات وأدراج النقد التي تعمل؟+
الطباعة عبر المتصفح (إيصالات 58 أو 80 مم وتذاكر المطبخ) على أي طابعة يطبع عليها نظام التشغيل، ويستطيع Chrome الطباعة دون نافذة مع --kiosk-printing. لا توجد طباعة ESC/POS مباشرة ولا صندوق IoT ولا طباعة Epson ePOS عبر الشبكة ولا ربط بأجهزة الدفع. وتُقرأ ماسحات الباركود التي تكتب كلوحة مفاتيح في أي مكان. ولم تُجرَّب الطابعات والماسحات وأدراج النقد على أجهزة حقيقية.
هل هو آمن؟+
يتصل المتصفح بخادم التطبيق نفسه الذي لا يمرّر إلا قائمة ثابتة من مسارات أودو ويرفض العناوين المحلية وعناوين بيانات السحابة ويحدّ من محاولات الدخول الفاشلة ولا يمرّر ملفات تعريف الارتباط أبدًا. استخدم مفتاح API لكل جهاز بصلاحية نقطة البيع فقط. ورمز القفل يشفّر المفتاح المحفوظ، لكنه يحمي من الاستخدام العابر لا ممن ينسخ ملف تعريف المتصفح. وليس للخادم تسجيل دخول خاص به: على الإنترنت ضعه خلف HTTPS وشبكة VPN أو SSO أو قائمة عناوين مسموح بها.
هل هو متوفر بالعربية؟+
نعم. كل الشاشات بالعربية والإنجليزية مع تخطيط كامل من اليمين إلى اليسار، والدليل باللغتين. وتأتي أسماء المنتجات والفئات من أودو بلغة المستخدم.
ماذا أحتاج للاستضافة، وكيف تصل التحديثات؟+
Node.js 20.9 أو أحدث (وهو كل ما يحتاجه التطبيق الجاهز للتشغيل؛ أو Docker: ملف Dockerfile مرفق ولم تُبنَ الصورة في اختباراتنا) وHTTPS وChrome أو Edge على جهاز البيع (لم يُجرَّب Safari وFirefox). تحديثات الإصدار 1.x مشمولة؛ يُثبَّت الإصدار الجديد على الخادم ويعرض الجهاز زر «تحديث» دون إعادة التحميل في منتصف عملية بيع.
المزيد من TAQNIX
وحدةجديد
الفوترة الإلكترونية في الإمارات (PINT AE) لأودو 19 Community – ملفات PINT AE لمزوّد الخدمة، وفحوص الجاهزية، والتحقق بمخطط UBL XSD وقواعد Schematron، وصندوق صادر الفواتير الإلكترونية
أعدّ الفواتير الإلكترونية والإشعارات الدائنة الإماراتية بصيغة PINT AE (Peppol PINT AE Billing 1.0.4 على UBL 2.1) لمزوّد الخدمة المعتمد: رقم التعريف الضريبي ورقم التسجيل وفئات الضريبة، وفحوص الجاهزية لكل فاتورة ولكل دفعة، والتحقق بالمخطط والقواعد الرسمية، وصندوق صادر بالحالات وسجل وتصدير XML / ZIP. لا ترسل شيئًا. مع اللغة العربية.
مسودات ردود الدعم بالذكاء الاصطناعي لووكومرس – مسودات ردود على العملاء من بيانات الطلب مع تحقق من الحقائق
اكتب مسودات ردود على رسائل العملاء في شاشة طلب ووكومرس بنموذج الذكاء الاصطناعي الخاص بك، من حقائق الطلب ونصوص متجرك فقط. الحقائق الناقصة تصبح خانات [CHECK]؛ ولا يُرسل شيء دون نقرة وتأكيد.
إثبات التسليم الإلكتروني وإرسال التوصيل لأودو – تطبيق Flutter للسائق يعمل دون اتصال بالصورة والتوقيع ورمز التحقق وGPS ومحسّن المسار وتسوية الدفع عند التسليم لأودو 19 Community
خطّط رحلات التوصيل اليومية ورتّب المحطات بأقصر مسار واحصل على إثبات تسليم إلكتروني كامل من تطبيق Flutter يعمل أولًا دون اتصال: وصول بنطاق جغرافي وختم GPS والوقت وصور بعلامة مائية وتوقيع ورمز تحقق للعميل وأسباب الفشل. تُعتمد أوامر التسليم تلقائيًا مع الأوامر المتبقية، ويُسوّى الدفع عند التسليم ويُطابَق. وحدة أودو Community مرفقة.
المستودع المتنقل وماسح الباركود لأودو (مستودع بلا ورق) – محرك GS1 والتقاط بالموجات وجرد دوري وتطبيق Flutter لماسحات Zebra وHoneywell وDatalogic على أودو 19 Community
استبدل تطبيق الباركود في Enterprise على أودو Community: محرك باركود يفهم GS1 واستلام وتسليم وتحويل بين الخانات بالدفعات والأرقام التسلسلية والانتهاء والتقاط بالموجات على مسار متعرّج مع أرقام تحقق للخانات وجرد دوري أعمى باعتماد المدير وملصقات وسجل تدقيق والشيفرة المصدرية لتطبيق Flutter لماسحات Zebra DataWedge وHoneywell وDatalogic مع الكاميرا بديلًا.
يوميات موقع البناء وقائمة العيوب لأودو 19 Community – تطبيق Flutter يعمل دون إنترنت وعمالة مقاولي الباطن وعلامات على المخططات وإشعار استلام GRN والميزانية مقابل الفعلي
يكتب مشرف الموقع السجل اليومي ويضع علامات العيوب على المخططات ويستلم التوريدات مقابل أوامر الشراء من هاتفه، بإشارة أو بدونها. ويرى مكتب المشروع العمالة والمعدات والمواد مقابل الميزانية في اليوم نفسه. وحدة أودو Community مع تطبيق Flutter يعمل دون اتصال.
تطبيق النادل وشاشة عرض المطبخ (KDS) لأودو 19 Community – طلبات على الطاولة بـ Flutter وتأجيل وإطلاق الأطباق وتقسيم الفاتورة والدفع برمز QR ومخزون الوصفات
خذ الطلبات عند الطاولة وأظهرها على شاشات المطبخ في أجزاء من الثانية: خريطة صالة حية وخيارات إلزامية وإضافات مدفوعة وأطباق تُؤجَّل وتُطلق وتوجيه إلى المحطات بمؤقتات SLA وتقسيم الفاتورة والدفع برمز QR وإيصالات ESC/POS واستهلاك تلقائي لمكونات الوصفات. وحدة أودو Community وتطبيق Flutter واحد للنُّدُل وأجهزة المطبخ.