CS
دليل استخدام لوحة التحكم
طلبات المسوقين و تتبع العمولات
Cotton Skin - نظام إدارة المسوقين
المحتويات
القسم الأول: طلبات المسوقين
١. نظرة عامة على الصفحة
٢. الإحصائيات
٣. البحث والتصفية
٤. عرض تفاصيل الطلب
٥. قبول ورفض الطلبات
٦. العمليات الجماعية
٧. التصدير والاستيراد
القسم الثاني: تتبع العمولات
٨. نظرة عامة على الصفحة
٩. إحصائيات العمولات
١٠. إضافة مسوق جديد
١١. تفاصيل المسوق
١٢. إضافة المبيعات والمدفوعات
١٣. إعدادات المسوق
١٤. التصفية المتقدمة
١٥. استيراد مدفوعات PDF
١٦. تصدير الأرصدة المستحقة
تصدير واستيراد بيانات المسوقين (JSON)
١٧. تسوية الأرصدة
١٨. إدارة الأعمدة
١٩. العمليات الجماعية
٢٠. إنشاء طلب عينات
القسم الثالث: تعويضات العملاء
٢١. تعويضات العملاء (الطلبات المتضررة)
٢٢. لوحة الإحصائيات
٢٣. إنشاء مطالبة تعويض جديدة
٢٤. حالات المطالبة
٢٥. التصفية والبحث
٢٦. التقارير الشهرية
القسم الرابع: إدارة المستخدمين وشجرة الروابط
٢٨. إدارة المستخدمين
٢٩. إضافة مستخدم جديد
٣٠. تعديل وحذف المستخدمين
٣١. سجل التغييرات (Audit Log)
٣٢. شجرة الروابط (Linktree)
القسم الخامس: أهداف المبيعات والمالية
٣٣. أهداف المبيعات والحوافز
٣٤. لوحة المهام المجدولة
٣٥. حاسبة الإيرادات
٣٦. قوائم النظام (System Lists)
القسم السادس: التكاملات (Integrations)
٣٧. إدارة التكاملات
٣٨. إعداد Omniful
٣٩. إرسال الطلبات إلى Omniful
٤٠. التحقق من حالة الطلب في Omniful
٤١. إلغاء الطلبات في Omniful
القسم السابع: دليل الهوية البصرية (Brand Guidelines)
٤٢. إدارة إرشادات الهوية البصرية
٤٣. إضافة وتعديل الإرشادات
٤٤. التصنيفات المتاحة
القسم الثامن: مركز الإشعارات (Activity Notifications)
٤٥. جرس الإشعارات
٤٦. أنواع الإشعارات
٤٧. إدارة الإشعارات
القسم التاسع: إدارة عملاء B2B (B2B Client Management)
٤٨. نظرة عامة على نظام B2B
٤٩. إضافة وتعديل عميل
٥٠. لوحة النظرة العامة (Overview)
٥١. الإرساليات (Dispatches)
٥١أ. إنشاء إرسالية وبنودها
٥١ب. تحذير الحد الائتماني وإثبات التسليم
٥٢. المصالحة / التسوية (Reconciliation)
٥٢أ. إنشاء فترة تسوية وتعديل البنود
٥٢ب. مسار حالات التسوية (Status Workflow)
٥٣. الملفات (Files)
٥٤. سجل النشاط (Activity Log)
٥٥. التقارير (Reports)
٥٦. إحصائيات القائمة الرئيسية
القسم الأول: طلبات المسوقين
صفحة طلبات المسوقين هي المكان الذي تتم فيه مراجعة طلبات الانضمام لبرنامج التسويق بالعمولة. يمكنك من خلالها قبول أو رفض الطلبات ومراجعة معلومات المتقدمين.
١. نظرة عامة على الصفحة
عند فتح صفحة "طلبات المسوقين" من القائمة الجانبية، ستجد:
- ١شريط الإحصائيات في الأعلى يعرض إجمالي الطلبات والحالات
- ٢شريط البحث والتصفية حسب الحالة
- ٣جدول الطلبات مع معلومات كل متقدم
- ٤قائمة الإجراءات (تصدير / استيراد)
٢. الإحصائيات
في أعلى الصفحة تظهر بطاقات إحصائية تعرض:
| البطاقة | الوصف |
| إجمالي الطلبات | العدد الكلي لجميع الطلبات المستلمة |
| قيد الانتظار | الطلبات التي لم تتم مراجعتها بعد (باللون الأصفر) |
| مقبولة | الطلبات التي تم قبولها وبانتظار إضافة رابط الأفلييت (باللون الأخضر) |
| مكتمل | تم إضافة رابط الأفلييت ونقل المسوق لصفحة التتبع (باللون الأزرق) |
| مرفوضة | الطلبات التي تم رفضها (باللون الأحمر) |
٣. البحث والتصفية
يمكنك البحث والتصفية باستخدام:
- ١حقل البحث: ابحث بالاسم أو رقم الجوال - يتم التصفية فوراً أثناء الكتابة
- ٢تصفية حسب الحالة: اختر من القائمة المنسدلة: الكل، قيد الانتظار، مقبول، مكتمل، أو مرفوض
نصيحة: يمكنك الترتيب حسب أي عمود بالنقر على رأس العمود (التاريخ، الاسم، المنصة، الجوال، الحالة). انقر مرة أخرى لعكس الترتيب.
٤. عرض تفاصيل الطلب
انقر على زر "عرض" في عمود الإجراءات لفتح نافذة تفاصيل الطلب. تعرض النافذة:
- ١معلومات المتقدم: الاسم، المنصة، جميع روابط التواصل الاجتماعي (تظهر كل رابط بشكل منفصل مع اسم المنصة مثل TikTok، Instagram، Snapchat)، رقم الجوال
- ٢المعلومات البنكية: اسم البنك، اسم المستفيد، رقم الآيبان (IBAN)، كود الخصم المقترح (اختياري - خاضع للتوفر)
- ٣عنوان الشحن: الدولة (دول الخليج العربي: السعودية، الإمارات، الكويت، البحرين، قطر، عُمان)، المنطقة/الإمارة/المحافظة، المدينة، الحي، الشارع، العنوان الوطني (إلزامي للسعودية فقط)
- ٤معلومات الطلب: تاريخ التقديم والحالة الحالية
٥. قبول ورفض الطلبات وإضافة رابط الأفلييت
مسار العمل الجديد للطلبات:
مسار سير العمل
- ١المتقدم يرسل الطلب → الحالة: قيد الانتظار
- ٢المشرف يراجع ويقبل أو يرفض الطلب
- ٣إذا تم القبول → الحالة: مقبول (لا يتم نقل المسوق للتتبع تلقائياً)
- ٤الموظف يضيف رابط الأفلييت من خلال زر "إضافة رابط الأفلييت" أو من نافذة التفاصيل
- ٥عند الحفظ → الحالة: مكتمل ويتم نقل المسوق تلقائياً إلى صفحة التتبع
طرق مراجعة الطلبات
- ١من نافذة التفاصيل: انقر "عرض" ← راجع المعلومات ← انقر "قبول" أو "رفض"
- ٢من الجدول مباشرة: في عمود الإجراءات، انقر على "قبول" أو "رفض"
إضافة رابط الأفلييت (بعد القبول)
- ١بعد قبول الطلب، سيظهر زر "إضافة رابط الأفلييت" (أزرق) في عمود الإجراءات
- ٢انقر على الزر أو افتح نافذة التفاصيل
- ٣أدخل رابط الأفلييت في الحقل المخصص
- ٤انقر "حفظ وإكمال الإعداد"
- ٥سيتم نقل المسوق تلقائياً إلى صفحة تتبع العمولات
| الحالة | اللون | المعنى |
| قيد الانتظار | أصفر | لم تتم المراجعة |
| مقبول | أخضر | تم القبول - بانتظار إضافة رابط الأفلييت |
| مكتمل | أزرق | تم إضافة الرابط ونقل المسوق للتتبع |
| مرفوض | أحمر | تم رفض الطلب |
إرسال إشعار واتساب للطلبات المعلقة
يمكنك إرسال إشعار واتساب للفريق لمراجعة طلب مسوق معلق. الإشعار يتضمن بيانات المتقدم وروابط قبول/رفض مباشرة.
طريقة الإرسال
- ١في صف الطلب المعلق، انقر على زر واتساب الأخضر بجانب أزرار القبول والرفض
- ٢سيتم إرسال رسالة واتساب تلقائية لجميع أعضاء الفريق تحتوي على:
- -اسم المتقدم ورقم الجوال
- -المنصات وروابط التواصل الاجتماعي
- -رابط قبول ورابط رفض (يمكن النقر عليهما مباشرة من واتساب)
ملاحظة: عند النقر على رابط القبول أو الرفض من واتساب، يتم تنفيذ الإجراء فوراً. إذا قام شخص آخر بالنقر على الرابط الثاني بعد ذلك، ستظهر له رسالة توضح أن الطلب تمت مراجعته مسبقاً مع توقيت الإجراء.
٦. العمليات الجماعية
لتنفيذ عمليات على عدة طلبات في وقت واحد:
- ١حدد الطلبات المراد تعديلها باستخدام مربعات الاختيار (checkbox) بجانب كل طلب
- ٢أو استخدم مربع "تحديد الكل" في رأس الجدول لتحديد جميع الطلبات
- ٣سيظهر شريط العمليات الجماعية يعرض عدد الطلبات المحددة
- ٤اختر "قبول المحدد" أو "رفض المحدد" أو "حذف المحدد" (للمشرف الأعلى فقط)
تنبيه: زر "حذف المحدد" يظهر فقط للمشرف الأعلى (Super Admin). الحذف نهائي ولا يمكن التراجع عنه.
٧. التصدير والاستيراد
من قائمة "الإجراءات" في أعلى الجدول:
تصدير الطلبات
تصدير جميع الطلبات بصيغة JSON. يتم تحميل ملف يحتوي على كامل بيانات الطلبات لحفظها أو نقلها.
استيراد الطلبات
استيراد طلبات من ملف JSON محفوظ مسبقاً. مفيد لنقل البيانات أو استعادة نسخة احتياطية.
القسم الثاني: تتبع العمولات
صفحة تتبع العمولات هي المركز الرئيسي لإدارة المسوقين المقبولين، تتبع مبيعاتهم، عمولاتهم، ومدفوعاتهم. تتيح لك هذه الصفحة إدارة كاملة لجميع جوانب برنامج التسويق بالعمولة.
٨. نظرة عامة على الصفحة
تتكون صفحة تتبع العمولات من:
- ١بطاقات الإحصائيات (المسوقين النشطين، المبيعات، العمولات، المدفوعات، المستحقات)
- ٢عرض المسوقين: يمكن التبديل بين عرض البطاقات وعرض القائمة (الجدول) باستخدام أزرار التبديل. على الهاتف يظهر عرض البطاقات تلقائياً لسهولة القراءة
- ٣قائمة الإجراءات المتقدمة
- ٤خيار إظهار المسوقين المعطلين
- ٥زر واتساب مباشر لفتح محادثة مع المسوق بسرعة
- ٦تصفح الصفحات: يمكن اختيار عدد السجلات لكل صفحة (٢٥ أو ٥٠ أو ١٠٠) مع أزرار التنقل بين الصفحات
عرض البطاقات
في عرض البطاقات، يظهر كل مسوق في بطاقة منفصلة تحتوي على: الاسم، رقم الهاتف مع زر واتساب، نسبة العمولة، وشبكة مالية تعرض (المبيعات، العمولة، المدفوع، المستحق). انقر على أي بطاقة لعرض التفاصيل الكاملة.
٩. إحصائيات العمولات
| البطاقة | الوصف |
| المسوقين النشطين | عدد المسوقين الذين حالتهم نشطة |
| إجمالي المبيعات | مجموع مبيعات جميع المسوقين بالريال السعودي |
| إجمالي العمولات المكتسبة | مجموع العمولات المحسوبة (باللون الأخضر) |
| إجمالي المدفوعات | المبلغ الذي تم دفعه للمسوقين |
| إجمالي المستحقات | الرصيد المتبقي المستحق للمسوقين (باللون الأحمر) |
١٠. إضافة مسوق جديد
لإضافة مسوق جديد يدوياً:
- ١انقر زر "+ إضافة مسوق" (الأخضر) في أعلى الجدول
- ٢أدخل اسم المسوق (مطلوب)
- ٣أدخل رقم الجوال
- ٤حدد نسبة العمولة (النسبة المئوية)
- ٥أدخل رابط أو كود الأفلييت (اختياري) - يمكن إدخال الكود فقط وسيتم بناء الرابط تلقائياً
- ٦انقر "إضافة" لحفظ المسوق
استيراد من الطلبات المقبولة
بدلاً من الإضافة اليدوية، يمكنك استيراد المسوقين تلقائياً من صفحة طلبات المسوقين عبر: الإجراءات > "استيراد من الطلبات". سيتم استيراد الطلبات المكتملة فقط (التي تم إضافة رابط الأفلييت لها) مع تحديث جميع المعلومات للمسوقين الحاليين. الطلبات المقبولة التي لم يُضاف لها رابط أفلييت بعد سيتم تخطيها.
ملاحظة: عند إضافة رابط الأفلييت لمسوق من صفحة الطلبات، يتم نقله تلقائياً إلى صفحة التتبع بدون الحاجة للاستيراد اليدوي.
١١. تفاصيل المسوق
انقر على اسم أي مسوق أو زر "عرض" لفتح نافذة التفاصيل. تحتوي النافذة على ثلاث تبويبات:
تبويب المبيعات
يعرض قائمة بجميع مبيعات المسوق مع:
- -تاريخ البيع (أو فترة البيع إذا كانت مدة)
- -مبلغ البيع ونسبة العمولة ومبلغ العمولة المحسوب
- -ملاحظات إضافية إن وجدت
- -زر حذف لكل عملية بيع
تبويب المدفوعات
يعرض سجل المدفوعات مع:
- -تاريخ الدفع ونوعه (عمولة أو مكافأة)
- -طريقة الدفع ورقم المرجع
- -ملاحظات وزر حذف لكل دفعة
تبويب الإعدادات
يتيح تعديل جميع بيانات المسوق (التفاصيل في القسم ١٣).
في أعلى النافذة تظهر ملخص سريع: نسبة العمولة، إجمالي المبيعات، العمولات المكتسبة، المدفوع، والرصيد المتبقي.
١٢. إضافة المبيعات والمدفوعات
إضافة عملية بيع
- ١افتح تفاصيل المسوق وانتقل لتبويب "المبيعات"
- ٢أدخل مبلغ البيع بالريال
- ٣حدد تاريخ البيع (أو فترة بتاريخ بداية ونهاية)
- ٤أضف ملاحظات إن أردت
- ٥انقر "إضافة بيع" - ستحسب العمولة تلقائياً بناء على نسبة المسوق
إضافة دفعة
- ١افتح تفاصيل المسوق وانتقل لتبويب "المدفوعات"
- ٢أدخل مبلغ الدفعة
- ٣حدد تاريخ الدفع
- ٤اختر نوع الدفعة: عمولة أو مكافأة
- ٥أدخل طريقة الدفع ورقم المرجع (اختياري)
- ٦انقر "إضافة دفعة"
١٣. إعدادات المسوق
في تبويب "الإعدادات" داخل نافذة تفاصيل المسوق، يمكنك تعديل:
| الحقل | الوصف |
| نسبة العمولة | النسبة المئوية للعمولة على كل بيع |
| رقم الآيبان (IBAN) | رقم الحساب البنكي الدولي |
| رقم الحساب | رقم الحساب البنكي |
| اسم البنك | اختيار البنك من قائمة البنوك السعودية |
| اسم المستفيد | الاسم المسجل في الحساب البنكي |
| رقم الجوال | رقم الجوال مع زر WhatsApp للتواصل المباشر |
| الدولة | دولة الإقامة - دول مجلس التعاون الخليجي (السعودية، الإمارات، الكويت، البحرين، قطر، عُمان). تتغير المناطق والمدن تلقائياً حسب الدولة المختارة |
| المنطقة / الإمارة / المحافظة | يتغير المسمى حسب الدولة: منطقة (السعودية)، إمارة (الإمارات)، محافظة (باقي الدول). تتحدث القائمة تلقائياً عند تغيير الدولة |
| المدينة | المدينة (تتحدث تلقائياً حسب المنطقة/الإمارة/المحافظة المختارة) |
| الحي | اسم الحي |
| الشارع | اسم الشارع |
| العنوان الوطني | العنوان الوطني - إلزامي للسعودية فقط (4 أحرف + 4 أرقام مثل RBPU8787)، اختياري لباقي الدول |
| كود الخصم | كود الخصم المقترح من المسوق لمتابعيه (اختياري - خاضع للتوفر وقد يتم تعديله) |
| ملاحظات | ملاحظات إضافية عن المسوق |
روابط المسوق
يمكنك إضافة روابط حسابات التواصل الاجتماعي ورابط الأفلييت. انقر "+ إضافة رابط" واختر المنصة (TikTok, Instagram, Twitter, Snapchat, YouTube, أخرى) ثم أدخل الرابط.
زر WhatsApp
بجانب حقل رقم الجوال يوجد زر WhatsApp أخضر. بالنقر عليه يتم فتح محادثة WhatsApp مباشرة مع المسوق.
تعطيل / إعادة تفعيل المسوق
يمكنك تعطيل مسوق (بدون حذف بياناته) عبر زر "تعطيل". المسوق المعطل يظهر بشفافية أقل ويمكن إعادة تفعيله لاحقاً.
١٤. التصفية المتقدمة
للبحث المتقدم بين المسوقين، استخدم نظام التصفية المتعدد الشروط:
- ١افتح لوحة التصفية من: الإجراءات > "تصفية"
- ٢انقر "+ إضافة شرط" لإضافة شرط تصفية
- ٣اختر العمود (الاسم، الجوال، نسبة العمولة، المبيعات، العمولة، المدفوع، الرصيد)
- ٤اختر المعامل (يساوي، لا يساوي، أكبر من، أقل من، يحتوي على)
- ٥أدخل القيمة
- ٦يمكنك إضافة شروط متعددة (بعلاقة "و" بين الشروط)
- ٧انقر "تطبيق" لتصفية النتائج أو "مسح" لإزالة التصفية
مثال: لعرض المسوقين الذين لديهم رصيد مستحق أكبر من 100 ريال: اختر العمود "الرصيد" > المعامل "أكبر من" > القيمة "100"
١٥. استيراد مدفوعات PDF
يمكنك استيراد مدفوعات من كشوف حسابات بنكية بصيغة PDF:
- ١افتح نافذة الاستيراد من: الإجراءات > "استيراد مدفوعات PDF"
- ٢اسحب ملف PDF وأفلته في منطقة الإسقاط، أو انقر لاختيار الملف
- ٣سيقوم النظام بتحليل الملف واستخراج المعاملات تلقائياً
- ٤سيحاول النظام مطابقة كل معاملة مع مسوق بناءً على رقم الآيبان (IBAN)
- ٥للمعاملات التي لم تتم مطابقتها، اختر المسوق يدوياً من القائمة المنسدلة
- ٦حدد المعاملات المراد استيرادها باستخدام مربعات الاختيار
- ٧انقر "استيراد المحدد" لإضافة المدفوعات
نصيحة: تأكد من إدخال أرقام الآيبان (IBAN) لكل مسوق في إعداداته لتسهيل المطابقة التلقائية عند استيراد كشوف الحسابات البنكية.
١٦. تصدير الأرصدة المستحقة (PDF)
لتصدير تقرير بالأرصدة المستحقة لجميع المسوقين:
- ١من قائمة الإجراءات > "تصدير الأرصدة المستحقة (PDF)"
- ٢سيتم تحميل ملف PDF يحتوي على جدول بجميع المسوقين الذين لديهم رصيد مستحق
- ٣يشمل التقرير: اسم المسوق، رقم الآيبان، اسم البنك، اسم المستفيد، والمبلغ المستحق
ملاحظة: التقرير يدعم النص العربي بالكامل ويمكن طباعته أو مشاركته مباشرة.
تصدير واستيراد بيانات المسوقين (JSON)
يمكنك تصدير واستيراد جميع بيانات المسوقين (معلومات المسوق، المبيعات، المدفوعات، والروابط) كملف JSON للنسخ الاحتياطي أو نقل البيانات:
تصدير بيانات المسوقين
- ١من قائمة الإجراءات > "تصدير جميع المسوقين (JSON)"
- ٢ستظهر رسالة تأكيد، انقر "موافق" للمتابعة
- ٣سيتم تحميل ملف JSON يحتوي على جميع المسوقين مع بياناتهم الكاملة:
- - معلومات المسوق (الاسم، الهاتف، البريد، المنصة، البنك، العنوان)
- - سجلات المبيعات
- - سجلات المدفوعات
- - الروابط
استيراد بيانات المسوقين
- ١من قائمة الإجراءات > "استيراد المسوقين (JSON)"
- ٢اختر ملف JSON المصدّر مسبقاً
- ٣ستظهر رسالة تأكيد توضح عملية الاستيراد
- ٤بعد الاستيراد، ستظهر رسالة بالنتائج (عدد المسوقين الجدد، المحدّثين، المبيعات، المدفوعات، الروابط)
ملاحظة: عند الاستيراد، يتم مطابقة المسوقين عبر رقم الهاتف. إذا وُجد مسوق بنفس الرقم يتم تحديث بياناته، وإلا يتم إنشاء مسوق جديد. المبيعات والمدفوعات والروابط المكررة يتم تخطيها تلقائياً.
حذف المسوق نهائياً (المشرف الأعلى فقط)
يمكن للمشرف الأعلى حذف مسوق بالكامل مع جميع سجلاته:
- ١افتح تفاصيل المسوق بالنقر على "عرض" في الجدول
- ٢في تبويب "الإعدادات"، انقر زر "حذف المسوق" (الأحمر الداكن)
- ٣ستظهر رسالة تحذيرية أولى - انقر "موافق" للمتابعة
- ٤سيُطلب منك كتابة اسم المسوق بالضبط للتأكيد النهائي
- ٥عند التأكيد، سيتم حذف المسوق وجميع سجلاته (المبيعات، المدفوعات، الروابط، الطلبات)
تحذير: هذه العملية نهائية ولا يمكن التراجع عنها. تأكد من تصدير بيانات المسوق قبل الحذف إذا كنت تحتاجها.
١٧. تسوية الأرصدة
لتسوية جميع الأرصدة المستحقة دفعة واحدة (متاح للمشرف الأعلى فقط):
- ١من قائمة الإجراءات > "تسوية جميع الأرصدة"
- ٢ستظهر رسالة تأكيد تعرض عدد المسوقين والمبلغ الإجمالي
- ٣عند التأكيد، سيتم إنشاء دفعة لكل مسوق بقيمة رصيده المستحق
- ٤ستصبح جميع الأرصدة صفرية بعد التسوية
تنبيه: هذه العملية لا يمكن التراجع عنها تلقائياً. تأكد من إتمام التحويلات البنكية الفعلية قبل تنفيذ التسوية.
١٨. إدارة الأعمدة
يمكنك التحكم في الأعمدة المعروضة في جدول المسوقين:
- ١من قائمة الإجراءات > "إدارة الأعمدة"
- ٢فعّل أو عطّل الأعمدة حسب حاجتك
- ٣الأعمدة المتاحة: الجوال، نسبة العمولة، المبيعات، العمولة، المدفوع، الرصيد، عدد الطلبات، الآيبان، الملاحظات، الروابط، رابط الأفلييت
- ٤انقر "حفظ" لتطبيق التغييرات (يتم حفظ الإعدادات في المتصفح)
١٩. العمليات الجماعية
يمكنك تنفيذ عمليات على عدة مسوقين في وقت واحد:
- ١حدد المسوقين باستخدام مربعات الاختيار بجانب كل اسم
- ٢سيظهر شريط العمليات الجماعية مع الخيارات المتاحة
تعديل نسبة العمولة
انقر "تعديل العمولة" لتغيير نسبة العمولة لجميع المسوقين المحددين إلى نسبة موحدة.
إنشاء طلب عينات
انقر "إنشاء طلب" لإرسال طلب عينات لجميع المسوقين المحددين (التفاصيل في القسم ٢٠).
تصدير إلى Excel
انقر "تصدير إلى Excel" من شريط العمليات الجماعية لتنزيل ملف .xlsx يحتوي فقط على المسوقين المحددين حالياً، مع الأعمدة التالية: الاسم، الهاتف، البريد الإلكتروني، المدينة، نسبة العمولة، إجمالي المبيعات، إجمالي العمولة، إجمالي المدفوع، الرصيد المستحق، الحالة (نشط/غير نشط)، وتاريخ الإضافة.
يكون اسم الملف على شكل selected-sellers-YYYY-MM-DD.xlsx ويفتح مباشرة في Excel أو Numbers أو Google Sheets. يظهر الزر فقط عند تحديد مسوق واحد على الأقل.
٢٠. إنشاء طلب عينات
يمكنك إنشاء طلب عينات منتجات للمسوقين بطريقتين:
الطريقة الأولى: من صفحة طلبات العينات
- ١افتح صفحة "طلبات العينات" من القائمة الجانبية
- ٢انقر زر "+ طلب جديد" في أعلى الصفحة
- ٣اختر المسوق من القائمة المنسدلة (يظهر فقط المسوقون المعتمدون)
- ٤اختر المنتجات من القائمة المنسدلة (انقر لفتح القائمة، ثم حدد المنتجات المطلوبة بوضع علامة ✓ عليها). المنتجات المتاحة: اسفنج التقشير، بكج الجسم، بكج glow، بكج glow (للبشرة الحساسة)، بكج التفتيح، بكج بينك برست، بكج اليدين، تغليف الهدايا، تونر الجسم، تونر الوجه، توزيعات بكج glow، توزيعات بكج بينك برست، توزيعات بكج فلو، شنطة العناية، شاور جل، صابونة التفتيح، كيس Cotton Skin، كريم الجسم، كريم التفتيح (صباحي)، كريم التفتيح (مسائي)، كريم الوجه، كريم وعلاج مسام الوجه، ماسك القطن، معطر الجسم والشعر، واقي الشمس المفتح، ربطه الشعر. يمكنك إزالة منتج محدد بالنقر على × بجانبه
- ٥أدخل ملاحظات للطلب (اختياري)
- ٦انقر "إنشاء الطلب" لإنشاء الطلب
الطريقة الثانية: من صفحة تتبع العمولات
- ١حدد المسوقين المراد إرسال عينات لهم
- ٢انقر "إنشاء طلب" من شريط العمليات الجماعية
- ٣ستفتح نافذة اختيار المنتجات مع قائمة بجميع المنتجات المتاحة
- ٤اختر المنتجات المراد إرسالها (تحديد فردي أو تحديد الكل)
- ٥أدخل ملاحظات للطلب (اختياري)
- ٦انقر "إنشاء طلبات" لإنشاء الطلبات
ملاحظة: سيتم إنشاء طلب منفصل لكل مسوق محدد، ويمكنك متابعة الطلبات من صفحة "طلبات العينات". يمكنك أيضاً إنشاء طلب فردي لمسوق محدد من صفحة تفاصيل المسوق في تتبع العمولات.
حذف طلب عينات
يمكنك حذف طلبات العينات بطريقتين:
- ١من قائمة الطلبات: انقر زر "حذف" (الأحمر) بجانب زر "عرض" في صف الطلب
- ٢من تفاصيل الطلب: افتح الطلب بالنقر على "عرض" ثم انقر زر "حذف" في أسفل النافذة
- ٣ستظهر رسالة تأكيد قبل الحذف - انقر "موافق" للتأكيد أو "إلغاء" للتراجع
تنبيه: حذف الطلب نهائي ولا يمكن التراجع عنه.
٢١. تعويضات العملاء (الطلبات المتضررة)
صفحة تعويضات العملاء تتيح تتبع وإدارة مطالبات التعويض للطلبات المتضررة. يمكنك توثيق المشكلات وتصنيفها حسب السبب وتتبع قيمة التعويضات وتصدير التقارير الشهرية.
٢٢. لوحة الإحصائيات
في أعلى الصفحة تظهر إحصائيات سريعة:
- ١إجمالي المطالبات: عدد المطالبات هذا الشهر
- ٢إجمالي التعويضات: مجموع قيم التعويضات بالريال
- ٣حسب السبب: توزيع المطالبات حسب سبب المشكلة
- ٤أكثر منتج تضرراً: المنتج الأكثر تكراراً في المطالبات
٢٣. إنشاء مطالبة تعويض جديدة
لإنشاء مطالبة تعويض:
- ١انقر زر "مطالبة جديدة" في أعلى الصفحة
- ٢أدخل رقم الطلب (إلزامي) واختر المنتج من القائمة وأدخل الكمية
- ٣اكتب وصف الشكوى (إلزامي - تفاصيل المشكلة)
- ٤اختر سبب المشكلة من القائمة:
- مصنع: مشكلة من المصنع
- مستودع: مشكلة من المستودع
- صندوق: مشكلة في التغليف
- شركة الشحن: تلف أثناء الشحن
- شركة اكسس: مشكلة من شركة اكسس
- عميل: خطأ من العميل
- غير محدد: سبب غير واضح
- ٥أدخل قيمة التعويض وأصناف التعويض (اختياري)
- ٦أضف ملاحظات السبب الجذري (اختياري)
- ٧ارفع صور المشكلة (حتى ١٠ صور)
- ٨انقر "حفظ" لإنشاء المطالبة
٢٤. حالات المطالبة
تمر المطالبة بعدة حالات:
- ١مسودة: المطالبة تم إنشاؤها ولم تُرسل للمراجعة
- ٢قيد المراجعة: المطالبة قيد الدراسة
- ٣معتمد: تمت الموافقة على التعويض
- ٤مرفوض: تم رفض المطالبة
- ٥تم التعويض: تم صرف التعويض للعميل
- ٦مغلق: تم إغلاق المطالبة
ملاحظة: تغيير الحالة إلى "معتمد" أو "مغلق" يتطلب صلاحيات الموافقة أو صلاحيات المشرف الأعلى.
٢٥. التصفية والبحث
يمكنك تصفية المطالبات باستخدام:
- ١رقم الطلب: للبحث بكلمة مفتاحية
- ٢الحالة: لعرض مطالبات بحالة معينة
- ٣سبب المشكلة: لتصفية حسب نوع السبب
- ٤نطاق التاريخ: لعرض مطالبات فترة زمنية محددة
- ٥نطاق قيمة التعويض: لتصفية حسب المبلغ
٢٦. التقارير الشهرية
يمكنك تصدير تقارير شهرية بصيغة CSV:
- ١تقرير المصنع (جمانة): يحتوي على الصور والشكوى والمنتج - للمطالبات المصنفة كمشاكل مصنع
- ٢تقرير الصندوق (فدوى): يحتوي على الصور وقيمة التعويض والشكوى ورقم الطلب - للمطالبات المصنفة كمشاكل صندوق
- ٣تقرير المستودع: يحتوي على الصور وقيمة التعويض والشكوى ورقم الطلب - للمطالبات المصنفة كمشاكل مستودع
ملاحظة: يتم تحديد نطاق التاريخ تلقائياً للشهر السابق. يمكنك تعديل الفترة يدوياً باستخدام حقول التاريخ في شريط التصفية.
٢٧. تصدير تقرير PDF
يمكنك تصدير تقرير PDF شامل بجميع المطالبات مع الصور لسبب محدد وفترة زمنية معينة:
- ١من قائمة "الإجراءات" اختر "تصدير تقرير PDF"
- ٢اختر سبب المشكلة (مثل: عميل، شركة الشحن، مصنع)
- ٣حدد تاريخ البداية والنهاية (يتم تعيين الشهر السابق تلقائياً)
- ٤انقر "تصدير PDF" وانتظر حتى يتم إنشاء التقرير
محتوى التقرير: يتضمن ملخص إجمالي المطالبات والتعويضات، وجدول تفصيلي بكل مطالبة يشمل: رقم الطلب، المنتج، الشكوى، الملاحظات، قيمة التعويض، أصناف التعويض، التاريخ، والصور المرفقة.
٢٨. إدارة المستخدمين
صفحة إدارة المستخدمين متاحة فقط للمشرفين الأعلى (Super Admin) وتتيح إضافة وتعديل وحذف مستخدمي لوحة التحكم.
٢٩. إضافة مستخدم جديد
لإضافة مستخدم جديد:
- ١انقر زر "إضافة مستخدم" في أعلى الصفحة
- ٢أدخل الاسم والبريد الإلكتروني ورقم الهاتف (مطلوب) واختر المدير من القائمة المنسدلة (يُستخدم المدير لإرسال تنبيهات التصعيد عند تأخر المهام)
- ٣حدد مستوى الصلاحية لكل صفحة من القائمة المنسدلة:
- بدون وصول: المستخدم لا يستطيع الوصول للصفحة
- قراءة فقط: المستخدم يستطيع عرض البيانات فقط بدون تعديل (يظهر بعلامة زرقاء)
- قراءة وكتابة: المستخدم يستطيع عرض وتعديل البيانات (يظهر بعلامة خضراء)
يمكنك استخدام "تعيين الكل" لتعيين نفس المستوى لجميع الصفحات دفعة واحدة
الصفحات المتاحة: المحتوى، الإشعارات، العمولات، تعويضات العملاء، التتبع، التحدي، التقويم، طلبات العينات، الملفات، شجرة الروابط، دليل الاستخدام، أهداف المبيعات، المجدول
- ٤فعّل خيار "صلاحية قبول/رفض الطلبات" إذا كنت تريد أن يتمكن المستخدم من قبول أو رفض طلبات المسوقين. بدون هذه الصلاحية، سيتمكن المستخدم من عرض الطلبات فقط دون القدرة على قبولها أو رفضها. المشرفون الأعلى (Super Admin) يملكون هذه الصلاحية تلقائياً.
- ٥انقر "حفظ" - سيتم إنشاء كلمة مرور تلقائية مكونة من ١٢ خانة
- ٦ستظهر نافذة تحتوي على البريد الإلكتروني وكلمة المرور المُنشأة
- ٧انسخ البيانات فوراً - لا يمكن عرض كلمة المرور مرة أخرى
ملاحظة: كلمة المرور تُنشأ تلقائياً ولا يمكن عرضها بعد إغلاق النافذة. احرص على نسخها فوراً.
٣٠. تعديل وحذف المستخدمين
يمكنك التحكم في المستخدمين عبر الأزرار في جدول المستخدمين:
- ١تعديل: تعديل الاسم والبريد والهاتف والمدير ومستوى صلاحيات الصفحات (بدون وصول/قراءة فقط/قراءة وكتابة) وصلاحية قبول/رفض الطلبات وتغيير كلمة المرور
- ٢تفعيل/تعطيل: تفعيل أو تعطيل حساب المستخدم دون حذفه
- ٣حذف: حذف المستخدم نهائياً (يتطلب تأكيد)
ملاحظة: عند تعديل مستخدم، يمكنك تغيير كلمة المرور بإدخال كلمة مرور جديدة. اتركها فارغة للإبقاء على كلمة المرور الحالية.
٣١. سجل التغييرات (Audit Log)
صفحة سجل التغييرات متاحة فقط للمشرفين الأعلى (Super Admin) وتتيح تتبع جميع التعديلات التي تمت على البيانات في النظام. يمكنك من خلالها معرفة من قام بتغيير أي معلومة ومتى وما هي التفاصيل القديمة والجديدة.
ما الذي يتم تتبعه؟
يتم تسجيل جميع العمليات التالية تلقائياً:
- ١المسوقين: إنشاء، تعديل (IBAN، رقم الهاتف، البنك، العمولة، العنوان)، تفعيل/تعطيل
- ٢طلبات المسوقين: قبول أو رفض الطلبات (فردي وجماعي)
- ٣المبيعات: إضافة وحذف سجلات المبيعات
- ٤المدفوعات: إضافة وحذف واستيراد المدفوعات
- ٥طلبات العينات: إنشاء وتحديث حالة الطلبات
- ٦المستخدمين: إنشاء وتعديل وحذف وتفعيل/تعطيل حسابات المستخدمين
- ٧الأعمدة المخصصة: إنشاء وتعديل وحذف الأعمدة
- ٨تطبيع الهواتف: عمليات تصحيح أرقام الهواتف الجماعية
استخدام صفحة سجل التغييرات
عند فتح الصفحة ستجد:
- ١بطاقات الإحصائيات: تغييرات اليوم، تغييرات الأسبوع، المستخدمين النشطين، إجمالي السجلات
- ٢شريط التصفية: البحث بالنص، تاريخ من/إلى، تصفية حسب المستخدم، نوع العملية، ونوع الكيان
- ٣جدول السجلات: يعرض التاريخ، المستخدم، العملية، نوع الكيان، اسم الكيان، ملخص التغييرات، وزر التفاصيل
عرض تفاصيل التغيير
عند النقر على زر "تفاصيل" لأي سجل:
- ١تظهر نافذة تحتوي على جميع المعلومات عن التغيير
- ٢لعمليات التعديل: يظهر جدول يوضح الحقل والقيمة القديمة والقيمة الجديدة لكل تغيير
- ٣يظهر اسم المستخدم الذي قام بالتغيير وعنوان IP والتاريخ والوقت
تصدير السجلات
يمكنك تصدير السجلات المفلترة إلى ملف CSV عبر زر "تصدير CSV" في أعلى الصفحة. الملف يتضمن جميع البيانات المعروضة حسب الفلاتر المطبقة.
ملاحظة: يتم تحديث السجلات تلقائياً كل ٣٠ ثانية. جميع التغييرات تُسجل في الوقت الفعلي ولا يمكن تعديلها أو حذفها.
٣٢. شجرة الروابط (Linktree)
ميزة شجرة الروابط تتيح لك إنشاء صفحة عامة (link-in-bio) يمكن للزوار الوصول إليها عبر رابط /links. تتحكم فيها كمسؤول من صفحة /admin/links وتتضمن خيارات متقدمة للتخصيص والتحليلات.
نظرة عامة على شجرة الروابط
ميزة شجرة الروابط توفر:
- ١صفحة عامة: يمكن للزوار الوصول إليها عبر الرابط /links دون الحاجة لتسجيل الدخول
- ٢عرض احترافي: تعرض الصفحة صورة ملفك الشخصي، الاسم، السيرة الذاتية، وأزرار الروابط
- ٣أيقونات وسائط التواصل: عرض وسائل التواصل الاجتماعي بأيقونات جذابة
- ٤تتبع تلقائي: تسجيل عدد النقرات على كل رابط تلقائياً لقياس الأداء
- ٥تخصيص كامل: التحكم في الألوان والخطوط والتصميم من لوحة التحكم
الصفحة العامة (/links)
الصفحة العامة هي واجهة الزائر. تحتوي على:
معلومات الملف الشخصي
تعرض صورة ملفك الشخصي (Avatar)، اسمك بشكل واضح، وسيرتك الذاتية. يمكن تخصيص جميع هذه العناصر من لوحة التحكم.
أزرار الروابط
عرض جميع الروابط التي أضفتها على شكل أزرار قابلة للنقر. يمكنك تحديد نمط الأزرار (عادي، مميز، رأس)، وإضافة علامات مثل "جديد" أو "تخفيض". عند نقر الزائر على أي رابط، يتم تسجيل النقرة تلقائياً.
أيقونات وسائط التواصل
عرض أيقونات وسائل التواصل الاجتماعي (واتس آب، إنستغرام، سناب شات، تيك توك، إلخ) مع روابط مباشرة. الأيقونات قابلة للتخصيص في لوحة التحكم.
خلفية مخصصة
يمكن تعيين لون خلفية أو صورة خلفية للصفحة لمطابقة علامتك التجارية.
نصيحة: شارك رابط /links مع متابعيك على وسائل التواصل الاجتماعي. من هنا سيمكنهم الوصول إلى جميع روابطك في مكان واحد.
لوحة التحكم (/admin/links)
لوحة إدارة شجرة الروابط تتضمن 5 تبويبات رئيسية لإدارة جميع جوانب الصفحة:
١. تبويب العلامة التجارية (Branding)
تخصيص مظهر الصفحة العامة:
- -الاسم المعروض: تغيير الاسم الذي يظهر في الصفحة
- -السيرة الذاتية: تحرير وصف قصير عن نفسك
- -الصورة الشخصية: تحميل صورة ملفك الشخصي (Avatar)
- -لون الخلفية: اختيار لون الخلفية أو تحميل صورة
- -نمط الأزرار: اختيار تصميم الأزرار (مربع، دائري، بدون حدود، إلخ)
- -الألوان: تخصيص ألوان الأزرار والنصوص
- -الخط: اختيار خط من خطوط Google Fonts
انقر "حفظ" بعد إجراء أي تغييرات لتطبيقها على الصفحة العامة مباشرة.
٢. تبويب الروابط (Links)
إدارة روابطك:
- -إضافة رابط: انقر "+ إضافة رابط" أدخل عنوان الرابط والرابط نفسه
- -تحرير: انقر على أي رابط لتعديل عنوانه أو الرابط نفسه
- -حذف: انقر زر الحذف لإزالة الرابط (يمكن التراجع)
- -إعادة الترتيب: اسحب وأفلت الروابط لتغيير ترتيبها
- -تفعيل/تعطيل: انقر على مربع الاختيار لإظهار أو إخفاء الرابط
- -نوع الرابط: حدد النوع - عادي (بني)، مميز (ملون)، رأس (عريض في الأعلى)
- -العلامات: أضف علامات مثل "جديد" أو "تخفيض" تظهر على زر الرابط
٣. تبويب الأيقونات الاجتماعية (Social Icons)
إدارة روابط وسائل التواصل الاجتماعي:
- -إضافة أيقونة: انقر "+ إضافة" واختر منصة من القائمة (واتس آب، إنستغرام، سناب شات، تيك توك، تويتر، يوتيوب، فيسبوك، لينكدين، بينتيريست، إلخ)
- -إدخال الرابط: أدخل رابط حسابك على المنصة المختارة
- -تحرير وحذف: عدّل أو احذف أي أيقونة اجتماعية
- -إعادة ترتيب: اسحب لتغيير ترتيب الأيقونات على الصفحة
نصيحة: استخدم روابط واتس آب للتواصل المباشر مع متابعيك (مثل: https://wa.me/966501234567)
٤. تبويب التحليلات (Analytics)
عرض إحصائيات النقرات على روابطك:
- -إحصائيات الروابط: جدول يعرض عدد النقرات على كل رابط
- -التصفية حسب الفترة: عرض النقرات لآخر 7 أيام أو 30 يوم
- -معدل الأداء: رؤية أكثر الروابط فعالية
- -تصدير CSV: انقر "تصدير" لحفظ البيانات في ملف CSV لتحليل متقدم
ملاحظة: التحليلات تُحدّث في الوقت الفعلي. مراقبة أداء روابطك تساعدك على فهم ما يهتم به متابعوك.
٥. تبويب المعاينة (Preview)
عرض الصفحة العامة كما يراها الزوار:
- -معاينة مباشرة: عرض حي للصفحة العامة بجميع التخصيصات
- -التحديث الفوري: أي تغيير في التبويبات الأخرى يظهر هنا فوراً
- -اختبار الروابط: نقر على الروابط للتأكد من أنها تعمل بشكل صحيح
كيفية الاستخدام
خطوات سريعة لإعداد واستخدام شجرة الروابط:
الخطوة الأولى: الدخول إلى لوحة التحكم
- ١من القائمة الجانبية، انقر على "شجرة الروابط" أو توجه إلى /admin/links
الخطوة الثانية: تخصيص المظهر
- ١انقر على تبويب "العلامة التجارية"
- ٢غيّر الاسم والسيرة الذاتية
- ٣حمّل صورة ملفك الشخصي
- ٤اختر الألوان والخط والخلفية حسب علامتك التجارية
- ٥انقر "حفظ" لتطبيق التغييرات
الخطوة الثالثة: إضافة الروابط
- ١انقر على تبويب "الروابط"
- ٢انقر "+ إضافة رابط"
- ٣أدخل عنوان الرابط (مثل: "متجري الإلكتروني") والرابط الكامل
- ٤اختر نوع الرابط (عادي أو مميز) وأضف علامات إن أردت
- ٥كرّر لإضافة جميع روابطك
- ٦اسحب الروابط لترتيبها حسب الأولوية
الخطوة الرابعة: إضافة وسائل التواصل
- ١انقر على تبويب "الأيقونات الاجتماعية"
- ٢انقر "+ إضافة" واختر المنصة (واتس آب، إنستغرام، إلخ)
- ٣أدخل رابط حسابك
- ٤أضف باقي حساباتك
الخطوة الخامسة: المراقبة والتحليل
- ١انقر على تبويب "التحليلات" لمراقبة أداء روابطك
- ٢اختر الفترة الزمنية (آخر 7 أيام أو 30 يوم)
- ٣قارن الأداء وعدّل الروابط حسب النتائج
- ٤صدّر التقارير بصيغة CSV للتحليل المتقدم
الخطوة السادسة: مشاركة الصفحة
- ١شارك الرابط /links مع متابعيك على وسائل التواصل
- ٢استخدمه في التوقيع البريدي أو وصفك على الانستغرام
- ٣راقب النقرات والمشاركات
ملاحظة مهمة: جميع التغييرات التي تجريها تُحفظ تلقائياً وتظهر على الصفحة العامة فوراً. لا تحتاج إلى خطوات إضافية لنشر التغييرات.
٣٣. أهداف المبيعات والحوافز
نظام لتحفيز المسوقين عبر تحديد أهداف مبيعات بمكافآت مالية لمن يحققها خلال فترة زمنية محددة.
كيفية عمل النظام
يعمل النظام على تسجيل مبيعات المسوقين تلقائياً في بداية ونهاية فترة الهدف لحساب الفرق كمبيعات الفترة:
- ١إنشاء هدف جديد: حدد اسم الهدف والمبلغ المستهدف ومبلغ المكافأة وفترة الهدف (تاريخ البداية والنهاية)
- ٢تسجيل البيانات تلقائياً: عند حلول تاريخ البداية أو النهاية، يقوم النظام أولاً بجلب تقارير المسوقين من روابطهم المحفوظة (صفحات الأفلييت) ثم يسجل إجمالي المبيعات لجميع المسوقين النشطين (يتم التحقق كل ساعة)
- ٣عند تسجيل البيانات يظهر شارة "تم تسجيل البداية" أو "تم تسجيل النهاية" في صفحة التفاصيل
- ٤يمكنك إعادة التسجيل يدوياً في أي وقت بالضغط على "إعادة تسجيل البداية" أو "إعادة تسجيل النهاية" - يتم الجلب في الخلفية على السيرفر ويمكنك إغلاق الصفحة والعودة لاحقاً لمتابعة التقدم. شريط التقدم يعرض حالة كل مسوّق (تم استيرادها / فشلت / تم تخطيها) مع زر إيقاف أحمر لإيقاف العملية
- ٥النظام يحسب الفرق تلقائياً (مبيعات الفترة = مبيعات النهاية - مبيعات البداية)
- ٦إذا حقق المسوّق الهدف، يظهر زر "منح المكافأة" لتسجيل المكافأة كدفعة في سجله
صفحة أهداف المبيعات (/admin/sales-targets)
- ١عرض جميع الأهداف مع حالتها (نشط، مكتمل، ملغي)
- ٢إنشاء وتعديل وحذف الأهداف
- ٣عرض تفاصيل كل هدف مع جدول تقدم المسوقين
- ٤جدول التقدم يعرض: اسم المسوّق، المبيعات عند البداية والنهاية، مبيعات الفترة، عمولة الفترة، وحالة تحقيق الهدف
ملاحظة مهمة: العمولة تُحسب بشكل منفصل عن المكافأة. المكافأة هي مبلغ إضافي يُمنح عند تحقيق الهدف، بينما العمولة تبقى كما هي حسب النسبة المحددة لكل مسوّق.
٣٤. لوحة المهام المجدولة
صفحة خاصة بالمشرف الأعلى لمراقبة المهام التلقائية المجدولة في النظام وسجل تنفيذها.
صفحة المهام المجدولة (/admin/scheduler)
- ١حالة المجدول: يعرض ما إذا كان المجدول يعمل أو متوقف، وقت البدء، آخر فحص، وعدد الفحوصات الإجمالية
- ٢التحكم بالمجدول: يمكنك تشغيل أو إيقاف المجدول بزر "تشغيل/إيقاف"، وتعديل الفاصل الزمني بين الفحوصات (بالدقائق من ١ إلى ١٤٤٠)
- ٣المهام النشطة: كل هدف مبيعات نشط يظهر كبطاقة تعرض اسم الهدف وتواريخه وحالة تسجيل البيانات، مع زر "إيقاف مؤقت/استئناف" لإيقاف أو تشغيل كل مهمة على حدة
- ٤سجل التنفيذ لكل مهمة: بالضغط على "سجل التنفيذ" داخل كل مهمة يظهر سجل العمليات الخاص بهذه المهمة فقط (قابل للطي والإظهار)
- ٥السجل العام: في أسفل الصفحة يوجد "سجل المجدول العام" يعرض جميع العمليات (قابل للطي والإظهار)
- ٦يتم التحديث تلقائياً كل ٦٠ ثانية ويمكن التحديث يدوياً بزر التحديث
ملاحظة: هذه الصفحة متاحة فقط للمشرف الأعلى (Super Admin) ولا تظهر في القائمة الجانبية للمستخدمين العاديين. عند إيقاف المجدول، لن يتم تنفيذ أي فحوصات تلقائية حتى يتم تشغيله مرة أخرى.
القسم الرابع: المالية
٣٥. حاسبة الإيرادات (/admin/revenue)
أداة لحساب الإيرادات المتوقعة بناءً على المنتجات المتوفرة وأسعارها وكمياتها. البيانات تُحفظ محلياً في المتصفح.
مميزات الصفحة
- ١بطاقات الإحصائيات: تعرض إجمالي المنتجات، مواد التغليف، الإجمالي الكلي شامل الضريبة، والإجمالي الكلي بدون ضريبة
- ٢جدول المنتجات: يعرض رمز المنتج (SKU)، الاسم، الباركود، الكمية الأصلية، الكمية المتاحة (بعد خصم البكجات)، السعر، التصنيف، والإيرادات
- ٣التصنيف: يمكن تصنيف كل صنف كـ "منتج" أو "تغليف" أو "بكج". البكج يحتوي على منتجات فردية - عند تحديد الكمية تنقص الكمية المتاحة من المنتجات المكونة تلقائياً
- ٤البحث: شريط بحث للبحث برمز المنتج أو الاسم
- ٥إضافة منتج: زر لإضافة صف جديد فارغ في الجدول
- ٦حفظ التعديلات: يحفظ جميع التغييرات في المتصفح (localStorage)
- ٧تصدير CSV: يُنشئ ملف CSV بجميع البيانات للتحميل
- ٨إعادة تعيين: يعيد جميع البيانات إلى القيم الأصلية (يحذف التعديلات المحفوظة)
- ٩استيراد Excel: يتيح رفع ملف Excel (.xlsx أو .xls) لتحديث كميات المنتجات تلقائياً. يتم مطابقة المنتجات برقم المنتج (SKU) في العمود الأول، وتحديث الكمية من العمود الخامس (الكمية). بعد الاستيراد تظهر نافذة توضح عدد المنتجات المحدّثة والرموز غير الموجودة مع تفاصيل التغييرات (الكمية القديمة والجديدة). لا تنسَ الضغط على "حفظ" بعد الاستيراد لحفظ التعديلات.
إنشاء البكجات
يمكنك تحويل أي صنف إلى بكج عن طريق تغيير تصنيفه إلى "بكج" في القائمة المنسدلة. عند ذلك يظهر زر "اختيار المنتجات" لتحديد المنتجات المكونة للبكج.
- ١غيّر تصنيف الصنف إلى "بكج" من القائمة المنسدلة
- ٢اضغط "اختيار المنتجات" واختر المنتجات المكونة مع تحديد الكمية من كل منتج لكل وحدة بكج
- ٣حدد كمية البكج - ستنقص الكمية المتاحة من كل منتج مكوّن تلقائياً
- ٤إذا ظهرت الكمية المتاحة بالأحمر، يعني أن المخزون غير كافٍ لتغطية البكجات
مثال: لديك منتج أ (كمية 10) ومنتج ب (كمية 10). إذا غيّرت صنف معين إلى "بكج" واخترت منتج أ ومنتج ب كمكونات وحددت كمية البكج = 7، تصبح الكمية المتاحة لكل منتج = 3 فقط.
حساب الضريبة: يتم إدخال السعر شاملاً ضريبة القيمة المضافة (15%). الحاسبة تعرض الإيرادات بدون الضريبة (السعر ÷ 1.15 × الكمية) وشامل الضريبة (السعر × الكمية) تلقائياً.
ملاحظة: بيانات حاسبة الإيرادات والبكجات تُحفظ محلياً في متصفحك فقط ولا تُرسل إلى الخادم. إذا قمت بتسجيل الدخول من متصفح آخر، ستبدأ بالبيانات الأصلية.
الهوية البصرية والتصميم
تم تحديث تصميم جميع صفحات لوحة التحكم ليتوافق مع دليل الهوية البصرية لـ Cotton Skin:
- الألوان: اللون الأساسي النحاسي/الذهبي (
#CD9668)، الخلفية الكريمية (#F4EDE1)، والأسود (#000000)
- الخطوط: خط Atacama للعناوين الكبيرة، وخط Hellix للنصوص الصغيرة
- التطبيق: الألوان والخطوط مطبقة على جميع الصفحات بما فيها القائمة الجانبية، صفحة تسجيل الدخول، وجميع صفحات الإدارة
٣٦. قوائم النظام (System Lists)
صفحة قوائم النظام متاحة فقط للمشرفين الأعلى (Super Admin) وتتيح إدارة جميع القوائم المنسدلة المستخدمة في النظام من مكان واحد مركزي. بدلاً من تعديل الكود لإضافة منتج جديد أو سبب مشكلة، يمكن إدارتها مباشرة من هذه الصفحة.
الوصول إلى صفحة قوائم النظام (/admin/system-lists)
- من القائمة الجانبية، تحت قسم "النظام"، اضغط على "قوائم النظام"
- الصفحة متاحة فقط للمشرف الأعلى (Super Admin)
القوائم المتوفرة
- المنتجات (products): قائمة جميع منتجات Cotton Skin المستخدمة في صفحة التعويضات عند اختيار المنتجات المتضررة
- أسباب المشاكل (cause_categories): قائمة أسباب المشاكل المستخدمة في تصنيف مطالبات التعويض (مصنع، مستودع، صندوق، إلخ)
- يمكن إضافة قوائم جديدة حسب الحاجة لأي استخدام آخر في النظام
إدارة القوائم
- إضافة قائمة جديدة: أدخل اسم القائمة في حقل "اسم القائمة الجديدة" في الشريط الجانبي واضغط "إضافة"
- إضافة عنصر: اختر القائمة من الشريط الجانبي، ثم أدخل قيمة العنصر الجديد واضغط "إضافة عنصر"
- تعديل عنصر: اضغط مباشرة على نص العنصر لتعديله، ثم اضغط Enter أو انقر خارج الحقل للحفظ
- تفعيل/تعطيل عنصر: استخدم مفتاح التبديل بجانب كل عنصر. العناصر المعطلة لن تظهر في القوائم المنسدلة في الصفحات الأخرى
- إعادة ترتيب: اسحب العناصر وأفلتها لتغيير ترتيب ظهورها
- حذف عنصر: اضغط زر × بجانب العنصر وأكد الحذف
- حذف قائمة كاملة: اضغط زر "حذف القائمة" لحذف القائمة وجميع عناصرها
تهيئة القوائم الافتراضية
عند فتح الصفحة لأول مرة وعدم وجود قوائم، يظهر زر "تهيئة القوائم الافتراضية" الذي يضيف تلقائياً قائمة المنتجات (٣٣ منتج) وقائمة أسباب المشاكل (٧ أسباب) بالقيم الافتراضية.
ملاحظة مهمة: أي تغيير في قوائم النظام ينعكس فوراً على جميع الصفحات التي تستخدم هذه القوائم (مثل صفحة التعويضات). تأكد من عدم حذف عناصر مستخدمة حالياً في بيانات موجودة.
محرك سير عمل الحملات
نظام متكامل لإدارة حملات التسويق من الفكرة حتى النشر. يربط بين تقويم التسويق وسير العمل الآلي مع تتبع الأداء والتصعيدات.
إنشاء حملة جديدة
- اضغط زر "حملة جديدة" في أعلى الصفحة
- يمكنك اختيار قالب جاهز (رمضان، عيد الحب، إطلاق منتج، تخفيضات) لتعبئة الحقول تلقائياً
- أدخل عنوان الحملة، نوعها، التواريخ، المنصات المستهدفة، الهدف، والميزانية
- عند الإنشاء، يتم إنشاء 3 مراحل تلقائياً: الكتابة → التصميم → النشر
- كل مرحلة تحصل على مؤقت OLA (وقت محدد للإنجاز) حسب نوع الحملة
مراحل سير العمل
- الكتابة: كتابة الكابشن والتفاصيل. تبدأ فوراً عند إنشاء الحملة. يمكن إرفاق ملفات أمثلة
- التصميم: رفع ملفات التصميم (صور، فيديو، PDF). تبدأ تلقائياً بعد تسليم الكتابة
- النشر: تعرض المحتوى المعتمد (الكابشن والتصميم) للمراجعة النهائية. زر "نشر" ينهي سير العمل وينشر الحملة. تبدأ بعد اعتماد الكتابة والتصميم معاً
الأدوار والصلاحيات
- كاتب (Writer): يمكنه تسليم مرحلة الكتابة فقط. عند إسناد مرحلة الكتابة يظهر الكتّاب أولاً في القائمة
- مصمم (Designer): يمكنه تسليم مرحلة التصميم فقط. عند إسناد مرحلة التصميم يظهر المصممون أولاً في القائمة
- المشرف الأعلى (Super Admin): يمكنه تسليم أي مرحلة ومراجعة واعتماد أو رفض المحتوى والنشر
- المراجعة والاعتماد: المشرف الأعلى فقط يمكنه اعتماد أو رفض المراحل. باقي الأدوار ترى رسالة "بانتظار مراجعة المشرف"
نظام المراجعة
- عند تسليم الكتابة والتصميم معاً، تنتقل الحملة تلقائياً لحالة "تحت المراجعة"
- فقط المشرف الأعلى يمكنه اعتماد أو رفض كل مرحلة على حدة مع ملاحظات
- عند اعتماد الكتابة والتصميم معاً، تنتقل الحملة لمرحلة النشر
- عند الرفض، تعود المرحلة للشخص المسند إليه مع الملاحظات
إدارة المراحل
- إسناد المهمة: اختر عضو الفريق المسؤول عن كل مرحلة. القائمة تُصفى حسب الدور المناسب (كاتب لمرحلة الكتابة، مصمم لمرحلة التصميم). فقط الشخص المسند إليه أو صاحب الدور المناسب أو المشرف الأعلى يمكنه التسليم
- تسليم الكتابة: أدخل الكابشن والتفاصيل، مع إمكانية إرفاق ملفات
- تسليم التصميم: ارفع ملفات الوسائط (صور، فيديو، PDF) بحد أقصى 50 ميجا لكل ملف
- سجل النسخ: كل تعديل يُحفظ كنسخة مرقمة مع الملاحظات والملفات
نظام OLA والتصعيدات
- OLA (اتفاقية مستوى التشغيل): وقت محدد لإنجاز كل مرحلة
- الأوقات الافتراضية تختلف حسب نوع الحملة (سريع/متوسط)
- على المسار (أخضر): التقدم طبيعي
- معرض للخطر (أصفر): مضى 60% من الوقت بدون تسليم
- متأخر (أحمر): انتهى الوقت المحدد
- التصعيدات تُنشأ تلقائياً بثلاث مستويات: تذكير → إشعار المشرف → تنبيه حرج
طرق العرض
- كانبان: لوحة مرئية تعرض الحملات حسب حالتها (مسودة، نشطة، متأخرة، منشورة...)
- قائمة: جدول مفصل بجميع الحملات مع إمكانية البحث والتصفية
- جانت: مخطط زمني يعرض الحملات كأشرطة أفقية على الجدول الزمني، مع تقسيم كل حملة إلى مراحلها (كتابة، تصميم، نشر). يتم تمييز اليوم الحالي بخط نحاسي، وعطلات نهاية الأسبوع بخلفية مختلفة. اضغط على أي حملة لعرض التفاصيل.
- التصعيدات: عرض جميع المهام المتأخرة أو المعرضة للخطر
- الأداء: إحصائيات شاملة (متوسط وقت الكتابة، نسبة التسليم في الوقت، معدل الرفض)
ملخص المهام في الصفحة الرئيسية
- الصفحة الرئيسية تعرض ملخص المهام الخاص بكل مستخدم حسب دوره
- للكاتب/المصمم: يظهر عدد المهام المسندة إليه التي تحتاج تسليم، مع قائمة بالمهام وروابط مباشرة لصفحة الحملات
- للمشرف الأعلى: يظهر عدد المهام بانتظار المراجعة، الحملات النشطة، الحملات المتأخرة، مع قائمة بالمهام المعلقة
- كل مهمة تعرض اسم الحملة، نوع المرحلة، وحالة الوقت (على المسار/معرض للخطر/متأخر)
- الضغط على أي مهمة يوجهك مباشرة لصفحة الحملات
ملاحظة: الحملات مرتبطة بتقويم التسويق. يمكن إنشاء حملة من أي حدث في التقويم مباشرة، وعند اكتمال النشر يتم تحديث التقويم تلقائياً.
صفحة المهام
صفحة المهام هي لوحة مركزية تعرض جميع المهام المسندة لفريق العمل حسب دور كل مستخدم.
أنواع المهام
| النوع | الوصف | يظهر لـ |
| رابط أفلييت | عند قبول طلب مسوق، يتم إنشاء مهمة لإضافة رابط الأفلييت تلقائياً | فريق العمليات / المشرف |
| مرحلة حملة | مهام الكتابة والتصميم المسندة من حملات التسويق | الكاتب / المصمم |
| مراجعة حملة | مراحل الحملات التي تحتاج مراجعة وموافقة | المشرف الأعلى |
| غير مسندة | مراحل حملات لم يتم تعيين شخص مسؤول عنها | حسب نوع المرحلة |
استخدام صفحة المهام
- ١افتح صفحة "المهام" من القائمة الجانبية
- ٢في الأعلى تظهر إحصائيات: إجمالي المهام، المعلقة، المكتملة، المتأخرة
- ٣استخدم التبويبات (الكل/معلقة/مكتملة) والفلاتر لتصفية المهام
- ٤كل مهمة تعرض: العنوان، النوع، الحالة، الأولوية، المسند إليه، التاريخ
- ٥انقر "تذكير" لإرسال رسالة واتساب تذكيرية للشخص المسند إليه المهمة بإكمالها (إذا كان واتساب متصلاً، وإلا يتم إرسال إشعار داخلي فقط) / Click "Remind" to send a WhatsApp reminder to the assigned person to complete the task (falls back to in-app notification if WhatsApp is not connected)
- ٦انقر "إكمال" لتحديد المهمة كمنتهية، أو "إعادة فتح" لإعادتها للعمل
- ٧انقر "الانتقال" للذهاب مباشرة للصفحة المرتبطة بالمهمة
إنشاء المهام التلقائي
- عند قبول طلب مسوق (من صفحة الطلبات أو عبر واتساب)، يتم إنشاء مهمة "إضافة رابط أفلييت" تلقائياً
- عند إضافة رابط الأفلييت وإكمال إعداد المسوق، يتم إكمال المهمة تلقائياً
- مهام الحملات تظهر تلقائياً من مراحل الحملات النشطة
ملاحظة: كل مستخدم يرى فقط المهام المسندة إليه أو المهام المتعلقة بدوره. المشرف الأعلى يرى جميع المهام ويمكنه إسنادها لأعضاء الفريق.
إرسال واتساب جماعي للمسوقين / Bulk WhatsApp to Sellers
من صفحة /admin/commission/tracking يمكنك تحديد عدة مسوقين وإرسال رسالة واتساب واحدة لهم جميعاً مع شريط تقدم مباشر وتأخير عشوائي بين كل رسالة لحماية رقم واتساب من الحظر.
From /admin/commission/tracking you can select multiple sellers and send them one WhatsApp message at once, with a live progress bar and a randomized delay between messages to protect the WhatsApp number from being flagged.
كيفية الاستخدام / How to use
- ١حدّد المسوقين باستخدام مربعات الاختيار (أو حدد الكل) / Select sellers using the row checkboxes (or "Select All")
- ٢من شريط الإجراءات السفلي اضغط "إرسال واتساب للمحددين" / In the bulk actions bar click "Send WhatsApp to Selected"
- ٣اختر قالباً من القائمة (يأتي من قائمة
whatsapp_seller_templates في "القوائم النظامية") أو اكتب رسالتك يدوياً. استخدم {name} لإدراج اسم المسوق تلقائياً / Pick a preset (from whatsapp_seller_templates in System Lists) or type your own. Use {name} to auto-insert the seller name
- ٤اضبط أقل/أقصى تأخير بين الرسائل (الافتراضي ٥–١٢ ثانية) / Set the min/max delay between messages (default 5–12 seconds)
- ٥اضغط "إرسال" — يبقى الإرسال يعمل في الخلفية حتى لو أغلقت النافذة، ويمكنك العودة لرؤية التقدم / Click "Send" — the job keeps running in the background even if you close the modal; reopen it to see progress
يتم تخطي الأرقام الفارغة أو غير الصالحة وعرضها في قسم "الإرسالات الفاشلة" مع زر "إعادة محاولة الفاشلة". كل عملية إرسال تُسجَّل في سجل رسائل واتساب. / Empty or invalid phone numbers are skipped and listed under "Failures" with a "Retry Failed" button. Every send is recorded in the WhatsApp message log.
القسم السادس: التكاملات (Integrations)
نظام التكاملات يتيح ربط لوحة التحكم بخدمات خارجية مثل أنظمة إدارة المستودعات (WMS)، الشحن، والدفع. يدعم النظام حالياً التكامل مع Omniful لإدارة وتنفيذ طلبات العينات.
The Integrations system allows connecting the dashboard with external services such as Warehouse Management Systems (WMS), shipping, and payment. The system currently supports integration with Omniful for managing and fulfilling sample orders.
نطاق العلامة في رسائل واتساب / Brand Domain in WhatsApp Messages
جميع الروابط داخل رسائل واتساب الصادرة (مثل روابط قبول/رفض طلبات العمولة) تستخدم نطاق العلامة https://cottonskin.sa في بيئة الإنتاج بدلاً من نطاق Replit، بحيث يرى العميل دائماً رابطاً موثوقاً يحمل اسم العلامة.
All links inside outbound WhatsApp messages (e.g. commission accept/reject deep links) use the brand domain https://cottonskin.sa in production instead of the underlying Replit deployment domain, so recipients always see a trusted, branded URL.
- ١الإنتاج (Production): يُستخدم
https://cottonskin.sa تلقائياً عند تشغيل النشر / Production automatically uses https://cottonskin.sa
- ٢التطوير (Development): يُستخدم نطاق Replit التطويري كما كان / Development still uses the Replit dev domain
- ٣تجاوز يدوي (Override): يمكن ضبط متغير البيئة
PUBLIC_BASE_URL لاستخدام نطاق آخر / Set PUBLIC_BASE_URL env var to override
الإعداد يتم في ملف واحد (server/url-helpers.ts) لتسهيل التعديل المستقبلي. / Configured in a single file (server/url-helpers.ts) for easy future changes.
٣٧. إدارة التكاملات
صفحة التكاملات (/admin/integrations) هي المكان المركزي لإدارة جميع التكاملات مع الخدمات الخارجية. متاحة فقط للمشرف الأعلى (Super Admin).
The Integrations page (/admin/integrations) is the central place to manage all external service integrations. Available only to Super Admin.
إضافة تكامل جديد / Adding a New Integration
- ١افتح صفحة "التكاملات" من القائمة الجانبية (قسم النظام) / Open "Integrations" from the sidebar (System section)
- ٢انقر زر "إضافة تكامل" / Click "Add Integration" button
- ٣أدخل البيانات التالية / Enter the following details:
| الحقل / Field | الوصف / Description |
| الاسم (Name) | معرّف فريد للتكامل مثل "omniful" / Unique identifier e.g. "omniful" |
| الاسم المعروض (Display Name) | اسم واضح مثل "Omniful WMS" / Human-readable name e.g. "Omniful WMS" |
| النوع (Type) | تصنيف التكامل: مستودع، شحن، أو دفع / Category: warehouse, shipping, or payment |
| الرابط الأساسي (Base URL) | رابط API الخاص بالخدمة / The API base URL of the service |
| مفتاح API (API Key/Token) | رمز المصادقة (Bearer Token) / Authentication token |
| إعدادات إضافية (Config) | حقول إضافية حسب الخدمة (مثل hub_code) / Extra fields specific to the service |
تعديل التكامل / Editing an Integration
- ١انقر زر "تعديل" على بطاقة التكامل / Click "Edit" on the integration card
- ٢عدّل البيانات المطلوبة (الرابط، المفتاح، الإعدادات) / Modify the needed fields (URL, token, config)
- ٣انقر "حفظ" لتطبيق التغييرات / Click "Save" to apply changes
اختبار الاتصال / Test Connection
- ١انقر زر "اختبار الاتصال" على بطاقة التكامل أو في نافذة التعديل / Click "Test Connection" on the card or in the edit modal
- ٢النظام يرسل طلب تجريبي للخدمة الخارجية للتحقق من صحة البيانات / The system sends a test request to verify credentials
- ٣ستظهر رسالة نجاح أو خطأ / A success or error message will appear
تفعيل وتعطيل التكامل / Enable/Disable Integration
استخدم مفتاح التبديل (Toggle) على بطاقة التكامل لتفعيله أو تعطيله. عند التعطيل، لن يتم إرسال الطلبات إلى الخدمة الخارجية.
Use the toggle switch on the integration card to enable or disable it. When disabled, orders will not be sent to the external service.
حذف التكامل / Delete Integration
انقر زر "حذف" على بطاقة التكامل وأكد الحذف. الحذف نهائي ولا يمكن التراجع عنه.
Click "Delete" on the integration card and confirm. Deletion is permanent and cannot be undone.
تنبيه / Warning: تأكد من اختبار الاتصال بنجاح قبل تفعيل أي تكامل. بيانات المصادقة الخاطئة قد تؤدي لفشل إرسال الطلبات.
Make sure to test the connection successfully before enabling any integration. Wrong credentials may cause order sync failures.
٣٧-ب. إعدادات إشعارات واتساب / WhatsApp Notification Settings
في تبويب "الإعدادات" ضمن قسم واتساب، يمكنك التحكم بالإشعارات التلقائية التي ترسل عبر واتساب عند حدوث أحداث معينة.
In the "Settings" tab within WhatsApp section, you can control automatic notifications sent via WhatsApp when certain events occur.
أنواع الإشعارات المتاحة / Available Notification Types
| النوع / Type | الوصف / Description |
| تعيين المرحلة | يرسل عند تعيين شخص لمرحلة في الحملة / Sent when someone is assigned to a campaign stage |
| تقديم المحتوى | يرسل عند تقديم محتوى لمرحلة / Sent when content is submitted for a stage |
| اعتماد المرحلة | يرسل عند اعتماد مرحلة / Sent when a stage is approved |
| رفض المرحلة | يرسل عند رفض مرحلة / Sent when a stage is rejected |
| تنبيه تأخير | يرسل عند اقتراب الموعد النهائي / Sent when deadline is at risk |
| تجاوز الموعد | يرسل عند تجاوز الموعد النهائي / Sent when deadline is overdue |
| محتوى جديد مقدم | يرسل عند تقديم محتوى جديد من المسوقين عبر نموذج التقديم / Sent when new content is submitted by marketers via the submission form |
| طلب انضمام مسوق جديد | يرسل عند تقديم طلب انضمام جديد من المسوقين مع روابط القبول والرفض / Sent when a new seller application is submitted, includes accept/reject links |
| إعداد Zid للمسوق | يرسل عند قبول طلب مسوق لإبلاغ المسؤول بفتح كود مسوق وصفحة في Zid / Sent when a seller application is accepted, notifies the assigned person to open a seller code and page in Zid |
أوضاع المستلمين / Recipient Modes
| الوضع / Mode | الوصف / Description |
| الشخص المعين | يرسل للشخص المعين للمهمة / Sends to the assigned person |
| كل الفريق | يرسل لجميع أعضاء الفريق / Sends to all team members |
| مخصص | يرسل لأشخاص محددين تختارهم / Sends to specific people you select |
| مجموعة واتساب | يرسل الإشعار مباشرة لمجموعة واتساب تختارها من القائمة / Sends notification directly to a WhatsApp group you select from the dropdown |
إرسال الإشعارات لمجموعة واتساب / Sending Notifications to a WhatsApp Group
- ١فعّل الإشعار المطلوب بالنقر على زر التبديل / Enable the notification by clicking the toggle
- ٢اختر "مجموعة واتساب" من قائمة المستلمين / Select "WhatsApp Group" from the recipient dropdown
- ٣اختر المجموعة المطلوبة من القائمة المنسدلة (تأكد من اتصال واتساب أولاً) / Select the desired group from the dropdown (make sure WhatsApp is connected first)
- ٤انقر "حفظ الإعدادات" / Click "Save Settings"
متغيرات قالب إشعار المحتوى الجديد / New Content Submission Template Variables
عند تعديل رسالة إشعار "محتوى جديد مقدم"، تتوفر المتغيرات التالية الخاصة بالمحتوى (بدلاً من متغيرات المهام):
When editing the "New Content Submission" notification message, the following content-specific variables are available (instead of task variables):
| المتغير / Variable | الوصف / Description |
{creator} | اسم المنشئ / Creator name |
{url} | رابط المحتوى / Content URL |
{spark_code} | كود Spark Ad / Spark Ad code |
{platform} | المنصة (تيك توك، انستجرام، إلخ) / Platform (TikTok, Instagram, etc.) |
{views} | عدد المشاهدات / View count |
{likes} | عدد الإعجابات / Like count |
{comments} | عدد التعليقات / Comment count |
ملاحظة: هذا النوع من الإشعارات لا يحتوي على رسالة تصعيد لأنه ليس جزءاً من سير العمل.
Note: This notification type does not have an escalation message since it is not part of a workflow.
متغيرات قالب إشعار طلب انضمام المسوقين / New Seller Application Template Variables
عند تعديل رسالة إشعار "طلب انضمام مسوق جديد"، تتوفر المتغيرات التالية:
When editing the "New Seller Application" notification message, the following variables are available:
| المتغير / Variable | الوصف / Description |
{seller_name} | اسم المسوق / Seller name |
{phone} | رقم الجوال / Phone number |
{platforms} | المنصات (سناب شات، انستجرام، تيك توك) / Platforms (Snapchat, Instagram, TikTok) |
{social_links} | روابط حسابات التواصل الاجتماعي / Social media account links |
{accept_link} | رابط قبول الطلب / Accept application link |
{reject_link} | رابط رفض الطلب / Reject application link |
ملاحظة: هذا النوع من الإشعارات لا يحتوي على رسالة تصعيد. الرسالة تتضمن روابط مباشرة للقبول والرفض.
Note: This notification type does not have an escalation message. The message includes direct links for accepting and rejecting the application.
متغيرات قالب إشعار إعداد Zid / Seller Zid Setup Template Variables
عند تعديل رسالة إشعار "إعداد Zid للمسوق"، تتوفر المتغيرات التالية:
When editing the "Seller Zid Setup" notification message, the following variables are available:
| المتغير / Variable | الوصف / Description |
{seller_name} | اسم المسوق / Seller name |
{phone} | رقم الجوال / Phone number |
{assignee} | اسم المسؤول عن المهمة / Assigned person name |
ملاحظة: يرسل هذا الإشعار تلقائياً عند قبول طلب المسوق، مع إنشاء مهمة في لوحة المهام.
Note: This notification is sent automatically when a seller application is accepted, along with creating a task in the tasks dashboard.
إرسال جماعي عبر واتساب من طلبات المحتوى / Bulk WhatsApp Send from Content Submissions
يمكنك إرسال رسائل واتساب جماعية للمسوقين مباشرة من صفحة طلبات المحتوى. هذه الميزة مفيدة للتواصل مع عدة مسوقين دفعة واحدة بخصوص محتواهم.
You can send bulk WhatsApp messages to marketers directly from the Content Submissions page. This feature is useful for communicating with multiple marketers at once about their content.
- ١حدد طلبات المحتوى بالنقر على مربعات الاختيار بجانب كل طلب (أو استخدم "تحديد الكل" في رأس الجدول) / Select content submissions by clicking checkboxes next to each row (or use "Select All" in the table header)
- ٢انقر "الإجراءات" ثم "إرسال عبر واتساب" / Click "Actions" then "Send thru WhatsApp"
- ٣اختر وجهة الإرسال: "إرسال للعضو" لإرسال رسالة فردية لكل مسوق، أو "إرسال لمجموعة" لإرسال الرسائل لمجموعة واتساب / Choose the target: "Send to Member" to send individual messages to each marketer, or "Send to Group" to send messages to a WhatsApp group
- ٤راجع الرسائل المولّدة تلقائياً من بيانات الطلبات (الاسم، الرابط، كود Spark، المنتج، الحالة) / Review the auto-generated messages built from submission data (creator, URL, Spark code, product, status)
- ٥انقر "إرسال الآن" وتابع شريط التقدم / Click "Send Now" and follow the progress bar
ملاحظة: عند اختيار "إرسال للعضو"، يجب أن يكون للمسوق رقم هاتف مسجل. الطلبات بدون رقم هاتف يتم تجاوزها.
Note: When choosing "Send to Member", the marketer must have a registered phone number. Submissions without a phone number are skipped.
٣٧-ج. قوالب رسائل واتساب / WhatsApp Message Templates
قوالب الرسائل تتيح لك حفظ رسائل جاهزة يمكن استخدامها بسرعة عند الإرسال. مفيدة للرسائل المتكررة مثل تأكيدات الدفع، ترحيب المسوقين الجدد، وتذكيرات المواعيد.
Message Templates let you save pre-written messages that can be quickly used when sending. Useful for recurring messages like payment confirmations, welcome messages for new marketers, and deadline reminders.
الوصول لقوالب الرسائل / Accessing Message Templates
- ١افتح صفحة "التكاملات" من القائمة الجانبية / Open "Integrations" from the sidebar
- ٢انقر على بطاقة واتساب لفتح التفاصيل / Click the WhatsApp card to open details
- ٣انقر على تبويب "القوالب" / Click the "Templates" tab
إنشاء قالب جديد / Creating a New Template
- ١انقر زر "إضافة قالب" / Click "Add Template" button
- ٢أدخل اسم القالب (مثال: تأكيد الدفع) / Enter the template name (e.g. Payment Confirmation)
- ٣اختر التصنيف: مدفوعات، حملات، تذكير، ترحيب، أو عام / Select the category: Payment, Campaign, Reminder, Welcome, or General
- ٤اكتب نص الرسالة. يمكنك استخدام متغيرات مثل {name} و {amount} و {date} / Write the message body. You can use variables like {name}, {amount}, {date}
- ٥انقر "حفظ" / Click "Save"
التصنيفات المتاحة / Available Categories
| التصنيف / Category | الاستخدام / Usage |
| مدفوعات (Payment) | رسائل تأكيد الدفع وتحويل العمولات / Payment confirmations and commission transfers |
| حملات (Campaign) | إشعارات الحملات والمهام الجديدة / Campaign notifications and new assignments |
| تذكير (Reminder) | تذكير بالمواعيد النهائية والمهام / Deadline and task reminders |
| ترحيب (Welcome) | رسائل ترحيب للمسوقين الجدد / Welcome messages for new marketers |
| عام (General) | رسائل عامة متنوعة / General purpose messages |
استخدام القالب / Using a Template
يمكنك استخدام القوالب بطريقتين: / You can use templates in two ways:
الطريقة الأولى: من تبويب القوالب / Method 1: From the Templates tab
- ١في تبويب القوالب، انقر زر "استخدام" بجانب القالب المطلوب / In the Templates tab, click "Use" next to the desired template
- ٢سيتم نسخ نص القالب تلقائياً إلى حقول الإرسال في تبويب "إرسال" / The template text will be automatically copied to the message fields in the "Send" tab
الطريقة الثانية: من تبويب الإرسال مباشرة / Method 2: Directly from the Send tab
- ١في تبويب "إرسال"، استخدم القائمة المنسدلة "اختر قالب" أعلى حقل الرسالة / In the "Send" tab, use the "Select a template" dropdown above the message field
- ٢اختر القالب المطلوب وسيتم تعبئة نص الرسالة تلقائياً / Select the desired template and the message text will auto-fill
في كلتا الحالتين، يمكنك تعديل النص قبل الإرسال وتعبئة المتغيرات حسب الحاجة. / In both cases, you can edit the text before sending and fill in variables as needed.
تعديل وحذف القوالب / Editing and Deleting Templates
استخدم أيقونة القلم لتعديل القالب أو أيقونة السلة لحذفه. يمكنك تصفية القوالب حسب التصنيف باستخدام الأزرار أعلى القائمة.
Use the pencil icon to edit a template or the trash icon to delete it. You can filter templates by category using the buttons above the list.
٣٧-د. قائمة انتظار الرسائل المعلقة / WhatsApp Pending Message Queue
إذا انقطع اتصال واتساب أثناء حدوث إجراء يستدعي إرسال إشعار (مثل إسناد مهمة، قبول طلب مسوق، أو تحديث الحملات)، فلن تُفقد الرسالة. بل تُحفظ تلقائياً في قائمة انتظار خاصة، ويتم إرسالها فور إعادة اتصال واتساب — أو يدوياً من تبويب "في الانتظار".
If WhatsApp disconnects while an event triggers a notification (like task assignment, marketer request approval, or campaign updates), the message is not lost. It is automatically saved to a queue and sent the moment WhatsApp reconnects — or manually from the "Pending" tab.
الوصول لقائمة الانتظار / Accessing the Queue
- ١افتح صفحة "التكاملات" من القائمة الجانبية / Open "Integrations" from the sidebar
- ٢انقر على بطاقة واتساب لفتح التفاصيل / Click the WhatsApp card to open details
- ٣انقر على تبويب "في الانتظار" — ستظهر شارة خضراء بعدد الرسائل المعلقة إن وجدت / Click the "Pending" tab — a green badge shows the count of pending messages if any
الإرسال التلقائي عند إعادة الاتصال / Auto-flush on Reconnect
عند تفعيل خيار "إرسال تلقائي عند إعادة الاتصال" (مفعّل افتراضياً)، يتم إرسال جميع الرسائل المعلقة تلقائياً بمجرد عودة اتصال واتساب. لتعطيل هذا السلوك (مثلاً للمراجعة قبل الإرسال)، أزل علامة الصح من المربع.
When "Auto-flush on reconnect" is enabled (default), all pending messages are sent automatically as soon as WhatsApp reconnects. To disable this behavior (e.g., to review before sending), uncheck the box.
الإجراءات اليدوية / Manual Actions
| الإجراء / Action | الوصف / Description |
| إرسال الكل (Send all) | يحاول إرسال جميع الرسائل المعلقة الآن (يتطلب اتصال واتساب) / Attempts to send all pending messages now (requires WhatsApp to be connected) |
| إعادة المحاولة (Retry) | يحاول إرسال رسالة محددة فوراً / Retries sending a specific message immediately |
| تجاهل (Discard) | يحذف الرسالة من قائمة الانتظار نهائياً (مفيد للرسائل القديمة أو المتقادمة) / Permanently removes the message from the queue (useful for stale or outdated messages) |
| تحديث (Refresh) | إعادة تحميل القائمة لعرض أحدث حالة لكل رسالة / Reloads the list to show the latest status of each message |
حالات الرسائل / Message States
| الحالة / Status | المعنى / Meaning |
| في الانتظار (Pending) | الرسالة في الطابور وستُرسل عند إعادة الاتصال أو عند الإرسال اليدوي / Message is queued and will be sent on reconnect or manual flush |
| جاري الإرسال (Sending) | الرسالة قيد الإرسال حالياً / Message is currently being sent |
| تم الإرسال (Sent) | تم تسليم الرسالة بنجاح / Message was delivered successfully |
| فشل (Failed) | تم استنفاذ ٥ محاولات إرسال بدون نجاح. يمكن إعادة المحاولة يدوياً أو تجاهل الرسالة / 5 send attempts exhausted without success. You can manually retry or discard the message |
ملاحظة: يحتفظ النظام تلقائياً بعدد المحاولات لكل رسالة (الحد الأقصى ٥ محاولات). تحوم على صف الرسالة لرؤية رسالة الخطأ الأخيرة في حال الفشل.
Note: The system automatically tracks attempt count per message (max 5 attempts). Hover over a message row to see the last error message in case of failure.
أمثلة على الرسائل التي يتم حفظها في الطابور / Examples of Messages Saved to Queue
- -إشعارات إسناد المهام للأعضاء / Task assignment notifications to members
- -إشعارات قبول/رفض طلبات المسوقين / Marketer request approval/rejection notifications
- -إشعارات الحملات الجديدة والتذكيرات / New campaign notifications and reminders
- -إشعارات سير العمل التلقائية للمجموعات والأرقام الفردية / Automatic workflow notifications to groups and individual numbers
٣٨. إعداد Omniful
Omniful هو نظام إدارة مستودعات (WMS) يتيح تنفيذ طلبات العينات وتتبع شحنها. لإعداد التكامل:
Omniful is a Warehouse Management System (WMS) that enables fulfilling sample orders and tracking shipments. To set up the integration:
خطوات الإعداد / Setup Steps
- ١أنشئ تكامل جديد بالاسم "omniful" / Create a new integration with name "omniful"
- ٢أدخل الرابط الأساسي (Base URL): / Enter the Base URL:
| البيئة / Environment | الرابط / URL |
| بيئة الاختبار (Staging) | https://api.staging.omniful.com |
| بيئة الإنتاج (Production) | https://prodapi.omniful.com |
- ٣أدخل رمز المصادقة (Bearer Token) في حقل "مفتاح API" - يمكن الحصول عليه من لوحة تحكم Omniful / Enter the Bearer Token in "API Key" field - obtain it from the Omniful dashboard
- ٤أضف الإعدادات الإضافية التالية في حقول Config: / Add the following config fields:
| المفتاح / Key | الوصف / Description | مثال / Example |
hub_code | رمز المستودع في Omniful / Warehouse code in Omniful | HUB-001 |
shipment_type | نوع الشحنة / Shipment type | standard |
currency | العملة / Currency | SAR |
- ٥انقر "اختبار الاتصال" للتأكد من صحة البيانات / Click "Test Connection" to verify
- ٦فعّل التكامل بمفتاح التبديل / Enable the integration with the toggle
نصيحة / Tip: ابدأ ببيئة الاختبار (Staging) للتأكد من عمل التكامل بشكل صحيح قبل الانتقال لبيئة الإنتاج.
Start with the Staging environment to verify the integration works correctly before switching to Production.
٣٩. إرسال الطلبات إلى Omniful
بعد إعداد وتفعيل تكامل Omniful، يمكنك إرسال طلبات العينات لتنفيذها عبر المستودع.
After setting up and enabling the Omniful integration, you can send sample orders for warehouse fulfillment.
إرسال عند إنشاء الطلب / Send During Order Creation
- ١افتح صفحة تتبع العمولات (
/admin/commission) / Open Commission Tracking page
- ٢انقر "إنشاء طلب عينات" / Click "Create Sample Order"
- ٣عند تفعيل Omniful، سيظهر خيار "إرسال إلى Omniful" / When Omniful is active, a "Send to Omniful" toggle appears
- ٤فعّل الخيار لإرسال الطلب تلقائياً بعد الإنشاء / Enable it to auto-send the order after creation
إرسال من صفحة الطلبات / Send from Orders Page
- ١افتح صفحة طلبات العينات (
/admin/orders) / Open Sample Orders page
- ٢الطلبات التي لم تُرسل بعد تظهر بزر "إرسال إلى Omniful" / Unsynced orders show a "Send to Omniful" button
- ٣انقر الزر لإرسال الطلب / Click the button to send the order
- ٤عند النجاح، يتغير الشارة إلى "تم الإرسال" (أخضر) / On success, the badge changes to "Synced" (green)
- ٥عند الفشل، يظهر شارة "فشل" (أحمر) مع زر "إعادة المحاولة" / On failure, a "Failed" badge (red) appears with a "Retry" button
شارات حالة Omniful / Omniful Status Badges
| الشارة / Badge | اللون / Color | المعنى / Meaning |
| لم يُرسل (Not Sent) | رمادي / Gray | الطلب لم يُرسل إلى Omniful بعد / Order not yet sent to Omniful |
| تم الإرسال (Synced) | أخضر / Green | تم إرسال الطلب بنجاح / Order successfully sent |
| فشل (Failed) | أحمر / Red | فشل الإرسال - يمكن إعادة المحاولة / Send failed - can retry |
| ملغي (Cancelled) | برتقالي / Orange | تم إلغاء الطلب في Omniful / Order cancelled in Omniful |
نصيحة / Tip: عند فشل إرسال الطلب، تحقق من رسالة الخطأ وتأكد من صحة بيانات التكامل (الرابط، المفتاح، رمز المستودع) ثم حاول مرة أخرى.
When order sync fails, check the error message, verify integration credentials (URL, token, hub code), then retry.
٤٠. التحقق من حالة الطلب في Omniful
يمكنك التحقق من الحالة الحقيقية لأي طلب مُرسل إلى Omniful في أي وقت.
You can check the real-time status of any order sent to Omniful at any time.
خطوات التحقق / How to Check Status
- ١افتح صفحة طلبات العينات (
/admin/orders) / Open Sample Orders page
- ٢ابحث عن الطلب المراد التحقق منه (يجب أن يكون مُرسلاً بنجاح) / Find the order (must be synced)
- ٣انقر زر "التحقق من الحالة" / Click "Check Status" button
- ٤النظام يتصل بـ Omniful ويجلب الحالة الحالية / The system contacts Omniful and fetches the current status
- ٥يتم تحديث الشارة والحالة المحلية تلقائياً / The badge and local status update automatically
حالات Omniful الشائعة / Common Omniful Statuses
| الحالة / Status | المعنى / Meaning |
| pending | قيد الانتظار - الطلب مستلم ولم يبدأ التجهيز / Pending - order received, processing not started |
| processing | قيد التجهيز - يتم تحضير الطلب في المستودع / Processing - order being prepared in warehouse |
| packed | تم التغليف - الطلب جاهز للشحن / Packed - order ready for shipping |
| shipped | تم الشحن - الطلب في الطريق / Shipped - order in transit |
| delivered | تم التسليم - الطلب وصل للمسوق / Delivered - order received by seller |
| cancelled | ملغي - تم إلغاء الطلب / Cancelled - order was cancelled |
ملاحظة / Note: التحقق من الحالة يستعلم مباشرة من خوادم Omniful. يُنصح بعدم التحقق بشكل متكرر جداً (الحد الأقصى: ٦٠ طلب في الدقيقة).
Status check queries Omniful servers directly. Avoid checking too frequently (rate limit: 60 requests/minute).
٤١. إلغاء الطلبات في Omniful
يمكنك إلغاء طلب مُرسل إلى Omniful إذا لم يصل لمرحلة التغليف (packed) بعد.
You can cancel an order sent to Omniful as long as it has not reached the "packed" stage yet.
خطوات الإلغاء / How to Cancel
- ١افتح صفحة طلبات العينات (
/admin/orders) / Open Sample Orders page
- ٢ابحث عن الطلب المُرسل المراد إلغاؤه / Find the synced order to cancel
- ٣انقر زر "إلغاء في Omniful" / Click "Cancel in Omniful" button
- ٤ستظهر نافذة تطلب سبب الإلغاء - أدخل السبب / A modal will ask for the cancellation reason - enter it
- ٥انقر "تأكيد الإلغاء" / Click "Confirm Cancel"
- ٦عند النجاح، يتم تحديث حالة الطلب محلياً وفي Omniful إلى "ملغي" / On success, both local and Omniful status update to "cancelled"
تنبيه / Warning: لا يمكن إلغاء الطلب في الحالات التالية:
Order cannot be cancelled in the following cases:
- الطلب تم تغليفه بالفعل (packed) / Order is already packed
- الطلب تم شحنه (shipped) / Order is already shipped
- الطلب تم تسليمه (delivered) / Order is already delivered
- الطلب ملغي بالفعل (cancelled) / Order is already cancelled
نصيحة / Tip: سبب الإلغاء مطلوب من Omniful. اكتب سبباً واضحاً مثل "طلب المسوق الإلغاء" أو "خطأ في المنتجات المحددة".
A cancellation reason is required by Omniful. Write a clear reason like "Seller requested cancellation" or "Wrong products selected".
مكتبة الوسائط (Media Library)
مكتبة الوسائط هي نظام مركزي لإدارة جميع الملفات المرئية (صور وفيديو) المستخدمة في التسويق. تدعم المكتبة الاستلام من مصادر متعددة: رفع داخلي من الفريق، رفع خارجي من المؤثرين والشركاء، وتصاميم الحملات المعتمدة تلقائياً.
The Media Library is a centralized system for managing all visual files (photos and videos) used in marketing. It supports receiving from multiple sources: internal team uploads, external uploads from influencers and partners, and automatically approved campaign designs.
صفحة الرفع الخارجي / External Upload Page
صفحة عامة يمكن مشاركة رابطها مع المؤثرين والشركاء لرفع الوسائط مباشرة إلى فريق التسويق. متاحة عبر النطاق affiliate.cottonskin.sa أو المسار /media-upload.
A public page whose link can be shared with influencers and partners to upload media directly to the marketing team. Available via affiliate.cottonskin.sa domain or /media-upload path.
كيفية الاستخدام / How to Use
- ١انسخ رابط صفحة الرفع من صفحة مكتبة الوسائط في لوحة التحكم / Copy the upload page link from the Media Library page in the admin panel
- ٢شارك الرابط مع المؤثر أو الشريك / Share the link with the influencer or partner
- ٣المستخدم الخارجي يدخل اسمه وبريده الإلكتروني ويرفع الملفات / External user enters their name and email and uploads files
- ٤الملفات تظهر تلقائياً في مكتبة الوسائط بعلامة "خارجي" / Files appear automatically in the Media Library with an "External" label
لوحة مكتبة الوسائط / Media Library Dashboard
صفحة إدارية شاملة (/admin/media-library) لعرض وتنظيم جميع الوسائط. متاحة من قسم "التسويق" في القائمة الجانبية.
A comprehensive admin page (/admin/media-library) to view and organize all media. Accessible from the "Marketing" section in the sidebar.
المميزات الرئيسية / Key Features
- ١عرض شبكي/قائمة لجميع الوسائط مع صور مصغرة / Grid/list view of all media with thumbnails
- ٢بحث بالاسم والعلامات والمُرسل / Search by name, tags, and submitter
- ٣تصفية حسب المصدر (داخلي/خارجي/حملة) ونوع الملف (صورة/فيديو) / Filter by source (internal/external/campaign) and file type (image/video)
- ٤عرض معلومات كل ملف: الاسم، الحجم، النوع، المُرسل، تاريخ الرفع / View file info: name, size, type, submitter, upload date
- ٥إضافة وتعديل العلامات (Tags) لتنظيم المحتوى / Add and edit tags to organize content
- ٦رفع وسائط داخلية مباشرة من لوحة التحكم / Upload internal media directly from the admin panel
- ٧تصاميم الحملات المعتمدة تُضاف تلقائياً / Approved campaign designs are added automatically
نصيحة / Tip: عند اعتماد تصميم حملة، يتم نسخ ملفات التصميم تلقائياً إلى مكتبة الوسائط مع ربطها بالحملة الأصلية. يمكنك العثور عليها بتصفية المصدر حسب "حملة".
When a campaign design is approved, the design files are automatically copied to the Media Library and linked to the original campaign. You can find them by filtering source by "Campaign".
دليل الهوية البصرية (Brand Guidelines)
صفحة مركزية لإدارة إرشادات الهوية البصرية للعلامة التجارية. تتيح تنظيم المحتوى حسب التصنيفات مثل الشعارات، الألوان، الخطوط، الصور، القوالب، النبرة والأسلوب، والتغليف.
A centralized page for managing brand identity guidelines. Organize content by categories like logos, colors, typography, imagery, templates, tone & voice, and packaging.
الوصول إلى الصفحة / Accessing the Page
متاحة من قسم "التسويق" في القائمة الجانبية تحت اسم "دليل الهوية البصرية" (/admin/brand-guidelines).
Available from the "Marketing" section in the sidebar under "Brand Guidelines".
إضافة إرشاد جديد / Adding a New Guideline
- ١انقر على زر "إضافة إرشاد" في أعلى الصفحة / Click "Add Guideline" at the top of the page
- ٢اختر التصنيف المناسب (شعارات، ألوان، خطوط...) / Select the appropriate category
- ٣أدخل العنوان بالعربية و/أو الإنجليزية / Enter the title in Arabic and/or English
- ٤أضف الوصف والمحتوى التفصيلي (اختياري) / Add description and detailed content (optional)
- ٥ارفق ملفاً (PDF، PNG، JPG، SVG) بحد أقصى 5 ميغابايت (اختياري) / Attach a file up to 5MB (optional)
- ٦حدد ترتيب العرض واحفظ / Set the sort order and save
التصنيفات المتاحة / Available Categories
| التصنيف / Category | الوصف / Description |
| الشعارات / Logos | ملفات الشعار بأشكالها المختلفة وقواعد استخدامها |
| الألوان / Colors | لوحة ألوان العلامة التجارية مع الأكواد |
| الخطوط / Typography | الخطوط المعتمدة وأحجامها وقواعد استخدامها |
| الصور / Imagery | إرشادات التصوير وأنماط الصور |
| القوالب / Templates | قوالب التصميم الجاهزة للاستخدام |
| النبرة والأسلوب / Tone & Voice | إرشادات الكتابة والأسلوب اللغوي |
| التغليف / Packaging | إرشادات تصميم التغليف والمنتجات |
| عام / General | إرشادات عامة أخرى |
المميزات الرئيسية / Key Features
- ١عرض البطاقات مع ألوان مميزة لكل تصنيف / Card view with distinct colors per category
- ٢تصفية حسب التصنيف / Filter by category
- ٣دعم ثنائي اللغة (عربي/إنجليزي) لجميع الحقول / Bilingual support for all fields
- ٤رفع مرفقات (PDF، صور، SVG) / File attachments (PDF, images, SVG)
- ٥تعديل وحذف الإرشادات / Edit and delete guidelines
- ٦تحميل الملفات المرفقة مباشرة / Direct file download
نصيحة / Tip: استخدم حقل "ترتيب العرض" لتحديد أولوية ظهور الإرشادات. الإرشادات ذات الرقم الأقل تظهر أولاً.
Use the "Sort Order" field to control display priority. Lower numbers appear first.
القسم الثامن: مركز الإشعارات / Activity Notifications
مركز الإشعارات يوفر تنبيهات فورية للأنشطة المهمة في لوحة التحكم. يظهر جرس الإشعارات في رأس كل صفحة ويتم تحديثه تلقائياً.
The Activity Notifications Center provides real-time alerts for important admin panel activities. The bell icon appears in every page header and updates automatically.
٤٥. جرس الإشعارات / Notification Bell
يظهر جرس الإشعارات في الزاوية العلوية من كل صفحة في لوحة التحكم:
- ١انقر على الجرس لفتح قائمة الإشعارات المنسدلة / Click the bell to open the notification dropdown
- ٢الشارة الحمراء تعرض عدد الإشعارات غير المقروءة / Red badge shows unread count
- ٣يتم تحديث العدد تلقائياً كل ٦٠ ثانية / Count updates automatically every 60 seconds
- ٤انقر على إشعار للانتقال للصفحة المعنية / Click a notification to navigate to the relevant page
٤٦. أنواع الإشعارات / Notification Types
| النوع / Type | الوصف / Description |
| طلب مسوق جديد | يظهر عند تقديم طلب انضمام جديد لبرنامج التسويق / New marketer application submitted |
| مراجعة طلب | يظهر عند قبول أو رفض طلب مسوق / Application accepted or rejected |
| محتوى جديد | يظهر عند إرسال محتوى جديد (Spark Ad / شراكة مدفوعة) / New content submission |
| مطالبة تعويض | يظهر عند إنشاء مطالبة تعويض جديدة / New compensation claim created |
٤٧. إدارة الإشعارات / Managing Notifications
الإجراءات المتاحة / Available Actions
- ١قراءة الكل: انقر "قراءة الكل" في رأس القائمة لتعليم جميع الإشعارات كمقروءة / Click "Mark all read" to mark all as read
- ٢حذف إشعار: مرر المؤشر فوق الإشعار وانقر زر الحذف (X) / Hover over a notification and click the delete button
- ٣مسح الكل: انقر "مسح الكل" في أسفل القائمة لحذف جميع الإشعارات / Click "Clear all" to delete all notifications
نصيحة / Tip: الإشعارات غير المقروءة تظهر بخلفية مميزة ونقطة ملونة. بمجرد النقر عليها يتم تعليمها كمقروءة تلقائياً.
Unread notifications appear with a highlighted background and colored dot. Clicking marks them as read automatically.
القسم التاسع: إدارة عملاء B2B / B2B Client Management
نظام إدارة عملاء الجملة (B2B) يتيح لك إدارة العلاقات التجارية مع عملاء الشركات والموزعين. يشمل النظام إرساليات البضائع، المصالحات، الفواتير، المدفوعات، الملفات، وتقارير شاملة.
٤٨. نظرة عامة على نظام B2B / B2B System Overview
للوصول إلى نظام B2B، افتح صفحة "إدارة عملاء B2B" من القائمة الرئيسية في لوحة التحكم.
- ١تظهر القائمة الرئيسية مع بطاقات الإحصائيات المجمعة في الأعلى / The main list shows aggregated stats cards at the top
- ٢استخدم الفلاتر للبحث حسب النوع، الحالة، نوع الدفع، أو المدينة / Use filters to search by type, status, payment, or city
- ٣انقر على اسم العميل لفتح تفاصيله مع جميع التبويبات / Click a client name to open details with all tabs
نصيحة: بطاقات الإحصائيات تعرض: إجمالي العملاء، النشطين، إجمالي الإرسال، الفوترة، المدفوع، المستحقات، الفواتير المتأخرة، وإجمالي المبيعات.
٤٩. إضافة وتعديل عميل / Add & Edit Client
- ١انقر "إضافة عميل" لفتح نموذج الإنشاء / Click "Add Client" to open the creation form
- ٢أدخل اسم المنشأة (عربي وإنجليزي)، نوع العميل، ونوع الدفع / Enter business name (AR & EN), client type, and payment type
- ٣أضف بيانات السجل التجاري، الرقم الضريبي، والعنوان / Add CR number, VAT number, and address details
- ٤حدد الحد الائتماني للعميل إذا كان الدفع آجلاً / Set credit limit if payment type is credit
- ٥انقر "حفظ" لإنشاء العميل. يتم إنشاء كود تلقائي / Click "Save" to create. A code is auto-generated
تنبيه: تأكد من إدخال اسم المنشأة بالعربي ونوع العميل ونوع الدفع - هذه حقول مطلوبة.
٥٠. لوحة النظرة العامة / Overview Dashboard
عند فتح تفاصيل أي عميل، تظهر لوحة النظرة العامة كتبويب افتراضي تعرض مؤشرات الأداء المالية الرئيسية:
- ١إجمالي المرسل: القيمة الإجمالية لجميع الإرساليات المرسلة لهذا العميل / Total value of all dispatches sent
- ٢إجمالي المبيعات: القيمة الإجمالية للمبيعات المسجلة في المصالحات / Total sales recorded in reconciliations
- ٣إجمالي الفوترة: مجموع قيم جميع الفواتير الصادرة / Total value of all issued invoices
- ٤إجمالي المدفوع: مجموع المبالغ المحصلة من العميل / Total payments collected from client
- ٥الرصيد المستحق: الفرق بين الفوترة والمدفوع (يظهر باللون الأحمر) / Outstanding balance shown in red
- ٦الحد الائتماني والمستخدم: يظهر تجاوز الحد باللون الأحمر / Credit limit and usage, red if exceeded
- ٧المخزون المتبقي: الكمية المرسلة ناقص المباع والمرتجع والتالف / Stock = Sent - Sold - Returned - Damaged
- ٨الفواتير المتأخرة: عدد الفواتير التي تجاوزت تاريخ الاستحقاق / Count of overdue invoices
نصيحة: راجع لوحة النظرة العامة بانتظام لمتابعة الوضع المالي لكل عميل واكتشاف المشاكل مبكراً.
٥١. الإرساليات / Dispatches
تبويب الإرساليات يعرض جميع شحنات البضائع المرسلة لعميل الجملة. عند فتح التبويب ستجد:
- ١ملخص الإرساليات: إجمالي الكمية المرسلة (Total Qty Sent) وإجمالي القيمة (Total Value) في أعلى التبويب / Summary stats at the top
- ٢زر إضافة إرسالية: زر "إضافة إرسالية" (Add Dispatch) لإنشاء إرسالية جديدة / Button to create a new dispatch
- ٣جدول الإرساليات: يعرض رقم الإرسالية (Dispatch ID)، التاريخ، الحالة، عدد البنود، والإجمالي / Table with dispatch ID, date, status, items count, and total
- ٤أزرار الإجراءات: تعديل أو حذف كل إرسالية / Edit or delete each dispatch
٥١أ. إنشاء إرسالية وبنودها / Creating a Dispatch & Line Items
لإنشاء إرسالية جديدة اتبع الخطوات التالية:
- ١انقر على زر "إضافة إرسالية" (Add Dispatch) في أعلى تبويب الإرساليات / Click "Add Dispatch" at the top
- ٢ستفتح نافذة الإرسالية وتحتوي على الحقول التالية: / The dispatch modal opens with these fields:
| الحقل / Field | الوصف / Description | إلزامي |
| تاريخ الإرسالية (Dispatch Date) | تاريخ إرسال البضاعة - يتم تعبئته تلقائياً بتاريخ اليوم / Auto-filled with today's date | نعم |
| تاريخ التسليم (Delivery Date) | التاريخ المتوقع أو الفعلي للتسليم / Expected or actual delivery date | لا |
| حالة التسليم (Delivery Status) | قيد الانتظار (Pending) / في الطريق (In Transit) / تم التسليم (Delivered) | نعم |
| نسبة الخصم (Discount %) | خصم عام على كامل الإرسالية / Overall dispatch discount | لا |
| إثبات التسليم (Proof of Delivery) | رفع صورة كدليل على تسليم البضاعة / Upload image as delivery proof | لا |
| ملاحظات (Notes) | ملاحظات إضافية على الإرسالية / Additional notes | لا |
بنود الإرسالية (Line Items): كل إرسالية تتكون من بند واحد أو أكثر:
| الحقل / Field | الوصف / Description | إلزامي |
| اسم المنتج (Product Name) | اسم المنتج المرسل / Product being dispatched | نعم |
| رمز المنتج (SKU) | الرمز التعريفي للمنتج / Product identifier | لا |
| الكمية (Quantity) | عدد الوحدات المرسلة / Number of units | نعم |
| سعر الوحدة (Unit Price) | سعر الوحدة الواحدة بالريال / Unit price in SAR | نعم |
| نسبة خصم البند (Discount %) | خصم على مستوى البند / Per-item discount | لا |
- ٣انقر "إضافة بند" (Add Item) لإضافة منتج جديد / Click "Add Item" to add another product
- ٤انقر "إزالة" (Remove) بجانب أي بند لحذفه / Click "Remove" to delete an item
- ٥انقر "حفظ" (Save) لإنشاء الإرسالية / Click "Save" to create the dispatch
نصيحة: يمكنك تعديل إرسالية موجودة بالنقر على زر التعديل في عمود الإجراءات. ستفتح نفس النافذة مع البيانات المحفوظة مسبقاً.
You can edit an existing dispatch by clicking the edit button in the actions column.
٥١ب. تحذير الحد الائتماني وإثبات التسليم / Credit Limit Warning & Proof of Delivery
تحذير الحد الائتماني (Credit Limit Warning): إذا كان نوع الدفع للعميل ائتمانياً (Credit) وكان لديه حد ائتماني محدد، سيظهر تحذير عند محاولة حفظ الإرسالية إذا كان المبلغ الإجمالي (المستحق الحالي + قيمة الإرسالية الجديدة) يتجاوز الحد الائتماني. التحذير يوضح:
المستحق الحالي (Outstanding) + الإرسالية الجديدة (New Dispatch) = الإجمالي الجديد (New Total) مقابل الحد الائتماني (Credit Limit).
المشرف الأعلى (Super Admin) فقط يمكنه تجاوز هذا الحد بالنقر على زر "تجاوز" (Override). المستخدمون العاديون لا يمكنهم تجاوز الحد.
إثبات التسليم (Proof of Delivery):
- ١عند إنشاء أو تعديل الإرسالية، انقر على حقل "إثبات التسليم" (Proof of Delivery) / Click the POD field in the dispatch form
- ٢اختر ملف صورة من جهازك (PNG، JPG، وغيرها) / Select an image file from your device
- ٣سيتم رفع الصورة وحفظها مع الإرسالية عند النقر على "حفظ" / The image is saved with the dispatch on save
نصيحة: يُفضل التقاط صورة واضحة لإيصال التسليم أو توقيع المستلم كدليل رسمي على استلام البضاعة.
Take a clear photo of the delivery receipt or recipient signature as official proof.
٥٢. المصالحة / التسوية (Reconciliation)
تبويب التسويات يُستخدم لمطابقة حركة المنتجات مع العميل خلال فترة زمنية محددة. يوفر رؤية شاملة لما تم بيعه وإرجاعه وتلفه من البضاعة المرسلة، ويحسب المبلغ المستحق صافياً.
The Reconciliation tab tracks product movement with the client over a specific period. It provides a comprehensive view of sold, returned, and damaged goods, and calculates the net amount due.
عند فتح التبويب ستجد:
- ١عنوان "فترات التسوية" (Reconciliation Periods): قائمة بجميع فترات التسوية / List of all reconciliation periods
- ٢زر "فترة جديدة" (New Period): لإنشاء فترة تسوية جديدة / Create a new reconciliation period
- ٣جدول التسويات: يعرض رمز التسوية (Code)، الفترة (Period)، الحالة (Status)، إجمالي المبيعات (Gross Sales)، والصافي المستحق (Net Due) / Table with code, period, status, gross sales, and net due
- ٤أزرار الإجراءات: عرض التفاصيل أو حذف التسوية (الحذف متاح فقط في حالة المسودة - Draft) / View details or delete (delete only available in Draft status)
٥٢أ. إنشاء فترة تسوية وتعديل البنود / Creating a Period & Editing Items
لإنشاء فترة تسوية جديدة:
- ١انقر على زر "فترة جديدة" (New Period) / Click "New Period"
- ٢حدد تاريخ بداية الفترة (Period Start) وتاريخ نهايتها (Period End) / Set period start and end dates
- ٣أضف ملاحظات إن وجدت (اختياري) / Add notes if needed (optional)
- ٤انقر "إنشاء" (Create) / Click "Create"
سيتم إنشاء التسوية بحالة "مسودة" (Draft) وتعبئة بنودها تلقائياً من الإرساليات المرسلة خلال الفترة المحددة. كل بند يحتوي على:
The reconciliation is created in "Draft" status with items auto-populated from dispatches within the period. Each item contains:
| العمود / Column | الوصف / Description |
| المنتج (Product) | اسم المنتج / Product name |
| رمز المنتج (SKU) | الرمز التعريفي / Product identifier |
| الرصيد الافتتاحي (Opening) | الكمية المتوفرة في بداية الفترة / Quantity available at period start |
| المرسل (Sent) | الكمية المرسلة خلال الفترة / Quantity sent during the period |
| المباع (Sold) | الكمية التي باعها العميل - قابل للتعديل في المسودة / Quantity sold - editable in Draft |
| المرتجع (Returned) | الكمية المرتجعة - قابل للتعديل في المسودة / Quantity returned - editable in Draft |
| التالف (Damaged) | الكمية التالفة - قابل للتعديل في المسودة / Quantity damaged - editable in Draft |
| الرصيد الختامي (Closing) | الرصيد المتبقي = الافتتاحي + المرسل - المباع - المرتجع - التالف / Remaining = Opening + Sent - Sold - Returned - Damaged |
| سعر البيع (Price) | سعر البيع للوحدة - قابل للتعديل في المسودة / Unit selling price - editable in Draft |
| إجمالي المبيعات (Gross) | المباع × سعر البيع / Sold × Selling Price |
| نسبة العمولة (Comm %) | نسبة العمولة المتفق عليها - قابل للتعديل في المسودة / Agreed commission rate - editable in Draft |
| الصافي المستحق (Net Due) | المبلغ المستحق بعد خصم العمولة / Amount due after commission deduction |
تعديل البنود (Editing Items): عندما تكون التسوية في حالة "مسودة" (Draft)، يمكن تعديل الحقول التالية مباشرة في الجدول:
- ١الكمية المباعة (Sold)، المرتجعة (Returned)، التالفة (Damaged) / Edit Sold, Returned, and Damaged quantities
- ٢سعر البيع (Price) ونسبة العمولة (Comm %) / Edit selling price and commission percentage
- ٣انقر "حفظ التغييرات" (Save Changes) في أسفل الجدول لحفظ التعديلات / Click "Save Changes" at the bottom to save
تنبيه: بعد تغيير حالة التسوية من "مسودة" إلى أي حالة أخرى، تصبح الحقول للقراءة فقط ولا يمكن تعديلها إلا بإرجاع التسوية للمسودة.
After changing status from Draft, fields become read-only. Return to Draft to re-enable editing.
٥٢ب. مسار حالات التسوية / Reconciliation Status Workflow
تمر التسوية بخمس حالات متتالية:
| الحالة / Status | الوصف / Description | الإجراءات المتاحة / Available Actions |
| مسودة (Draft) | الحالة الأولية - يمكن تعديل البنود وحذف التسوية / Initial state - items editable, can delete | تقديم (Submit) / حذف (Delete) |
| مُقدَّمة (Submitted) | تم تقديم التسوية للمراجعة والاعتماد / Sent for review and approval | اعتماد (Approve) - للمشرف الأعلى فقط / إرجاع للمسودة (Back to Draft) |
| معتمدة (Approved) | تم اعتماد التسوية من المشرف الأعلى / Approved by Super Admin | تحويل لفاتورة (Mark Invoiced) / إرجاع للمسودة (Back to Draft) |
| مفوترة (Invoiced) | تم إصدار فاتورة بناءً على التسوية / Invoice issued based on reconciliation | إغلاق (Close) |
| مغلقة (Closed) | تم إنهاء التسوية بالكامل / Period fully finalized | لا توجد إجراءات / No actions |
مسار سير العمل / Workflow Path
- ١مسودة ← مُقدَّمة: بعد إدخال جميع البنود والتأكد من صحتها، انقر "تقديم" (Submit) / After entering all items, click "Submit"
- ٢مُقدَّمة ← معتمدة: المشرف الأعلى (Super Admin) فقط يمكنه اعتماد التسوية بالنقر على "اعتماد" (Approve) / Only Super Admin can approve
- ٣معتمدة ← مفوترة: بعد إصدار الفاتورة، انقر "تحويل لفاتورة" (Mark Invoiced) / After issuing the invoice, click "Mark Invoiced"
- ٤مفوترة ← مغلقة: بعد استلام المبلغ أو إتمام العملية، انقر "إغلاق" (Close) / After collection or completion, click "Close"
نصيحة: يمكن إرجاع التسوية من حالة "مُقدَّمة" أو "معتمدة" إلى "مسودة" بالنقر على "إرجاع للمسودة" (Back to Draft). هذا مفيد عند اكتشاف أخطاء في الأرقام أو الحاجة لتعديل البنود.
You can return a Submitted or Approved reconciliation to Draft by clicking "Back to Draft" to correct errors.
تنبيه: اعتماد التسوية (Approve) متاح فقط للمشرف الأعلى (Super Admin). المستخدمون العاديون يمكنهم تقديم التسوية وتنفيذ باقي الخطوات، لكن لا يمكنهم اعتمادها.
Only Super Admin can approve reconciliations. Regular users can submit and perform other steps but cannot approve.
٥٣. الملفات / Files
تبويب الملفات يتيح رفع وإدارة المستندات المرتبطة بالعميل:
- ١انقر "رفع ملف" لفتح نافذة الرفع / Click "Upload File" to open the upload dialog
- ٢اختر الملف من جهازك وحدد التصنيف (عقد، فاتورة، تقرير، أخرى) / Select file and category (contract, invoice, report, other)
- ٣انقر "حفظ" لرفع الملف. يظهر في الجدول مع اسمه وحجمه وتاريخ الرفع / Click "Save" to upload. Appears in table with name, size, and date
- ٤لحذف ملف، انقر زر "حذف" بجانبه وأكد الحذف / To delete, click "Delete" and confirm
نصيحة: استخدم التصنيفات لتنظيم الملفات. يتم تسجيل كل عملية رفع وحذف تلقائياً في سجل النشاط.
٥٤. سجل النشاط / Activity Log
سجل النشاط يعرض جميع العمليات التي تمت على حساب العميل بترتيب زمني:
- ١يعرض الإجراء الذي تم (إنشاء، تعديل، حذف، رفع ملف...) / Shows the action performed (create, update, delete, upload...)
- ٢اسم المستخدم الذي قام بالعملية / Name of the user who performed the action
- ٣نوع الكيان المتأثر (عميل، إرسالية، مصالحة، ملف...) / Entity type affected (client, dispatch, reconciliation, file...)
- ٤تفاصيل إضافية عن العملية / Additional details about the operation
- ٥التاريخ والوقت الدقيق للعملية / Exact date and time of the operation
نصيحة: سجل النشاط مفيد لمراجعة التغييرات والتدقيق. جميع العمليات تُسجل تلقائياً ولا يمكن حذفها.
٥٥. التقارير / Reports
صفحة التقارير متاحة من زر "التقارير" في القائمة الرئيسية وتوفر 5 أنواع من التقارير مع إمكانية التصدير:
- ١الملخص المالي: يعرض لكل عميل: الحد الائتماني، إجمالي الإرسال، الفوترة، المدفوع، والرصيد / Financial Summary: credit limit, dispatched, invoiced, paid, balance per client
- ٢أعمار المديونيات: يصنف المستحقات حسب الفترة: حالي، 30 يوم، 60 يوم، 90 يوم، +90 يوم / Outstanding Aging: categorizes by period: current, 30d, 60d, 90d, 90+d
- ٣المخزون عند العميل: يعرض الكميات المرسلة والمباعة والمرتجعة والتالفة والمتبقية / Stock at Client: sent, sold, returned, damaged, remaining quantities
- ٤المبيعات والعمولات: يعرض إجمالي المبيعات، العمولة، الصافي، ومتوسط نسبة العمولة / Sales vs Commission: gross sales, commission, net due, avg commission %
- ٥تحصيل المدفوعات: يعرض المبالغ المحصلة وعدد الدفعات وآخر دفعة / Payment Collection: collected amounts, payment count, last payment
لتصدير أي تقرير كملف CSV:
- ١اختر نوع التقرير من القائمة المنسدلة / Select report type from dropdown
- ٢انتظر تحميل البيانات في الجدول / Wait for data to load in the table
- ٣انقر "تصدير CSV" لتنزيل الملف / Click "Export CSV" to download the file
نصيحة: ملفات CSV المصدرة تدعم الترميز العربي (UTF-8 with BOM) ويمكن فتحها مباشرة في Excel.
٥٦. إحصائيات القائمة الرئيسية / Main List Statistics
في أعلى قائمة العملاء تظهر بطاقات إحصائية مجمعة محدثة تلقائياً:
- ١إجمالي العملاء: عدد جميع العملاء المسجلين / Total registered clients
- ٢العملاء النشطين: عدد العملاء بحالة "نشط" / Count of active clients
- ٣إجمالي الإرسال: مجموع قيم جميع الإرساليات / Total dispatched value across all clients
- ٤إجمالي الفوترة: مجموع قيم جميع الفواتير / Total invoiced value
- ٥إجمالي المدفوع: مجموع جميع المدفوعات المحصلة / Total payments collected
- ٦المستحقات: الفرق بين الفوترة والمدفوع / Outstanding: invoiced minus paid
- ٧الفواتير المتأخرة: عدد الفواتير التي تجاوزت تاريخ الاستحقاق / Overdue invoice count
- ٨إجمالي المبيعات: مجموع المبيعات من جميع المصالحات / Total gross sales from all reconciliations
تنبيه: الإحصائيات تُحدَّث عند كل تحميل للقائمة. قد يستغرق التحديث لحظة مع وجود عدد كبير من العملاء.
١. نظرة عامة / Overview
نظام بطاقات الولاء يتيح للمتجر إصدار بطاقات ولاء رقمية لكل عميل. كل بطاقة تحتوي على عداد طوابع، وعند اكتمال العدد المطلوب يحصل العميل على مكافأة. يمكن مشاركة البطاقة مع العميل عبر رابط خاص، وإضافتها إلى Apple Wallet (بعد ضبط الشهادات).
The loyalty card system allows the store to issue digital loyalty cards per customer. Each card has a stamp counter; when the required count is reached the customer earns a reward. Cards are shared via a unique link and can be added to Apple Wallet once certificates are configured.
٢. إنشاء بطاقة جديدة / Creating a New Card
- ١اذهب إلى
/admin/loyalty-cards من القائمة الجانبية (قسم العمليات) / Navigate to /admin/loyalty-cards
- ٢انقر على "بطاقة جديدة" / Click "New Card"
- ٣أدخل اسم العميل ورقم هاتفه (اختياري) والطوابع المطلوبة والمستوى / Enter customer name, phone (optional), stamps required, tier
- ٤سيتم توليد رقم البطاقة تلقائياً (CS-XXXXXX) / Card number is auto-generated (CS-XXXXXX)
٣. إضافة طابع من لوحة الإدارة / Stamping via Admin Panel
- ١اعثر على البطاقة في القائمة / Find the card in the list
- ٢انقر على زر "إضافة طابع" (+) أو افتح تفاصيل البطاقة / Click Add Stamp (+) or open card details
- ٣أضف ملاحظة اختيارية وأكد الإضافة / Add optional note and confirm
٤. صفحة الكاشير / Cashier Page
صفحة الكاشير متاحة على /loyalty/cashier — محمية بـ PIN. الكاشير يدخل الـ PIN، يبحث بالرقم أو الهاتف، ثم يضغط "إضافة طابع".
The cashier page at /loyalty/cashier is PIN-protected. Set the CASHIER_PIN environment variable. Cashier enters PIN → searches card by number or phone → adds stamp.
٥. التسجيل الذاتي للعميل / Customer Self-Enrollment
صفحة التسجيل العامة على loyalcard.cottonskin.sa (أو /loyalty/join). يرى العميل أولاً شاشة ترحيب "هل أنت جاهز لاستلام مكافأتك؟"، وعند الضغط على الزر يظهر نموذج يطلب الاسم ورقم الجوال. يتم التحقق من رقم الجوال السعودي (بصيغة 05XXXXXXXX، ويقبل أيضاً +966/00966)، ثم تُنشأ البطاقة وتُحفظ بيانات العميل تلقائياً وتظهر في لوحة الإدارة (الاسم، الجوال، تاريخ الإنشاء، عدد الطوابع). بعد الإنشاء يُوجَّه العميل إلى بطاقته مع زر الإضافة إلى Apple Wallet.
The public enrollment page is at loyalcard.cottonskin.sa (or /loyalty/join). The customer first sees a welcome screen ("Are you ready to redeem your reward?"); tapping the button reveals a form asking for name and phone number. The Saudi mobile number is validated (canonical 05XXXXXXXX, also accepts +966/00966). The card is then created and the customer details are stored and visible in the admin panel (name, phone, creation date, stamp count). After creation the customer is redirected to their card with the Add to Apple Wallet button. Returning customers (with a saved card on the device) skip the form and go straight to their card.
٦. رابط بطاقة العميل / Customer Card Link
كل بطاقة لها رابط عام فريد: /loyalty/<shareToken>. العميل يرى طوابعه، رمز QR، ورابط تنزيل Apple Wallet. يمكن نسخ الرابط من تفاصيل البطاقة في لوحة الإدارة.
Each card has a unique public link: /loyalty/<shareToken>. The customer sees their stamps, QR code, and Apple Wallet download link.
٧. Apple Wallet / Apple Wallet
لتفعيل Apple Wallet يجب ضبط المتغيرات البيئية التالية:
- ١
PASSKIT_TEAM_ID — Apple Developer Team ID
- ٢
PASSKIT_PASS_TYPE_ID — Pass Type Identifier (e.g. pass.com.cottonskin.loyalty)
- ٣
PASSKIT_WWDR_PEM — Apple WWDR G4 certificate (PEM)
- ٤
PASSKIT_SIGNER_CERT_PEM — Pass signing certificate (PEM)
- ٥
PASSKIT_SIGNER_KEY_PEM — Pass signing private key (PEM)
- ٦
PASSKIT_SIGNER_KEY_PASSPHRASE — (اختياري) كلمة مرور المفتاح / optional key passphrase
تنبيه: Apple Wallet يتطلب شهادات مطور Apple حقيقية. بدون الشهادات يعمل النظام بالكامل لكن زر التنزيل سيكون معطلاً.
٨. الإشعارات المباشرة / Live Pass Updates
عند إضافة طابع جديد يُرسل إشعار تلقائي عبر Apple APNS لتحديث البطاقة في Wallet فوراً — بشرط أن يكون العميل قد أضاف البطاقة وفعّل التحديثات.
When a stamp is added, an APNS push is sent automatically to update the pass in Apple Wallet in real-time, provided the customer has registered their device.
٩. مستويات البطاقة / Card Tiers
- برونزيBronze — المستوى الافتراضي / Default tier — copper color
- فضيSilver — اللون الفضي / Silver tier
- ذهبيGold — اللون الذهبي / Gold tier