حل المشكلات والأسئلة الشائعة
أول ما يسأله الناس على المنصة الحية، مُجابًا عنه من سلوك الشيفرة. وحيث تعتمد الإجابة على شيء لم يُفعَّل بعد، تذكر ذلك. ولمعرفة ما يعمل اليوم، راجع المنصة الحية والخطوات الأولى.
البريد والرموز والرسائل
لماذا لم يصلني بريد إلكتروني؟
لأن أي بريد لا يُرسل بعد. مشغّلات البريد والرسائل النصية والإشعارات الفورية مضبوطة على none: يُنشأ كل إشعار ويوضع في الطابور، لكن لا شيء يسلّمه. وهذا مقصود — فالرسالة المنتظرة تُرسل حالما تُهيّأ جهة مزوّدة، أما المُرسِل الوهمي فيُبلغ بنجاح رسائل لم يستلمها أحد. وحتى ذلك الحين:
- الإشعارات داخل التطبيق تعمل: تظهر تحت أيقونة الجرس في الموقع وفي التطبيقات.
- عند تفعيل البريد، يُرسل ما تراكم. والرموز لمرة واحدة التي فيه ستكون قد انتهت؛ فاطلب رمزًا جديدًا.
- بعد تفعيل البريد، يعني غياب رسالة عادةً أن العامل الخلفي متوقف (فهو من يرسل الإشعارات)، أو أن الإشعار أُمسك بسبب ساعات الهدوء أو تفضيلات المستلم — راجع الإشعارات.
طلبت رمز دخول ولم يصل شيء
السبب نفسه: رموز البريد والرسائل النصية توضع في الطابور ولا تُرسل. استخدم كلمة المرور بدلًا منها. في الموقع اختر تسجيل الدخول بكلمة المرور بدلاً من ذلك؛ وإن لم يكن لديك حساب بعد، فسجّل بالبريد وكلمة المرور. وفي التطبيقات، سجّل الدخول بكلمة مرورك.
سجّلت حسابًا لكن رمز التفعيل لم يصل. هل يمكنني استخدام حسابي؟
نعم. التسجيل ينشئ الحساب ويضع بريد التفعيل في الطابور؛ ويمكن للحساب الدخول بكلمة المرور وهو في انتظار التفعيل. ومحاولات كلمة المرور الخاطئة تُحسب مع ذلك: بعد 5 إخفاقات متتالية يُقفل الحساب 15 دقيقة (الإعدادات الافتراضية)، ويكون الرد auth.ACCOUNT_LOCKED حتى انقضائها.
دعا بائع أحد الموظفين ولم تصل الدعوة
دعوات الموظفين تُرسل بالبريد، فهي تنتظر في الطابور أيضًا. تبقى الدعوة صالحة 7 أيام؛ وإن انقضت فادعُ مجددًا بعد تفعيل البريد.
التسوق وإتمام الشراء
لماذا يظهر منتج «غير متوفر حالياً»؟
لا يمكن شراء المتغيّر إلا ما دام لعرضٍ عليه مخزون متاح، والمتاح يعني المخزون الموجود ناقص المخزون المحجوز. الأسباب الشائعة:
- المخزون صفر فعلًا لهذا المتغيّر — على البائع (أو المدير) إضافة مخزون.
- عمليات شراء مشترين آخرين تحجز آخر الوحدات. المخزون الذي تحجزه عملية شراء لم تكتمل يُحرَّر تلقائيًا عند انتهاء صلاحيتها؛ ويفحص العامل الخلفي ذلك كل دقيقة.
- إن لم يكن بإمكان أي بائع عرضه أصلًا — العرض موقوف، أو البائع غير نشط أو في إجازة — فتقول الصفحة إن الكمية نفدت لدى جميع البائعين. وتُسرد عروض البائعين الآخرين للمتغيّر نفسه أسفل العرض الرئيسي.
وعند إتمام الشراء يُعاد الفحص نفسه: إن نفد منتج قبل تأكيد الطلب تُبلَّغ بذلك، ولا يُخصم أي مبلغ.
لماذا يقول إتمام الشراء إن البائعين لا يستطيعون التوصيل إلى عنواني؟
لم يجد إتمام الشراء سعر شحن يغطي العنوان لبائع واحد على الأقل (الخطأ checkout.ADDRESS_UNSERVICEABLE). الشحن اليوم يغطي قطر فقط، على مستوى الدولة، بطريقتي العادي والسريع مسعّرتين بالريال القطري. فالأسباب المعتادة:
- العنوان خارج قطر — اختر عنوانًا في قطر أو أضفه.
- للبائع طرق شحن خاصة لا تغطي العنوان؛ وطرق البائع الخاصة مقدَّمة على طرق المنصة.
- مشكلة في الإعدادات: السعر المحدد بعملة أخرى لا يُطبَّق أبدًا على سلة بالريال القطري. إن فشلت كل العناوين مع كل البائعين، فأبلغ المشغّل.
ويمكنك أيضًا إزالة منتجات ذلك البائع من السلة وإتمام شراء الباقي.
لماذا يُطلب مني تسجيل الدخول عند إتمام الشراء؟
يستطيع الزوار التصفح وملء السلة، لكن وضع الطلب يتطلب مشتريًا مسجّل الدخول. وتُدمج سلة الزائر في حسابك عند تسجيل الدخول.
لماذا لا أستطيع الدفع بالبطاقة؟
الدفع بالبطاقة غير مهيّأ. الدفع عند الاستلام هو الوسيلة الوحيدة اليوم، ولا يُتاح للسلع الرقمية ولا فوق حد أقصى مضبوط لقيمة الطلب. التفاصيل في المال والضريبة والعمولة.
يطلب مني السائق رمز التسليم. أين أجده؟
يُرسل الرمز عندما يطلبه السائق عند بابك. يذهب برسالة نصية — لا تُرسل بعد — وكإشعار داخل التطبيق، فافتح إشعاراتك في الموقع أو في تطبيق المشتري. صلاحيته 30 دقيقة، ولا يعمل إلا أحدث رمز.
تطبيقات الجوال
التطبيق يقول إنه لا يستطيع الاتصال
- تحقق من الاتصال أولًا: تحتاج التطبيقات إلى الإنترنت للوصول إلى
api.helsen-med.com. ويضع تطبيق السائق بعض الإجراءات في طابور دون اتصال ويعيد تنفيذها لاحقًا. - تثبيت الشهادة. تثبّت التطبيقات المفتاح العام لشهادة TLS الخاصة بالخادم وترفض أي اتصال لا يطابق مفتاحه — وهذا ما يمنع اعتراض الاتصال. تجديد الشهادة يعيد استخدام المفتاح نفسه، فلا تتعطل التطبيقات مع التجديدات المعتادة. وإن تغيّر المفتاح يومًا، تتوقف الإصدارات القديمة عن الاتصال: ثبّت أحدث ملف APK من الفريق.
- الشبكات التي تعترض HTTPS (بعض شبكات الشركات والفنادق ووسطاء الفحص) تُفشل فحص التثبيت. جرّب بيانات الجوال.
- التطبيقات ليست على Google Play بعد. لا تثبّت إلا ملفات APK التي أعطاك إياها الفريق؛ ويطلب أندرويد السماح بالتثبيت من ذلك المصدر.
لا أستطيع الدخول إلى تطبيق المشتري برمز
رموز الرسائل النصية لا تُرسل بعد. سجّل الدخول بكلمة مرورك؛ وإن لم يكن لحسابك كلمة مرور، فسجّل أولًا في الموقع بالبريد وكلمة المرور.
البائعون والتوزيع والمديرون
طلب على منتج من عمرو أفندي لا يتحرك
ليس للبائعين الخمسة المستوردين حسابات مالكين بعد، فلا يستطيع أحد لدى هؤلاء البائعين قبول طلباتهم. ينبّه العامل الخلفي إلى الطلبات التي تفوت مهلة قبولها، لكنه لا يستطيع قبولها نيابة عنهم. على المشغّل أن يمنح كل بائع مالكًا أولًا — راجع قائمة اليوم الأول.
كل ما أستدعيه كمدير يفشل بالخطأ auth.MFA_REQUIRED
يجب على المديرين اجتياز عامل ثانٍ في كل طلب. ومن دونه لا يُسمح إلا بالدخول والخروج وقراءة ملفك الشخصي والتسجيل في العامل الثاني. سجّل عبر POST /api/v1/auth/mfa/enroll، وأكّد عبر POST /api/v1/auth/mfa/confirm، ثم ادخل بكلمة المرور والرمز. ويحتاج البائعون عاملًا ثانيًا لإضافة حساب بنكي؛ وترشدهم لوحة البائع خلال ذلك.
لا أستطيع استخدام لوحة التوصيل بحساب مدير
نموذج الدخول في لوحة التوصيل يطلب البريد وكلمة المرور فقط، بلا حقل لرمز تطبيق المصادقة، بينما يجب على المديرين اجتيازه. استخدم حساب مرسِل هناك.
أين لوحة الإدارة؟
غير منشورة للعموم بعد؛ وذلك بانتظار قرار. تُنفَّذ الإجراءات الإدارية عبر الواجهة البرمجية في الأثناء، من واجهة Swagger — راجع أين توثيق الواجهة البرمجية.
لماذا تجيب الواجهة البرمجية «غير موجود» عن سجل أعرف أنه موجود؟
البائع الذي يطلب سجل بائع آخر يتلقى common.NOT_FOUND، وليس «ممنوع» أبدًا، كي لا يؤكد الرد حتى وجود السجل. تأكّد أنك مسجّل الدخول للبائع الصحيح.
صور المنتجات بطيئة التحميل أو بحجمها الكامل
خدمة تصغير الصور غير منشورة في بيئة الإنتاج، فتُعرض الملفات الأصلية المرفوعة. احرص على أحجام معقولة لصور المنتجات المرفوعة.
الواجهة البرمجية والأخطاء
«طلبات كثيرة جدًا» (HTTP 429)
الطلبات محدودة المعدل لكل عنوان IP، على خادم الويب وفي الواجهة البرمجية معًا. ولتسجيل الدخول والتسجيل وطلب الرموز حدود أشد بكثير من التصفح — مثلًا نحو عشر محاولات دخول بكلمة المرور كل 15 دقيقة من العنوان نفسه. انتظر وأعد المحاولة؛ ويحمل رد الواجهة البرمجية الترويسة Retry-After التي تبيّن المدة. والأشخاص الكثيرون خلف اتصال مشترك واحد (شبكة مكتب) يتقاسمون الحد نفسه. رمز الخطأ في الواجهة البرمجية هو common.RATE_LIMITED.
أين توثيق الواجهة البرمجية؟
واجهة Swagger التفاعلية على api.helsen-med.com/docs؛ وتعرض كل عملية من يحق له استدعاؤها وحدّ معدلها. والواجهة البرمجية نفسها على https://api.helsen-med.com/api/v1. أما الأعراف — الأخطاء، والمبالغ كنصوص، ومفاتيح عدم التكرار، والترقيم بالمؤشر — ففي مرجع الواجهة البرمجية.
كيف أتحقق من أن المنصة تعمل؟
GET /health يجيب حين تكون عملية الواجهة البرمجية قائمة؛ وGET /ready يُرجع ready عندما تستجيب قاعدة البيانات وdegraded عندما لا تستجيب. راجع النشر والتشغيل.