توثيق مبيعات السيارات والتوزيع المباشر لأودو
دليل مبيعات السيارات والتوزيع المباشر لأودو: تثبيت الوحدة والسيارات والمسارات والأسعار والائتمان والتحميل والبيع والمرتجعات والتحصيل والطباعة والتسوية، وبناء تطبيق المندوب ونشره.
يشرح الإصدار 1.0.0حُدّث في 29 أكتوبر 2026
ابدأ من هنا
ببساطة: تمنحك هذه الحزمة نظام مبيعات السيارات والتوزيع المباشر إلى المتاجر (DSD) كاملًا لـ أودو Community: وحدة أودو (
taqnix_van_sales) للمستودع والمكتب، والشيفرة المصدرية بـ Flutter لـتطبيق الآيفون والأندرويد الذي يستخدمه مندوبوك في الشارع، مع تغطية الشبكة أو دونها. يحمّل المشرف السيارة من المستودع؛ ويوقّع المندوب على التحميل ويتبع مسار اليوم ويبيع من السيارة بمخزون حي ويطبع الإيصال على طابعة حرارية بلوتوث ويحصّل النقد والمدفوعات الرقمية والشيكات الآجلة ويستلم المرتجعات، وفي نهاية اليوم يجرد المخزون ويسلّم النقد؛ ثم يعتمد المشرف. كل مستند هو مستند أودو عادي: أمر بيع وتسليم وفاتورة ودفعة وإشعار دائن.نصيحة: لا تحتاج إلى أي تطبيق من أودو Enterprise: تستخدم الوحدة المبيعات والمخزون والفوترة فقط، وOpenStreetMap للخرائط (دون مفتاح خرائط مدفوع).
محتويات الحزمة
| البند | ما هو |
|---|---|
taqnix_van_sales.zip | وحدة أودو 19: السيارات والمسارات والزيارات مع السياج الجغرافي، والمبيعات من السيارة، والمرتجعات، والتحصيلات والشيكات الآجلة، ورقابة الائتمان، والتحميل، والتسوية، والإيصالات، وخريطة المشرف، وواجهة برمجة التطبيق، وترجمة عربية، واختبارات آلية. |
flutter-app-source.zip | مشروع Flutter لتطبيق المندوب (أندرويد وiOS): قاعدة بيانات دون اتصال وصندوق صادر، ومحرك مزامنة، والمسار والزيارات، وسلة مع ماسح باركود ووحدات، والتسعير والضرائب، وفحوص الائتمان، والمدفوعات، والمرتجعات، والتسوية، وطباعة ESC/POS عبر البلوتوث (58 mm و80 mm)، وتتبع GPS. مع سكربت إعداد وملف README خاص به واختبارات. |
documentation/ | هذا الدليل بالإنجليزية (index.html) والعربية (index-ar.html) مع ملفات PDF، والملف API.md للمطورين. |
licensing/ | الرخصة (OPL-1: شراء واحد = شركة واحدة وعلامة تطبيق واحدة مع التحديثات). |
preview-images/ | لقطات من التطبيق ومن شاشات أودو. |
changelog.txt | سجل الإصدارات. |
كيف يمضي اليوم
| اللحظة | من | ماذا يحدث | في أودو |
|---|---|---|---|
| الصباح | المشرف | يحمّل السيارة من المستودع (نقل داخلي عادي، مع معالج يملأ مستويات المخزون). | نقل معتمد إلى موقع السيارة. |
| الصباح | المندوب | يفتح التطبيق ويراجع التحميل بندًا بندًا ويدوّن الفروقات ويوقّع. | يصبح التحميل مقبول أو متنازع عليه. |
| المسار | المندوب | يتبع خطة اليوم. لا تبدأ الزيارة إلا بالقرب من العميل. | زيارة مع GPS ومسافة ووقت. |
| عند العميل | المندوب | يمسح المنتجات أو يختارها بالوحدات أو الكراتين، ويحصل على السعر والضريبة الصحيحين، ويأخذ النقد أو دفعة رقمية أو شيكًا آجلًا أو يترك المبلغ آجلًا، ويطبع الإيصال. | أمر بيع وتسليم من السيارة وفاتورة معتمدة ومدفوعات. |
| عند العميل | المندوب | يستلم البضاعة التالفة أو المنتهية أو الزائدة ويحصّل الفواتير القديمة. | إشعارات دائنة، وإعادة المخزون إلى السيارة أو إلى الحجر، ودفعات على أقدم الفواتير. |
| المساء | المندوب | يجرد المخزون ويعدّ النقد ويوقّع. | تسوية بانتظار الاعتماد. |
| المساء | المشرف | يقارن ويعتمد: يُعدَّل المخزون، ويمكن أن تعود البضاعة غير المباعة إلى المستودع، ويُسجَّل تسليم النقد. | تسوية مخزون ونقل وقيد محاسبي. |
ببساطة: دون اتصال أولًا. كل ما يفعله المندوب يُحفظ على الهاتف أولًا برقم تسلسلي لا يتغير، ثم يُرسل إلى أودو عند توفر الشبكة. لكل عملية معرّف فريد، فلا يؤدي ضياع الرد أو إعادة المحاولة إلى فوترة العميل مرتين (الفصل 20).
ما تحتاج إليه
| البند | التفاصيل |
|---|---|
| أودو | الإصدار 19.0 Community أو Enterprise. تُثبَّت تلقائيًا مع الوحدة تطبيقات المبيعات والمخزون والفوترة والتموضع الجغرافي لجهات الاتصال؛ ويُفعَّل خيار قوائم الأسعار. |
| دليل الحسابات | دليل حسابات (أي توطين) يضم يومية نقدية واحدة ويومية بنكية واحدة على الأقل. الضرائب من نوع نسبة مئوية مدعومة. |
| مكتبات بايثون | PyJWT وrequests (للإشعارات الفورية). نفّذ pip install PyJWT requests إن لم تكن موجودة في أودو لديك. |
| محرك PDF | wkhtmltopdf كأي أودو (ملف PDF للفاتورة والإيصال وتقرير التسوية). |
| العنوان | عنوان https عام لأودو: يجب أن تصل الهواتف إليه. الشهادة الموقّعة ذاتيًا لا تعمل على الهواتف. |
| الهواتف | أندرويد 8 أو أحدث، أو آيفون بنظام iOS 15 أو أحدث، مع GPS وكاميرا. يُفضَّل أن يستخدم المندوبون هاتفًا ببطارية سليمة. |
| الطابعات | أي طابعة حرارية محمولة ESC/POS بعرض 58 mm (2 بوصة) أو 80 mm (3 بوصة) مع بلوتوث. يعمل أندرويد مع الطرازات الشائعة من Bluetooth Classic؛ أما الآيفون فيعمل فقط مع الطابعات التي تدعم Bluetooth Low Energy (الفصل 14). |
| حاسوب لبناء التطبيق | جهاز Mac للآيفون والأندرويد (ويندوز أو لينكس يبنيان الأندرويد فقط) بمساحة حرة نحو 30 غيغابايت، وFlutter 3.41 أو أحدث، وAndroid Studio وXcode. |
| حسابات المتاجر | Google Play Console وبرنامج Apple Developer، أو توزيع داخلي على موظفيك. |
| اختياري | مشروع Firebase مجاني للإشعارات الفورية؛ وخادم بريد صادر في أودو لإرسال الفواتير بالبريد. |
ثبّت وحدة أودو
- فُكّ ضغط الحزمة. بداخلها
taqnix_van_sales.zip؛ فُكّه لتحصل على المجلدtaqnix_van_sales. - انسخ المجلد إلى أحد مجلدات
addons_pathفي خادم أودو وأعد تشغيل أودو. - سجّل الدخول كمدير وفعّل وضع المطوّر ثم افتح التطبيقات واضغط تحديث قائمة التطبيقات.
- أزل مرشح «التطبيقات» وابحث عن Van Sales واضغط تثبيت.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_van_sales --stop-after-init
ببساطة: بعد التثبيت يظهر تطبيق جديد باسم مبيعات السيارات في القائمة الرئيسية. ينشئ التثبيت أيضًا الموقع الأب للمخزون السيارات وموقع حجر المرتجعات، وطرق الدفع نقد ورقمي / QR وشيك آجل وآجل (مع أول يوميتين نقدية وبنكية لديك)، وأسباب المرتجعات وأسباب عدم البيع، وتسلسلات التسوية والمرتجعات. ويمكنك تغيير كل ذلك.
مهم: خذ نسخة احتياطية قبل التثبيت على قاعدة بيانات الإنتاج كما تفعل مع أي وحدة.
الإعداد الأول في 15 دقيقة
- افتح مبيعات السيارات ← الإعداد ← الإعدادات وراجع الأقسام (الفصل 10). القيم الافتراضية تناسب معظم الموزّعين.
- تحقق من طرق الدفع (الإعداد ← طرق الدفع): أي يومية تستقبل المدفوعات الرقمية والشيكات الآجلة.
- في الإعدادات ← التسوية اختر يومية الصندوق وحساب فرق النقد.
- أنشئ السيارات ومندوبيها (الفصل 7).
- جهّز المنتجات (الوحدات والكراتين والباركود والضرائب) وقوائم الأسعار والعملاء مع موقعهم على GPS (الفصلان 8 و9).
- أنشئ المسارات (الفصل 9) وحمّل أول سيارة (الفصل 11).
- ابنِ التطبيق (الفصل 21) وسجّل الدخول بحساب المندوب وبِع شيئًا.
نصيحة: يحتاج العملاء إلى موقعهم على GPS للسياج الجغرافي: افتح العميل واضغط زر التموضع الجغرافي في العنوان، أو استورد خط العرض وخط الطول. يمكن زيارة عميل بلا موقع من أي مكان.
السيارات والمندوبون والمشرفون
ببساطة: توجد ثلاث مجموعات في الإعدادات ← المستخدمون ← مبيعات السيارات:
| المجموعة | تستطيع | تستخدم |
|---|---|---|
| المندوب | تسجيل الدخول إلى تطبيق الجوال الخاص بالسيارة المسندة إليه. في أودو لا يرى إلا مستندات سيارته. | الهاتف |
| المشرف | تحميل السيارات، وتخطيط المسارات، ومتابعة الخريطة، ومراجعة المبيعات المعلَّمة، واعتماد التسويات، ومعالجة الشيكات. يرى كل السيارات. | أودو في المتصفح |
| المدير | كل ما يفعله المشرف مع الإعدادات وطرق الدفع والأسباب والأجهزة. | أودو في المتصفح |
ببساطة: افتح مبيعات السيارات ← التخطيط ← السيارات واضغط جديد: الاسم، وبادئة الإيصال القصيرة (مثل
V01: تبدأ بها كل أرقام الإيصالات التي تطبعها هذه السيارة)، والمندوب (مستخدم أودو؛ تُضاف مجموعة المندوب إليه تلقائيًا)، والمشرف الذي تصله المهام، والمستودع، وهل يمكن للسيارة زيارة عملاء خارج الخطة أو إنشاء عملاء جدد. تنشئ الوحدة موقع المخزون للسيارة تحت السيارات؛ واضغط إنشاء يومية نقدية للنقد الذي يحصّله المندوب.نصيحة: تسجيل الخروج من كل الأجهزة في السيارة يلغي كل الهواتف دفعة واحدة. يقود مندوب واحد سيارة واحدة؛ ولتغيير المندوب غيّر الحقل في السيارة.
المنتجات والوحدات والأسعار والضرائب
ببساطة: يبيع التطبيق منتجات أودو القابلة للبيع وغير المتتبَّعة بالدفعة أو الرقم التسلسلي والتي حُدِّد فيها المباع من السيارات (مربع في نموذج المنتج، مفعّل افتراضيًا). كل ما يلي هو أودو القياسي.
| ماذا | أين في أودو | في التطبيق |
|---|---|---|
| الوحدات والكراتين | المنتج ← تبويب المبيعات ← التعبئة (الكرتون وحدة قياس من 6 أو 12 أو 24... وحدة أساسية، أضفه إلى المنتج). | يبدّل المندوب البند بين الوحدات والكرتون؛ وتتبعه حركات المخزون والأسعار والإيصالات. |
| الباركود | باركود المنتج، وباركود لكل تعبئة. | مسح باركود الوحدة يضيف وحدة، ومسح باركود الكرتون يضيف كرتونًا. |
| قوائم الأسعار | المبيعات ← المنتجات ← قوائم الأسعار. قواعد لكل منتج أو فئة أو لكل المنتجات: سعر ثابت أو خصم أو صيغة؛ وكميات دنيا. | سعر قائمة أسعار العميل مع شرائح الكميات، حتى دون اتصال. |
| الضرائب | المنتج ← ضرائب العملاء (ضرائب نسبية، شاملة أو غير شاملة في السعر) والمراكز المالية. | ضريبة لكل بند، وحسب المركز المالي للعميل (مثل العملاء المعفيين). |
| المخزون | مخزون موقع السيارة. | مخزون السيارة الحي: لا يمكن أن يتجاوزه أي بيع. |
ببساطة: كيف تصل الأسعار إلى الهاتف. يحسب أودو سعر كل منتج لكل قائمة أسعار عند الكميات التي تتغير عندها القواعد (الشرائح) ويرسلها مع البيانات؛ ويضرب الهاتف سعر الشريحة لوحدة أساسية واحدة في معامل وحدة البند. تُراعى القواعد التي تسري على تواريخ محددة أو على مجموعات عملاء وقت المزامنة. وإذا اختلف سعر الإيصال عن قائمة الأسعار بأكثر من حد التسامح يُعلَّم البيع للمشرف (الفصل 20).
العملاء والائتمان والمسارات
ببساطة: عميل السيارة هو أي عميل في أحد مساراتها (وعند السماح بالزيارات غير المخططة، كل عميل له رتبة عميل). يضم تبويب مبيعات السيارات في نموذج العميل ما يخص الشارع:
| الحقل | المعنى |
|---|---|
| رقابة الائتمان | كما في الإعدادات: بدون، أو مرن (يُنبِّه التطبيق ويُعلَّم البيع لمراقب الائتمان)، أو صارم (يرفض التطبيق المبيعات الآجلة التي تتجاوز الحد؛ وتبقى المبيعات النقدية ممكنة). |
| حد الائتمان | أقصى رصيد مستحق على العميل (الشيكات الآجلة التي لم تُحصَّل بعد داخلة فيه، لأن فواتيرها تبقى مفتوحة). 0 = الحد الافتراضي في الإعدادات. |
| محظور من بيع السيارات | لا يستطيع المندوب البيع لهذا العميل من التطبيق (مع سبب يظهر على الهاتف). |
| نطاق الزيارة | مسافة بالأمتار تحل محل القيمة الافتراضية في الإعدادات لهذا العميل (متجر كبير، مجمع تجاري...). |
| المسارات | المسارات التي يظهر فيها العميل وأيامها. |
ببساطة: المسارات (خطة الرحلة الدائمة). مبيعات السيارات ← التخطيط ← المسارات: ينتمي المسار إلى سيارة ويضم العملاء بحسب ترتيب الزيارة مع أيام الأسبوع (من الاثنين إلى الأحد)، وكل أسبوع أو الأسابيع الفردية أو الزوجية، وتاريخ بداية ونهاية اختياريين. يتلقى الهاتف خطة الأيام القادمة (7 افتراضيًا) ويعلّم العميل منجزًا متى وُجدت زيارة له.
نصيحة: العملاء الجدد الذين يُنشَؤون في التطبيق ينتظرون اعتمادك (الزر اعتماد هذا العميل) ولا يستطيعون الشراء إلا نقدًا إلى ذلك الحين.
الإعدادات قسمًا قسمًا
ببساطة: تضم مبيعات السيارات ← الإعداد ← الإعدادات كل قواعد الشركة. تبيّن كل كتلة ما تفعله ومتى تغيّرها.
| الإعداد | ماذا يفعل |
|---|---|
| الزيارات غير المخططة، والعملاء الجدد، والطلبات للتسليم لاحقًا | أي إجراءات إضافية يستطيع المندوب القيام بها. يمكن أيضًا إيقاف الزيارات غير المخططة والعملاء الجدد لكل سيارة. |
| أيام الخطة | كم يومًا من الخطة يتلقاها الهاتف (7 افتراضيًا). |
| السياج الجغرافي | لا تبدأ الزيارة إلا ضمن المسافة المسموحة (100 m افتراضيًا) ومع دقة GPS أفضل من الحد (50 m افتراضيًا). مع التجاوز يستطيع المندوب البدء رغم ذلك بكتابة سبب؛ فتُعلَّم الزيارة ويصل المشرف مهمة للمتابعة. |
| الإعداد | ماذا يفعل |
|---|---|
| يمكن للمندوبين تغيير الأسعار | متوقف افتراضيًا: السعر هو سعر قائمة الأسعار. |
| أقصى خصم | يمكن منح خصم حتى هذه النسبة على البند. |
| حد تسامح السعر | البيع الذي يختلف سعر وحدته عن قائمة الأسعار بأكثر من هذه النسبة يُعلَّم price_mismatch. |
| الإعداد | ماذا يفعل |
|---|---|
| المبيعات الآجلة مسموحة | إذا أُوقف، يجب دفع كل بيع في الحال. |
| رقابة الائتمان وحده الافتراضيان | يستخدمهما العملاء الذين ليس لديهم رقابة أو حد خاص. |
| أيام التأخر | منع الائتمان عند تأخر فاتورة أكثر من هذا العدد من الأيام (0 = بدون تحقق). |
| مراقب الائتمان | تصله المهمة عندما يتجاوز البيع الحد. |
| الإعداد | ماذا يفعل |
|---|---|
| الموقع الأب لمواقع السيارات / موقع الحجر | أين توجد السيارات وإلى أين تذهب المرتجعات التالفة والمنتهية. |
| التوقيع على التحميل / على كل بيع | يُطلب من المندوب توقيع التحميل ومن العميل توقيع كل عملية بيع. |
| المرتجعات | السماح بالمرتجعات؛ واشتراط صورة للبضاعة التالفة. |
| الإعداد | ماذا يفعل |
|---|---|
| الجرد المطلوب وحدود التسامح | يجب على المندوب جرد المخزون؛ وتُبرز فروقات النقد والمخزون التي تتجاوز حد التسامح. |
| فروقات المخزون | تعديل مخزون السيارة حسب الجرد عند اعتماد التسوية، أو تسجيل الفرق فقط. |
| يومية الصندوق وحساب الفرق | يُسجَّل تسليم النقد من اليومية النقدية للسيارة إلى يومية الصندوق؛ وتذهب العجوزات والزيادات إلى حساب الفرق. |
| سيارة فارغة | إرجاع المخزون غير المباع إلى المستودع عند الاعتماد. |
| الإعداد | ماذا يفعل |
|---|---|
| عرض الورق | 58 mm (2 بوصة) أو 80 mm (3 بوصة)؛ ويستطيع المندوب الاختيار أيضًا على الهاتف. |
| وضع الطباعة | صورة: يُرسم الإيصال كصورة (أي لغة بما فيها العربية، وشعارك، ورمز QR). نص: نص ESC/POS، الأسرع، للحروف اللاتينية فقط. |
| الترويسة والتذييل وتسمية الضريبة | أسطر تُطبع على كل إيصال؛ ويؤخذ الرقم الضريبي للشركة من سجل الشركة، وتسميته (TRN، رقم ضريبة القيمة المضافة...) من هنا. |
| إظهار عمود الضريبة والرصيد ورمز QR | ما يعرضه الإيصال. يفتح رمز QR صفحة التحقق العامة من الفاتورة. |
| الإعداد | ماذا يفعل |
|---|---|
| التتبع | متوقف، أو خلال ساعات العمل، أو دائمًا أثناء فتح التطبيق. الفواصل أثناء الحركة وأثناء السكون وأدنى مسافة وحد البطارية تجعله موفّرًا للبطارية. تُحفظ النقاط 30 يومًا افتراضيًا. |
| نص الخصوصية | يظهر في التطبيق قبل طلب إذن الموقع. |
| الإعداد | ماذا يفعل |
|---|---|
| الإشعارات الفورية | تم تحميل السيارة، تغيّرت الخطة، صدر قرار التسوية. يُدخَل هنا مشروع Firebase وحساب الخدمة (الفصل 21). |
| فاصل المزامنة | كم مرة يزامن التطبيق في الخلفية (120 ثانية افتراضيًا). |
| النشاط | الإعدادات المقترحة |
|---|---|
| موزّع المشروبات والمياه | كراتين ووحدات، وقوائم أسعار بشرائح كميات، وحدود ائتمان صارمة للمتاجر الصغيرة، ومدفوعات رقمية، والحجر للزجاجات المكسورة، وخيار السيارة الفارغة كل مساء متوقف. |
| الوجبات الخفيفة والسلع الاستهلاكية والحلويات | بنود كثيرة في الزيارة: مسح الباركود، وحد خصم 5 %، وائتمان مرن، وحد تسامح للسعر 1 %، وإيصالات بوضع الصورة. |
| الألبان والمخابز والأغذية الطازجة | مرتجعات انتهاء الصلاحية (السبب منتهٍ يذهب إلى الحجر)، والسيارة الفارغة كل مساء مفعّلة، وتسوية بجرد مطلوب، وحد تسامح للمخزون 0 %. |
| الآيس كريم والمجمّدات | السيارة الفارغة مفعّلة، وجرد صارم، ونقد ومدفوعات رقمية فقط (المبيعات الآجلة متوقفة)، وإيصالات 80 mm. |
| الصيدليات وجملة الرعاية الصحية | توقيع على كل بيع، ورقابة ائتمان صارمة، وشيكات آجلة، دون زيارات غير مخططة، ودون تعديل الأسعار. |
| سيارات النقد (بدون ائتمان) | المبيعات الآجلة مسموحة متوقفة: يُدفع كل إيصال كاملًا؛ وتقتصر التسوية على النقد والمخزون. |
تحميل السيارة وتوقيع الصباح
ببساطة: تعرض مبيعات السيارات ← المستودع الرئيسي ← تحميلات السيارات عمليات النقل إلى السيارات وحالتها: بانتظار المندوب ومقبول ومتنازع عليه. لتحميل سيارة اضغط تحميل السيارة في السيارة (أو في القائمة): اختر موقع المستودع وأضف المنتجات والكميات، أو اضغط التعبئة حتى مستويات المخزون لإضافة ما ينقص للوصول إلى المستويات التي حدّدتها في السيارة (تبويب مستويات المخزون: الكمية المراد التحميل حتى بلوغها ومستوى للتنبيه).
- تحقق من الكميات. يُنشئ تحميل النقل الداخلي ويعتمده (ألغِ تحديد تأكيد النقل فورًا ليتولاه أمين المخزن).
- يصل المندوب إشعار فوري، فيفتح تحميل في التطبيق، ويتحقق من كل بند (المنتج والوحدة والكمية)، ويغيّر الكمية المستلمة حيث تختلف، ويكتب ملاحظة ويوقّع.
- إذا تطابق كل شيء يصبح التحميل مقبول؛ ومع وجود فروقات يصبح متنازع عليه ويصل المشرفَ مهمة للمتابعة. تظهر بنود الفروقات في تبويب تحميل السيارة في النقل.
يوم في التطبيق
ببساطة: صُمم التطبيق لمندوب يقف في متجر ويده الأخرى مشغولة. أزرار كبيرة، وتدفق واحد، ولا انتظار للشبكة.
| الخطوة | ماذا يفعل المندوب | القواعد |
|---|---|---|
| المسار | يفتح عميلًا من القائمة أو الخريطة. | يُعرض رصيد العميل والمبلغ المتأخر عليه قبل الزيارة. |
| بدء الزيارة | يضغط بدء الزيارة عند المتجر. | مسموح فقط داخل النطاق ومع GPS جيد؛ وإلا تعرض الشاشة المسافة، وإن سمحت الشركة، مسار التجاوز مع ذكر السبب. |
| البيع | يضيف المنتجات بالبحث أو الفئة أو مسح الباركود أو مفضلات العميل؛ ويغيّر الكمية والوحدة (كرتون أو وحدة) والخصم ضمن الحد. | لا يمكن أن يتجاوز أي بند مخزون السيارة الحي. تأتي الأسعار والضرائب من قائمة أسعار العميل ومركزه المالي. |
| الدفع | يقسّم الإجمالي بين النقد والرقمي (مرجع) والشيك الآجل (الرقم والبنك والتاريخ والصورة) والآجل. | يُمنع الآجل للعملاء ذوي الحد الصارم المتجاوزين للحد أو الذين لديهم فواتير متأخرة، مع رسالة واضحة. |
| الطباعة | يُطبع الإيصال على الطابعة بالبلوتوث؛ ويمكن مشاركة نسخة بصيغة PDF أو صورة. | رقم الإيصال = بادئة السيارة + الرقم التسلسلي المحلي. |
| التحصيل | يستلم دفعات الفواتير القديمة من الشاشة نفسها. | الأقدم أولًا، أو الفواتير التي يختارها المندوب. |
| المرتجع | يستلم البضاعة مع سبب، وعند الحاجة صورة وتاريخ انتهاء. | تعود البضاعة القابلة لإعادة البيع إلى مخزون السيارة؛ ولا تعود التالفة والمنتهية. |
| إنهاء الزيارة | يختار النتيجة: بيع، أو بدون بيع (مع السبب)، أو المحل مغلق، أو تخطّي. | تُسجَّل الزيارات التي بلا بيع مع أسبابها. |
البيع: المنتجات والباركود والوحدات والدفع
ببساطة: مسح الباركود يستخدم الكاميرا. امسح باركود الوحدة لإضافة وحدة، وامسح باركود الكرتون لإضافة كرتون؛ ومسح الرمز نفسه مرة أخرى يضيف واحدًا آخر. يُغلق الماسح تلقائيًا عند الانتهاء وتحتفظ السلة بالبنود.
| القاعدة | التفاصيل |
|---|---|
| المخزون | لا يمكن أن تتجاوز كمية المنتج في السلة ما في السيارة الآن (مخزون الخادم ناقص المبيعات التي لم تُزامَن بعد). ويُطبَّق البيع على مخزون الجهاز فورًا. |
| الوحدات | للبند وحدة؛ وتغييرها يعيد تسعير البند (سعر شريحة وحدة أساسية واحدة × معامل الوحدة). وتُحسب حركات المخزون دائمًا بوحدة البند. |
| الأسعار والخصومات | يأتي السعر من قائمة أسعار العميل؛ ويحدّ الخصمَ الإعدادات؛ ولا يمكن تعديل السعر إلا إذا سمحت الشركة. |
| الضرائب | ضرائب نسبية شاملة أو غير شاملة، تُطابَق حسب المركز المالي للعميل؛ وتُقرَّب لكل بند. تُرسل معرّفات الضرائب المستخدمة إلى أودو لتعرض الفاتورة بالضبط ما يعرضه الإيصال. |
| الطلبات للتسليم لاحقًا | إن سُمح بذلك، يؤكد حجز طلب طلبًا دون سحب مخزون من السيارة ودون فاتورة؛ ويتولى المستودع تسليمه. |
الإيصالات والطباعة بالبلوتوث
ببساطة: يطبع التطبيق على طابعات حرارية ESC/POS بعرض 58 mm (2 بوصة، 384 نقطة) و80 mm (3 بوصة، 576 نقطة). يولّد التطبيق نفسه أوامر ESC/POS.
| الكتلة | المحتوى |
|---|---|
| الترويسة | الشعار واسم الموزّع والعنوان والهاتف والرقم الضريبي (TRN) وأسطر الترويسة من الإعدادات. |
| المستند | رقم الإيصال، ورقم الفاتورة (عند إعادة الطباعة بعد المزامنة)، والتاريخ والوقت، والمندوب. |
| العميل | الاسم والرمز والعنوان والرقم الضريبي. |
| البنود | المنتج والكمية والوحدة وسعر الوحدة والضريبة وإجمالي البند. |
| الإجماليات | غير شامل الضريبة، والضريبة، والإجمالي. |
| الدفع | كل سطر دفع (نقد، رقمي مع المرجع، شيك مع الرقم والتاريخ، آجل)، والمدفوع، والرصيد المستحق على العميل. |
| التحقق | رمز QR. بعد مزامنة البيع يفتح صفحة التحقق العامة من الفاتورة (مستند أصلي، الرقم، التاريخ، الإجمالي، اسم العميل مُخفىً جزئيًا)؛ وقبل المزامنة يحمل رقم الإيصال والرقم الضريبي والإجمالي والوقت. |
| التذييل | أسطر التذييل وعدد النسخ. |
- شغّل الطابعة واقرنها في إعدادات البلوتوث بالهاتف إن احتاجت طابعتك ذلك (أندرويد). في التطبيق افتح الإعدادات ← الطابعة.
- اضغط بحث واختر طابعتك واختر عرض الورق (58 أو 80 mm) واضغط طباعة تجريبية.
- يتذكر التطبيق الطابعة ويعيد الاتصال بها تلقائيًا. بعد البيع يُطبع الإيصال تلقائيًا؛ والإيصالات في القائمة تتيح لك إعادة طباعة أو مشاركة أي إيصال.
| الوضع | متى تستخدمه |
|---|---|
| صورة (نقطية) | الافتراضي. يطبع العربية واللغات الأخرى وشعارك ورمز QR تمامًا كما في المعاينة. أبطأ قليلًا (بضع ثوانٍ للإيصال الطويل). |
| نص | الأسرع ويستخدم الخط المدمج في الطابعة: الإنجليزية والأرقام فقط. |
مهم: الآيفون وطابعات البلوتوث. يتحدث iOS فقط مع أجهزة Bluetooth Low Energy، ومعظم الطابعات المحمولة الرخيصة من نوع Bluetooth Classic (SPP) الذي لا يستطيع iOS استخدامه. على الآيفون اختر طابعة تدعم BLE، أو اطبع إلى PDF/AirPrint. على أندرويد تعمل الطابعات المحمولة الشائعة. لا يضم التطبيق تعريفات: الطابعة التي تفهم ESC/POS وأمر الصور النقطية تعمل؛ جرّب طباعة تجريبية قبل شراء أسطول كامل.
المرتجعات والتالف والانتهاء
ببساطة: في التطبيق اضغط المرتجع عند العميل، وأضف المنتجات (من فاتورة للعميل أو بحرية)، واختر سببًا لكل بند واضغط حفظ. يحدد السبب إلى أين تذهب البضاعة:
| نوع السبب | المخزون | المحاسبة |
|---|---|---|
| قابل لإعادة البيع (صنف خاطئ، فائض) | يعود إلى مخزون السيارة. | إشعار دائن للعميل. |
| تالف | إلى موقع الحجر؛ ويمكن اشتراط صورة. | إشعار دائن. |
| منتهٍ (مع تاريخ الانتهاء) | إلى موقع الحجر. | إشعار دائن. |
ببساطة: يُعتمد الإشعار الدائن ويُسوَّى مع الفاتورة المفتوحة للمرتجع عند تحديد الفاتورة، وإلا يبقى رصيدًا دائنًا في حساب العميل. واسترداد نقدي يدفع للعميل أيضًا من اليومية النقدية للسيارة، فينقص النقد الواجب تسليمه. يرى المشرف البضاعة في الحجر في العمليات ← المرتجعات ويضغط إتلاف البضاعة التالفة والمنتهية عند إتلافها.
التحصيلات والشيكات الآجلة
ببساطة: يعرض تحصيل عند العميل الفواتير المفتوحة (الأقدم أولًا). يُدخل المندوب المبلغ وطريقة الدفع؛ فيوزّعه التطبيق على أقدم الفواتير (أو على الفواتير التي يحددها)، ويبقى أي باقٍ رصيدًا دائنًا في حساب العميل.
| الطريقة | ما يُسجَّل في أودو |
|---|---|
| نقد | دفعة عميل على اليومية النقدية للسيارة، مسوّاة مع الفواتير. |
| رقمي / QR | دفعة عميل على يومية الطريقة (البنك)، مع المرجع الذي قدّمه العميل. |
| شيك آجل | ليس دفعة بعد: سجل في العمليات ← الشيكات الآجلة مع الرقم والبنك وتاريخ الشيك والصورة. تبقى الفاتورة مفتوحة وتدخل في رصيد العميل. عندما يدفع البنك اضغط تم التحصيل من البنك فيسجّل أودو الدفعة على الفواتير؛ ومرتد ينبّه المشرف. |
| آجل | تبقى الفاتورة مفتوحة ويدخل المبلغ في رصيد العميل. |
نهاية اليوم: الجرد والنقد والاعتماد
ببساطة: في نهاية المسار يفتح المندوب نهاية اليوم. للتدفق أربع خطوات ويعمل دون اتصال:
- ملخص اليوم: المبيعات والمرتجعات والنقد والمدفوعات الرقمية والشيكات المحصّلة والائتمان الممنوح والزيارات.
- جرد المخزون: كل منتج في السيارة أو بيع اليوم؛ اكتب الكمية المجرودة أو امسحها. يعرض التطبيق الفرق بالوحدات وبالقيمة.
- تسليم النقد: النقد المتوقع (النقد المحصّل ناقص الاستردادات النقدية، منذ آخر تسوية)، والمبلغ المصرَّح به، وعدّ اختياري حسب فئات النقد؛ ويظهر الفرق.
- وقّع وأرسل. بعد الإرسال يُغلق اليوم على الهاتف إلى أن يقرر المشرف.
ببساطة: يفتح المشرف المستودع الرئيسي ← التسويات. تُبرز الفروقات التي تتجاوز حد التسامح. واعتماد يفعل في خطوة واحدة: تعديل مخزون السيارة حسب الجرد (إن نصّ الإعداد على ذلك)، وإرجاع المخزون غير المباع إلى المستودع (إن نصّ الإعداد على ذلك)، وتعليم مدفوعات اليوم كمسوّاة، وتسجيل تسليم النقد (مدين يومية الصندوق، دائن اليومية النقدية للسيارة؛ والعجز أو الزيادة يذهب إلى حساب الفرق). ورفض يطلب من المندوب إعادة الجرد.
رقابة الائتمان موضحة
| الحالة | على الهاتف | في أودو |
|---|---|---|
| بيع نقدي مدفوع بالكامل | مسموح دائمًا (ما لم يكن العميل محظورًا). | لا فحص للائتمان. |
| بيع آجل، عميل بلا حد أو بوضع بدون | مسموح. | لا شيء. |
| بيع آجل، مرن، فوق الحد | تنبيه؛ ويؤكد المندوب. | يُعلَّم البيع credit_exceeded؛ وتصل مراقبَ الائتمان مهمة. |
| بيع آجل، صارم، فوق الحد أو مع فواتير متأخرة | يُرفض الآجل؛ ويبقى البيع النقدي ممكنًا. | لا ينطبق: لا شيء يصل إلى أودو. |
| الشيكات الآجلة | تبقى فواتيرها مفتوحة وتدخل في الرصيد. | تُحتسب في الرصيد إلى أن يحصّل البنك الشيك؛ وتظهر منفصلة باسم شيكات معلقة. |
| عميل محظور | يُرفض البيع مع ذكر السبب. | إذا وصل بيع رغم ذلك (بيانات قديمة) يُقبل ويُعلَّم blocked_customer. |
ببساطة: لماذا يقرر الهاتف. لا تعمل الحدود الصارمة في المتجر إلا إذا عرف الهاتف الرصيد: يُستخدم رصيد آخر مزامنة مضافًا إليه المبيعات والدفعات التي لم تُزامَن بعد، فقد يتجاوز مندوبان يبيعان للمتجر نفسه بين المزامنتين الحد قليلًا؛ ويعلّم أودو ذلك لاحقًا. والبيع الذي تم فعلًا لا يرفضه الخادم أبدًا لأسباب الائتمان أو السعر أو المخزون أو السياج الجغرافي: يُسجَّل ويُعلَّم للمشرف.
خريطة المشرف والزيارات والتقارير
ببساطة: تعرض العمليات ← خريطة السيارات السيارات (مع مندوبها والبطارية والزيارات المنجزة مقابل المخططة ومبيعات اليوم) وعملاء اليوم كدبابيس مرقّمة ملونة حسب الحالة: للزيارة، قيد الزيارة، بيع، بدون بيع، المحل مغلق، تم تخطيه. حدّد سيارة لسرد محطاتها ورسم مسار اليوم من المواقع المسجَّلة.
| أين | ماذا ترى |
|---|---|
| العمليات ← الزيارات | كل زيارة مع المسافة من العميل والوقت في الموقع، وهل كانت مخططة وهل كانت داخل النطاق. المرشحات: اليوم، مع بيع، بدون بيع، خارج النطاق، خارج الخطة. |
| التقارير ← تحليل الزيارات | الزيارات حسب السيارة والنتيجة: معدل النجاح (الزيارات مع بيع مقابل الزيارات) والالتزام بالخطة. |
| العمليات ← المبيعات | مبيعات السيارات والطلبات المحجوزة؛ يعرض المرشح للمراجعة المعلَّمة منها؛ وآجل المفتوحة منها. |
| التقارير ← تحليل المبيعات | المبيعات حسب السيارة واليوم والمنتج والعميل (جدول محوري ورسم بياني). |
| التقارير ← سجل المواقع | نقاط GPS المسجَّلة (الوقت والدقة والسرعة والبطارية والشبكة). |
دون اتصال والمزامنة وما تعنيه التنبيهات
ببساطة: صندوق الصادر. يُكتب كل إجراء في قاعدة بيانات الهاتف مع عملية: معرّف فريد (UUID)، ونوع، ووقت الهاتف، ورقم تسلسلي لا يتغير (يرتفع فقط، ويبقى بعد إعادة التشغيل، ويتابع من أعلى رقم رآه أودو إذا أُعيد تثبيت التطبيق). ترسل المزامنة العمليات بالترتيب (100 في كل استدعاء)، ويطبّق أودو كل عملية مرة واحدة ويرد: applied أو duplicate (سبق رؤيتها: تُعاد النتيجة المخزنة) أو rejected (مع رمز) أو conflict؛ ثم ينزّل الهاتف ما تغيّر. وإذا ضاع الرد فإعادة المحاولة غير ضارة.
| التنبيه في أودو | المعنى | ماذا تفعل |
|---|---|---|
| price_mismatch | يختلف سعر الوحدة عن قائمة الأسعار بأكثر من حد التسامح. | راجع البيع؛ صحّح قائمة الأسعار أو درّب المندوب. |
| discount_exceeded | خصم يتجاوز الحد الأقصى في الإعدادات. | راجع البيع. |
| tax_mismatch | استخدم الهاتف ضرائب غير ضرائب أودو؛ وتستخدم الفاتورة ضرائب أودو. | حدّث بيانات التطبيق (زامن) وراجع المركز المالي للعميل. |
| total_mismatch | يختلف إجمالي الفاتورة عن الإجمالي الذي طبعه الهاتف. | قارن إعدادات الضرائب والتقريب. |
| credit_exceeded | العميل فوق حد الائتمان أو لديه فواتير متأخرة. | يقرر مراقب الائتمان؛ والفاتورة معتمدة فعلًا. |
| outside_geofence | بدأت الزيارة خارج النطاق (سبب التجاوز في الزيارة). | راجع السبب؛ وصحّح موقع GPS للعميل إن كان خاطئًا. |
| negative_stock | باع أكثر مما في السيارة (أصبح المخزون سالبًا). | لم يُسجَّل تحميل أو أن الجرد خاطئ؛ وستكشفه التسوية. |
| late_sync | وصلت العملية إلى أودو بعد أكثر من 12 ساعة من حدوثها. | للعلم فقط. |
| blocked_customer | بيع لعميل محظور. | تحقق من السبب. |
| return_exceeds_invoice, return_price_mismatch, invoice_mismatch, return_without_invoice | مرتجع أكبر أو أغلى من الفاتورة التي يشير إليها، أو فاتورة لعميل آخر، أو مرتجع بلا فاتورة. | راجع المرتجع قبل دفع الاسترداد؛ والاسترداد النقدي بلا فاتورة يُعلَّم. |
نصيحة: العمليات المرفوضة لا تنشئ مستندًا ناقصًا أبدًا: إذا فشلت عملية فلا يبقى منها شيء في أودو، ويحتفظ بها الهاتف مع السبب إلى أن تصحّح البيانات وتعيد المحاولة، أو تتجاهلها عمدًا.
ابنِ التطبيق وانشره
ببساطة: تخطَّ هذا الفصل إن أردت الاختبار فقط: يعمل
flutter run على محاكٍ أو هاتف موصول.- ثبّت Flutter (3.41 أو أحدث) وAndroid Studio، وعلى Mac أيضًا Xcode مع CocoaPods؛ ونفّذ
flutter doctorوأصلح ما يبلّغ عنه. - فُكّ ضغط
flutter-app-source.zipفي مجلد بلا مسافات. - شغّل سكربت الإعداد بعنوان أودو لديك واسم الحزمة الخاص بك:
dart run tools/setup.dart --url https://odoo.example.com --package com.yourcompany.vansales. أضف--name "Your Company Vans"و--color "#166534"و--icon your-icon-1024.pngلتحديد اسم التطبيق ولون العلامة والأيقونة (يمكن تشغيل السكربت مجددًا بأمان). - نفّذ
flutter pub getثمflutter runلتجربته، مسجّلًا الدخول بمندوب من أودو لديك.
cd flutter-app dart run tools/setup.dart --url https://odoo.example.com --package com.yourcompany.vansales flutter pub get flutter run --dart-define=SITE_URL=https://odoo.example.com
| الهدف | الأمر | ثم |
|---|---|---|
| أندرويد (Google Play) | flutter build appbundle --release | ارفع ملف .aab في Play Console. أنشئ مفتاح التوقيع مرة واحدة واحفظه جيدًا. |
| أندرويد (داخلي، دون متجر) | flutter build apk --release | أرسل ملف .apk إلى مندوبيك (اسمح بالتثبيت من هذا المصدر). |
| آيفون (App Store، TestFlight) | flutter build ipa --release | ارفع عبر Xcode أو Transporter؛ وأنشئ App ID مع Push Notifications وBackground Modes (location updates). |
مهم: يطلب المتجران تبرير الموقع في الخلفية: استخدم الجملة The app records the position of the salesman during working hours to prove customer visits and plan routes، وانشر سياسة خصوصية. على أندرويد 12 وما بعده يطلب التطبيق إذن البلوتوث للعثور على الطابعة؛ وعلى الآيفون يطلب الوصول إلى البلوتوث. يعرض التطبيق شرحه الخاص قبل كل إذن.
ببساطة: الإشعارات الفورية (Firebase): أنشئ مشروع Firebase، وأضف تطبيق أندرويد وتطبيق iOS باسمَي حزمتيك، وارفع مفتاح APNs لـ iOS في إعدادات المشروع ← Cloud Messaging، وأدخل معرّف المشروع ومفتاح API ومعرّفات التطبيقات في أودو (الإعدادات ← الإشعارات والمزامنة) والصق ملف JSON لحساب الخدمة. يقرأ التطبيق المعرّفات من خادمك عند تسجيل الدخول، فلا تحتوي الشيفرة المصدرية على أي مفتاح.
الأمان والخصوصية
| الموضوع | كيف يُعالَج |
|---|---|
| الوصول | يسجّل التطبيق الدخول بحساب أودو؛ ولا يدخل إلا مستخدمو مجموعة المندوب الذين لهم سيارة مسندة. يرى المندوب فقط عملاء مسارات سيارته (وكل العملاء إذا سُمح بالزيارات غير المخططة). وفي أودو لا يرى المندوب إلا مستندات سيارته ولا يستطيع تغيير أي شيء. |
| الرموز | رمز عشوائي لكل جهاز، ولا يُخزَّن في أودو إلا تجزئته، وتُنسى الأجهزة غير المستخدمة منذ 180 يومًا. تسردها الأجهزة؛ وتسجيل الخروج من كل الأجهزة في السيارة يلغيها. يبطّئ أودو المحاولات المتكررة بكلمة مرور خاطئة. الحسابات ذات المصادقة الثنائية لا تستطيع تسجيل الدخول إلى التطبيق. |
| العمليات | تُفحص كل عملية على الخادم: يجب أن يكون العميل والمنتجات والوحدات والضرائب وطرق الدفع والمستندات موجودة في الشركة وتخص سيارة المستخدم؛ ويجب أن تكون الأرقام منتهية وضمن النطاق؛ والصور محدودة بـ 6 MB. |
| عدم التكرار | يُنشأ المستند مرة واحدة لكل معرّف فريد حتى لو أعاد الهاتف المحاولة؛ وتُنشأ تسوية اليوم مرة واحدة. |
| صفحة التحقق | يفتح رمز QR في الإيصال /vs/verify/<token>: ولا تعرض إلا الشركة ورقم الفاتورة والتاريخ والإجمالي واسم العميل مُخفىً جزئيًا، وتظهر «غير موجود» فيما عدا ذلك. الرمز عشوائي وطويل. |
| الموقع | لا يُجمع إلا حسب الإعداد، مع نص الخصوصية وإذن النظام؛ وتُحذف يوميًا النقاط الأقدم من مدة الاحتفاظ (30 يومًا افتراضيًا). لا يرى العملاء موقع المندوب أبدًا. |
| الأسرار | حساب خدمة Firebase مقروء فقط لمديري أودو. ولا يحتوي التطبيق إلا على معرّفات عامة. |
نصيحة: تتطلب بعض الدول إشعارًا مكتوبًا أو موافقة لتتبع موقع الموظفين: استخدم نص الخصوصية في الإعدادات وسياستك الخاصة.
من الجيد أن تعرف
| الحد | التفاصيل |
|---|---|
| العروض والولاء | غير مشمولة: يبيع التطبيق بأسعار قائمة الأسعار مع خصم يدوي محدود. لا تُحسب البضاعة المجانية ولا عروض الحزم. |
| أرقام الدفعات والأرقام التسلسلية | المنتجات المتتبَّعة بالدفعة أو الرقم التسلسلي لا تُعرض في التطبيق. |
| قواعد الأسعار | تتبع الأسعار قائمة الأسعار عند شرائح الكميات التي تحددها. الصيغ المعقدة جدًا (المبنية على قائمة أسعار أخرى، وقواعد تقريب حسب مجموعة العملاء) تؤخذ مما يحسبه أودو للمنتج؛ فتحقق من عيّنة. |
| الضرائب | الضرائب النسبية فقط (شاملة أو غير شاملة). أنواع الضرائب الأخرى (المبالغ الثابتة والمجموعات والضرائب المحسوبة ببايثون) غير مدعومة على الهاتف. |
| عدة عملات | يبيع التطبيق بعملة الشركة. |
| حدود الائتمان على هاتفين | يُفحص الحد على الهاتف بالبيانات التي لديه؛ ويعلّم أودو التجاوز لاحقًا. |
| الآيفون والطابعات | طابعات Bluetooth Low Energy فقط (الفصل 14). |
| الموقع في الخلفية | قد يوقف أندرويد وiOS التطبيقات لتوفير البطارية. اطلب من المندوبين السماح بالموقع دائمًا وتعطيل تحسين البطارية للتطبيق؛ وتنتظر النقاط على الهاتف حتى تعود الشبكة. |
| إصدار أودو | بُني واختُبر على أودو 19.0. |
للمطورين
ببساطة: تخطَّ هذا الفصل إن كنت تستخدم المنتج فقط. العقد الكامل لواجهة برمجة التطبيق في
documentation/API.md.# is the server reachable?
curl https://odoo.example.com/api/vs/v1/ping
# {"ok": true, "api_version": 1, "server_time": "2026-10-26T08:00:00Z"}
# sign in (returns a token, the van and the configuration)
curl -X POST https://odoo.example.com/api/vs/v1/auth/login -H 'Content-Type: application/json' \
-d '{"login": "ahmed@example.com", "password": "...", "device": {"id": "abc", "platform": "android"}}'
# push the queued operations and pull the changes (every operation has a uuid and an immutable local_seq)
curl -X POST https://odoo.example.com/api/vs/v1/sync -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"cursor": null, "include_master": true, "ops": [{"uuid": "9d1c...", "type": "visit_start", "local_seq": 41, "device_time": "2026-10-26T08:01:00Z",
"payload": {"visit_uuid": "5f0e...", "partner_id": 7, "planned": true, "lat": 25.2, "lng": 55.27, "accuracy": 8}}]}'| المجال | نقاط النهاية تحت /api/vs/v1 |
|---|---|
| الجلسة | GET /ping, /config, /auth/me; POST /auth/login, /auth/logout, /auth/push-token |
| المزامنة | POST /sync (operations: visit_start, visit_end, van_sale, order_booking, return, payment, load_accept, settlement_submit, customer_create) |
| التتبع | POST /tracking/batch (also /api/vs/tracking/batch) |
| البيانات | GET /partners/<id>/credit, /products/<id>/image, /company/logo |
| المستندات | GET /orders/<id>/receipt, /orders/<id>/invoice.pdf, /orders/<id>/receipt.pdf; public: GET /vs/verify/<token> |
ببساطة: ترسل الاستدعاءات
Authorization: Bearer <token> واختياريًا Accept-Language. لكل عملية في /sync قيمة uuid فريدة وlocal_seq لا يتغير، ويكون الرد applied أو duplicate أو rejected أو conflict. للوحدة أكثر من 110 اختبارات آلية (--test-tags /taqnix_van_sales) وللتطبيق اختبارات وحدات (flutter test).استكشاف الأخطاء
| المشكلة | ماذا تفعل |
|---|---|
| لا يستطيع التطبيق الاتصال | افتح https://your-odoo/api/vs/v1/ping على الهاتف: يجب أن يرد {"ok": true}. تحقق من https والشهادة والعنوان دون شرطة مائلة في النهاية وأن الوحدة مثبتة على قاعدة البيانات هذه (استخدم إعداد dbfilter إن كانت لديك عدة قواعد). |
| يقول تسجيل الدخول إن الحساب ليس مندوبًا أو بلا سيارة | امنح المستخدم المجموعة مبيعات السيارات: المندوب وأسنده إلى سيارة. |
| المسار فارغ | تحتاج السيارة إلى مسار فيه عملاء في يوم الأسبوع الحالي؛ تحقق من الأسابيع الفردية والزوجية ونطاق التاريخ في البنود. |
| لا تبدأ الزيارة | يحتاج العميل إلى موقع GPS؛ ويحتاج الهاتف إلى تحديد GPS أفضل من حد الدقة وأن يكون داخل النطاق. اقترب أكثر، أو دع المندوب يستخدم التجاوز مع ذكر السبب، أو زد النطاق لهذا العميل. |
| منتج مفقود | يجب أن يكون قابلًا للبيع وغير متتبَّع بالدفعة أو الرقم التسلسلي، ومحدَّدًا فيه المباع من السيارات، وتابعًا للشركة، وأن يكون الهاتف قد زامن بعد التغيير. |
| السعر ليس سعر قائمة الأسعار | تحقق من قائمة أسعار العميل (العميل بلا قائمة يستخدم الافتراضية للسيارة) ومن أن خيار قوائم الأسعار مفعّل. يحدّث الهاتف قوائم الأسعار عند كل مزامنة. |
| نقص المخزون في السيارة | البيع محدود بمخزون السيارة. حمّل السيارة، أو اقبل التحميل إن كان ما يزال بانتظار التوقيع. |
| الطابعة غير موجودة | شغّلها وأبقها قريبة واسمح بإذن البلوتوث، وعلى الآيفون استخدم طابعة Bluetooth Low Energy. جرّب المشاركة كـ PDF في الأثناء. |
| يطبع الإيصال رموزًا مشوهة أو العربية خاطئة | استخدم وضع الصورة؛ في وضع النص يُستخدم خط الطابعة نفسها. |
| تقول التسوية إن اليوم مغلق | سبق إرسال تسوية لذلك اليوم. اطلب من المشرف رفضها إن كان على المندوب إعادة الجرد. |
| بيع في مشكلات المزامنة | افتح الإدخال لمعرفة السبب (منتج غير معروف، وحدة غير صالحة، فترة مغلقة...). صحّح البيانات في أودو واضغط إعادة المحاولة. |
| لا إشعارات فورية | تحقق من معرّفات Firebase وحساب الخدمة في الإعدادات، ومفتاح APNs للآيفون، ومن أن المستخدم سمح بالإشعارات. |
الدعم
المساعدة في التثبيت وإصلاح الأخطاء مشمولان لمدة 6 أشهر مع تحديثات مدى الحياة. تواصل معنا عبر صفحة السوق التي اشتريت منها الوحدة أو راسل support@taqnix.com مع إصدار أودو ولقطة شاشة.