تابي ما يظهر في صفحة الدفع بأودو: الحل خطوة بخطوة
دليل عملي لضبط مزود دفع في أودو بعملة الريال السعودي وعملات الخليج، وحل مشكلة اختفاء تابي وتمارا من صفحة الدفع، مع طريقة قراءة سجل الـ API.
ركّبت الموديول، حطيت المفاتيح، وفتحت صفحة الدفع في متجرك، وما ظهر شيء. أو ظهرت البطاقة وما ظهر التقسيط. هذا الوضع شبه دائماً ليس خللاً في الكود، بل فلتر من الفلاتر اللي يطبقها أودو قبل ما يعرض أي وسيلة دفع.
في هذا المقال نمشي على نفس الترتيب اللي يمشي عليه أودو نفسه داخلياً، من العملة إلى حالة المزود إلى قيود البلد والمبلغ، وبعدها نشرح كيف تقرأ سجل استدعاءات الـ API لما تظهر الوسيلة ويفشل الطلب.
ليش تختفي وسيلة الدفع أصلاً
أودو يبني قائمة وسائل الدفع في صفحة الدفع عن طريق دالة تجميع تصفّي المزودين المتوافقين مع الطلب الحالي. في الإصدارات الأخيرة اسمها _get_compatible_providers، وقبلها كانت _get_compatible_acquirers.
الدالة هذي تسأل أسئلة بالترتيب: هل المزود مفعّل؟ هل هو لنفس الشركة؟ هل يدعم عملة الطلب؟ هل يخدم بلد العميل؟ هل المبلغ ضمن الحد المسموح؟ وأي سؤال يرجع لا، المزود يختفي من الصفحة بدون رسالة خطأ.
هذي النقطة المهمة: أودو ما يقول لك ليش اختفى. يختفي بصمت. فالحل هو أنك تمر على الفلاتر وحدة وحدة.
أول خطوة: فعّل العملة
في قاعدة بيانات أودو جديدة، أغلب العملات موجودة لكنها غير مفعّلة. إذا كانت قاعدتك أنشئت بدولة غير السعودية أو بشجرة حسابات عامة، يمكن يكون الريال السعودي نفسه غير مفعّل عندك.
روح إلى المحاسبة، ثم الإعدادات، ثم العملات. شيل فلتر النشط من شريط البحث حتى تشوف القائمة كاملة، وفعّل العملة اللي تبيعها فيها: SAR أو AED أو KWD أو BHD أو QAR أو OMR.
إذا ما عندك تطبيق المحاسبة، تقدر توصل لنفس القائمة من وضع المطوّر عن طريق الإعدادات العامة ثم العملات.
ملاحظة على الخانات العشرية
الدينار الكويتي والدينار البحريني والريال العماني تستخدم ثلاث خانات عشرية، مو خانتين. أودو يخزن عدد الخانات على سجل العملة نفسه.
إذا خليتها خانتين، بتحصل فروقات تقريب بين المبلغ اللي يعرضه أودو والمبلغ اللي يستقبله المزود، وأحياناً يرفض الطلب لأن المبلغ ما يطابق الوحدة الصغرى المتوقعة. صحّح هذا قبل أول طلب حقيقي، لأن تصحيحه بعد وجود حركات مالية أصعب بكثير.
ثاني خطوة: أي عملة يستخدمها أودو في السلة
هذا أكثر مكان يضيع فيه الناس. عملة الشركة ليست بالضرورة عملة الطلب.
قائمة الأسعار هي اللي تحدد
عملة أمر البيع تجي من قائمة الأسعار المطبقة على الزائر، مو من عملة الشركة. ولو عندك قائمة أسعار بالدولار مربوطة بمجموعة بلدان معينة، وزائر جاك من بلد داخل تلك المجموعة، السلة تتحول للدولار، ووسيلة الدفع اللي تدعم الريال فقط تختفي.
افتح الموقع الإلكتروني، ثم الإعدادات، وشوف قوائم الأسعار المتاحة على الموقع وعملة كل وحدة منها، وشوف كيف تُختار حسب البلد.
أسرع اختبار: حط منتجاً في السلة، افتح أمر البيع من الخلفية، واقرأ حقل العملة فيه. هذي هي العملة اللي تُفلتر عليها وسائل الدفع، وليس أي عملة ثانية.
الشركات المتعددة
إذا عندك أكثر من شركة، المزود مربوط بشركة واحدة. الموقع اللي يبيع باسم شركة ثانية ما راح يشوف ذاك المزود. تأكد أن حقل الشركة على سجل المزود يطابق الشركة المرتبطة بالموقع.
ثالث خطوة: حالة المزود والنشر
في أودو 14 إلى 16 القائمة اسمها مزودو الدفع أو Payment Acquirers، ومن أودو 17 صارت Payment Providers مع قائمة منفصلة لطرق الدفع.
للمزود ثلاث حالات: معطّل، تجريبي، مفعّل.
- معطّل: لا يظهر أبداً، لا في الموقع ولا في بوابة العميل.
- تجريبي: يظهر مع تنبيه واضح أنه وضع اختبار، ويشتغل على مفاتيح البيئة التجريبية. كثير من المتاجر تفتح للجمهور وهي على هذا الوضع وتستغرب ليش ما توصل مبالغ.
- مفعّل: الوضع الصحيح للإنتاج، ويحتاج مفاتيح الإنتاج.
النشر مفتاح مستقل
مزود الدفع في أودو يحمل خاصية النشر على الموقع مثل أي سجل منشور. يعني ممكن يكون مفعّلاً وأنت تشوفه في الخلفية، ومع ذلك لا يظهر للزائر لأنه غير منشور.
افتح سجل المزود وتأكد من مفتاح النشر، ثم افتح المتجر من نافذة تصفح خاص وأنت غير مسجل دخول. الاختبار وأنت مدير النظام يخدعك، لأن المدير أحياناً يشوف ما لا يشوفه الزائر.
رابع خطوة: بقية الفلاتر
بعد العملة والحالة، يبقى أربعة أشياء تستحق الفحص:
- البلدان: إذا حددت قائمة بلدان على سجل المزود، أي عميل عنوانه خارج القائمة ما يشوف الوسيلة. اتركها فاضية إذا ما عندك سبب واضح.
- الحد الأقصى للمبلغ: حقل موجود في أودو ويُستخدم غالباً للاختبار ثم يُنسى. قيمة صغيرة فيه تخفي الوسيلة على السلات الكبيرة.
- طرق الدفع: من أودو 17 صار لازم تكون هناك طريقة دفع واحدة على الأقل مفعّلة ومرتبطة بالمزود، وإلا ما يظهر.
- دفتر اليومية: مزود بدون دفتر يومية محاسبي مضبوط يظهر أحياناً ثم يفشل عند التأكيد، فاضبطه من تبويب الإعدادات.
وإذا عندك أكثر من موقع في نفس القاعدة، راجع قيد الموقع على سجل المزود، لأن تقييده على موقع واحد يخفيه عن البقية.
خامس خطوة: حارس العملة عند تابي وتمارا
تابي وتمارا يشتغلون بعملات الخليج فقط: SAR وAED وKWD وBHD وQAR وOMR. لو كانت سلة العميل بالدولار أو اليورو، فالسلوك الصحيح هو أن الوسيلة تختفي، مو أن تظهر ثم يفشل الطلب عند المزود.
في Tabby & Tamara for Odoo هذا الحارس مبني داخل الموديول: المزود يعلن العملات المدعومة ويخفي نفسه تلقائياً في أي عملة خارج القائمة. يعني لو صادفت سلة بعملة غير مدعومة، اختفاء الوسيلة نتيجة متوقعة وليس عطلاً.
والموديول نفسه يغطي أربعة أسطح في تثبيت واحد: المتجر الإلكتروني، وفواتير بوابة العميل، وعروض الأسعار في البوابة، ونقاط البيع، وهذا يختصر عليك تكرار نفس الفحص في كل مكان.
لما تظهر الوسيلة ويفشل الطلب: اقرأ سجل الـ API
مرحلة ثانية تماماً. الوسيلة ظاهرة، العميل ضغط عليها، ورجع بخطأ أو ما تحوّل أصلاً. هنا تحتاج تشوف ما الذي أُرسل فعلاً.
سجل استدعاءات الـ API داخل Tabby & Tamara for Odoo يحفظ كل نداء للبوابة مع المسار، ورمز الاستجابة، والطلب والرد، مع إخفاء المفاتيح السرية. اقرأه بهذا المنطق:
- 401 أو 403: المفتاح غلط، أو حطيت مفتاح البيئة التجريبية في مزود على وضع الإنتاج، أو العكس.
- 400 مع تفاصيل تحقق: غالباً المبلغ أو العملة أو بيانات العميل. راجع الخانات العشرية للعملة، وراجع صيغة رقم الجوال.
- رفض من طرف المزود: أحياناً الحساب التجاري نفسه غير مفعّل على تلك العملة أو تلك الدولة، وهذا يُحل مع تابي أو تمارا لا من داخل أودو.
- لا يوجد أي سجل: معناها الطلب ما خرج من أودو، فارجع لفلاتر العملة والحالة.
قبل هذا كله، استخدم زر اختبار الاتصال. نداء واحد يخبرك إذا كانت المفاتيح مقبولة، ويوفر عليك نصف ساعة تخمين.
نقاط البيع مسار مختلف
كثير من الناس يضبطون المتجر ويستغربون أن الكاشير ما يشوف الخيار. نقاط البيع لها إعداداتها: طريقة الدفع لازم تكون مضافة إلى سجل نقطة البيع نفسها، والعملة هنا عملة الشركة وليست قائمة أسعار الموقع.
في الموديول، الكاشير يختار تابي أو تمارا، تفتح نافذة برمز QR، العميل يمسحه ويوافق من جواله، والخادم يتابع حالة العملية مع البوابة ويحجز المبلغ تلقائياً عند الموافقة. زر التأكيد يظل مقفلاً حتى ينجح الحجز فعلياً، عشان ما تطلع بضاعة بدون دفع مؤكد.
ترتيب فحص سريع
إذا كنت مستعجلاً، امش على هذا الترتيب:
- فعّل العملة، وتأكد من عدد خاناتها العشرية.
- افتح أمر بيع تجريبي واقرأ عملته.
- تأكد أن المزود مفعّل ومنشور، وعلى الشركة الصحيحة.
- فرّغ قيد البلدان، وامسح الحد الأقصى للمبلغ مؤقتاً.
- تأكد من وجود طريقة دفع مفعّلة، ومن دفتر اليومية.
- افتح المتجر من تصفح خاص.
- إذا ظهرت وفشلت، اضغط اختبار الاتصال ثم افتح سجل الـ API.
تسعة من عشرة حالات تنحل في أول ثلاث خطوات.
أشياء لا يحلها أي موديول
كن على علم بالحدود قبل ما تشتري أي إضافة. ربط تابي وتمارا مع اودو يوصّل مفاتيحك بالبوابة، لكنه لا يصدر لك حساباً تجارياً. تظل تحتاج حساب تاجر خاص فيك من تابي عبر merchant.tabby.ai، وحساب تاجر من تمارا، بإجراءاتهم ومستنداتهم.
كذلك عدد الأقساط ونسب الرسوم تحددها تابي وتمارا في اتفاقك معهم، لا الموديول. وهذا عمل تكامل مستقل من Kerneltics مبني على الواجهات العامة، بدون أي ارتباط أو اعتماد رسمي من الشركتين.
لكن الجانب التقني، وهو أن الوسيلة تظهر في الوقت الصحيح وتختفي في الوقت الصحيح وتترك أثراً يمكن قراءته عند الفشل، هذا كله تحت يدك، وهو بالضبط ما شرحناه هنا.
أسئلة متكررة
ليش تابي ما يظهر في صفحة الدفع عندي في أودو؟
غالباً بسبب أحد أربعة أسباب: العملة غير مفعّلة في أودو، أو عملة السلة ليست من عملات الخليج المدعومة، أو المزود معطّل أو غير منشور على الموقع، أو فيه قيد بلد أو حد أقصى للمبلغ على سجل المزود. افحصها بهذا الترتيب قبل أي شيء ثاني.
أي عملات يدعمها تابي وتمارا في أودو؟
الريال السعودي والدرهم الإماراتي والدينار الكويتي والدينار البحريني والريال القطري والريال العماني. أي عملة خارج هذي القائمة تؤدي إلى إخفاء الوسيلة تلقائياً، وهذا سلوك صحيح وليس عطلاً.
عملة الشركة عندي ريال سعودي، ليش السلة تطلع بعملة ثانية؟
لأن عملة أمر البيع تأتي من قائمة الأسعار المطبقة على الزائر، لا من عملة الشركة. افتح أمر البيع من الخلفية واقرأ حقل العملة فيه، هذي هي القيمة اللي تُفلتر عليها وسائل الدفع.
كيف أعرف سبب فشل الطلب بعد ما تظهر وسيلة الدفع؟
استخدم زر اختبار الاتصال أولاً للتأكد من المفاتيح، ثم افتح سجل استدعاءات الـ API واقرأ رمز الاستجابة. 401 أو 403 تعني مفتاحاً خاطئاً أو خلطاً بين البيئة التجريبية والإنتاج، و400 تعني غالباً مشكلة في المبلغ أو العملة أو بيانات العميل.
هل الموديول يفتح لي حساب تاجر في تابي أو تمارا؟
لا. تحتاج حساب تاجر خاص فيك من تابي عبر merchant.tabby.ai ومن تمارا، بإجراءاتهم ومستنداتهم. الموديول يربط مفاتيحك فقط، وهو تكامل مستقل من Kerneltics بدون ارتباط أو اعتماد رسمي من الشركتين.
هل يشتغل مع أودو كوميونيتي ونقاط البيع؟
نعم، يدعم كوميونيتي وإنتربرايز من الإصدار 14.0 حتى 19.0، ويغطي المتجر الإلكتروني وفواتير بوابة العميل وعروض الأسعار ونقاط البيع في تثبيت واحد. في نقاط البيع تحتاج تضيف طريقة الدفع إلى سجل نقطة البيع نفسها.