دليل استخدام لوحة التحكم

طلبات المسوقين و تتبع العمولات

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)
٥٦. إحصائيات القائمة الرئيسية

القسم الأول: طلبات المسوقين

صفحة طلبات المسوقين هي المكان الذي تتم فيه مراجعة طلبات الانضمام لبرنامج التسويق بالعمولة. يمكنك من خلالها قبول أو رفض الطلبات ومراجعة معلومات المتقدمين.

١. نظرة عامة على الصفحة

عند فتح صفحة "طلبات المسوقين" من القائمة الجانبية، ستجد:

٢. الإحصائيات

في أعلى الصفحة تظهر بطاقات إحصائية تعرض:

البطاقةالوصف
إجمالي الطلباتالعدد الكلي لجميع الطلبات المستلمة
قيد الانتظارالطلبات التي لم تتم مراجعتها بعد (باللون الأصفر)
مقبولةالطلبات التي تم قبولها وبانتظار إضافة رابط الأفلييت (باللون الأخضر)
مكتملتم إضافة رابط الأفلييت ونقل المسوق لصفحة التتبع (باللون الأزرق)
مرفوضةالطلبات التي تم رفضها (باللون الأحمر)

٣. البحث والتصفية

يمكنك البحث والتصفية باستخدام:

نصيحة: يمكنك الترتيب حسب أي عمود بالنقر على رأس العمود (التاريخ، الاسم، المنصة، الجوال، الحالة). انقر مرة أخرى لعكس الترتيب.

٤. عرض تفاصيل الطلب

انقر على زر "عرض" في عمود الإجراءات لفتح نافذة تفاصيل الطلب. تعرض النافذة:

٥. قبول ورفض الطلبات وإضافة رابط الأفلييت

مسار العمل الجديد للطلبات:

مسار سير العمل

  • ١المتقدم يرسل الطلب → الحالة: قيد الانتظار
  • ٢المشرف يراجع ويقبل أو يرفض الطلب
  • ٣إذا تم القبول → الحالة: مقبول (لا يتم نقل المسوق للتتبع تلقائياً)
  • ٤الموظف يضيف رابط الأفلييت من خلال زر "إضافة رابط الأفلييت" أو من نافذة التفاصيل
  • ٥عند الحفظ → الحالة: مكتمل ويتم نقل المسوق تلقائياً إلى صفحة التتبع

طرق مراجعة الطلبات

  • ١من نافذة التفاصيل: انقر "عرض" ← راجع المعلومات ← انقر "قبول" أو "رفض"
  • ٢من الجدول مباشرة: في عمود الإجراءات، انقر على "قبول" أو "رفض"

إضافة رابط الأفلييت (بعد القبول)

  • ١بعد قبول الطلب، سيظهر زر "إضافة رابط الأفلييت" (أزرق) في عمود الإجراءات
  • ٢انقر على الزر أو افتح نافذة التفاصيل
  • ٣أدخل رابط الأفلييت في الحقل المخصص
  • ٤انقر "حفظ وإكمال الإعداد"
  • ٥سيتم نقل المسوق تلقائياً إلى صفحة تتبع العمولات
الحالةاللونالمعنى
قيد الانتظارأصفرلم تتم المراجعة
مقبولأخضرتم القبول - بانتظار إضافة رابط الأفلييت
مكتملأزرقتم إضافة الرابط ونقل المسوق للتتبع
مرفوضأحمرتم رفض الطلب

إرسال إشعار واتساب للطلبات المعلقة

يمكنك إرسال إشعار واتساب للفريق لمراجعة طلب مسوق معلق. الإشعار يتضمن بيانات المتقدم وروابط قبول/رفض مباشرة.

طريقة الإرسال

  • ١في صف الطلب المعلق، انقر على زر واتساب الأخضر بجانب أزرار القبول والرفض
  • ٢سيتم إرسال رسالة واتساب تلقائية لجميع أعضاء الفريق تحتوي على:
  • -اسم المتقدم ورقم الجوال
  • -المنصات وروابط التواصل الاجتماعي
  • -رابط قبول ورابط رفض (يمكن النقر عليهما مباشرة من واتساب)
ملاحظة: عند النقر على رابط القبول أو الرفض من واتساب، يتم تنفيذ الإجراء فوراً. إذا قام شخص آخر بالنقر على الرابط الثاني بعد ذلك، ستظهر له رسالة توضح أن الطلب تمت مراجعته مسبقاً مع توقيت الإجراء.

٦. العمليات الجماعية

لتنفيذ عمليات على عدة طلبات في وقت واحد:

تنبيه: زر "حذف المحدد" يظهر فقط للمشرف الأعلى (Super Admin). الحذف نهائي ولا يمكن التراجع عنه.

٧. التصدير والاستيراد

من قائمة "الإجراءات" في أعلى الجدول:

تصدير الطلبات

تصدير جميع الطلبات بصيغة JSON. يتم تحميل ملف يحتوي على كامل بيانات الطلبات لحفظها أو نقلها.

استيراد الطلبات

استيراد طلبات من ملف JSON محفوظ مسبقاً. مفيد لنقل البيانات أو استعادة نسخة احتياطية.

القسم الثاني: تتبع العمولات

صفحة تتبع العمولات هي المركز الرئيسي لإدارة المسوقين المقبولين، تتبع مبيعاتهم، عمولاتهم، ومدفوعاتهم. تتيح لك هذه الصفحة إدارة كاملة لجميع جوانب برنامج التسويق بالعمولة.

٨. نظرة عامة على الصفحة

تتكون صفحة تتبع العمولات من:

عرض البطاقات

في عرض البطاقات، يظهر كل مسوق في بطاقة منفصلة تحتوي على: الاسم، رقم الهاتف مع زر واتساب، نسبة العمولة، وشبكة مالية تعرض (المبيعات، العمولة، المدفوع، المستحق). انقر على أي بطاقة لعرض التفاصيل الكاملة.

٩. إحصائيات العمولات

البطاقةالوصف
المسوقين النشطينعدد المسوقين الذين حالتهم نشطة
إجمالي المبيعاتمجموع مبيعات جميع المسوقين بالريال السعودي
إجمالي العمولات المكتسبةمجموع العمولات المحسوبة (باللون الأخضر)
إجمالي المدفوعاتالمبلغ الذي تم دفعه للمسوقين
إجمالي المستحقاتالرصيد المتبقي المستحق للمسوقين (باللون الأحمر)

١٠. إضافة مسوق جديد

لإضافة مسوق جديد يدوياً:

استيراد من الطلبات المقبولة

بدلاً من الإضافة اليدوية، يمكنك استيراد المسوقين تلقائياً من صفحة طلبات المسوقين عبر: الإجراءات > "استيراد من الطلبات". سيتم استيراد الطلبات المكتملة فقط (التي تم إضافة رابط الأفلييت لها) مع تحديث جميع المعلومات للمسوقين الحاليين. الطلبات المقبولة التي لم يُضاف لها رابط أفلييت بعد سيتم تخطيها.

ملاحظة: عند إضافة رابط الأفلييت لمسوق من صفحة الطلبات، يتم نقله تلقائياً إلى صفحة التتبع بدون الحاجة للاستيراد اليدوي.

١١. تفاصيل المسوق

انقر على اسم أي مسوق أو زر "عرض" لفتح نافذة التفاصيل. تحتوي النافذة على ثلاث تبويبات:

تبويب المبيعات

يعرض قائمة بجميع مبيعات المسوق مع:

  • -تاريخ البيع (أو فترة البيع إذا كانت مدة)
  • -مبلغ البيع ونسبة العمولة ومبلغ العمولة المحسوب
  • -ملاحظات إضافية إن وجدت
  • -زر حذف لكل عملية بيع

تبويب المدفوعات

يعرض سجل المدفوعات مع:

  • -تاريخ الدفع ونوعه (عمولة أو مكافأة)
  • -طريقة الدفع ورقم المرجع
  • -ملاحظات وزر حذف لكل دفعة

تبويب الإعدادات

يتيح تعديل جميع بيانات المسوق (التفاصيل في القسم ١٣).

في أعلى النافذة تظهر ملخص سريع: نسبة العمولة، إجمالي المبيعات، العمولات المكتسبة، المدفوع، والرصيد المتبقي.

١٢. إضافة المبيعات والمدفوعات

إضافة عملية بيع

  • ١افتح تفاصيل المسوق وانتقل لتبويب "المبيعات"
  • ٢أدخل مبلغ البيع بالريال
  • ٣حدد تاريخ البيع (أو فترة بتاريخ بداية ونهاية)
  • ٤أضف ملاحظات إن أردت
  • ٥انقر "إضافة بيع" - ستحسب العمولة تلقائياً بناء على نسبة المسوق

إضافة دفعة

  • ١افتح تفاصيل المسوق وانتقل لتبويب "المدفوعات"
  • ٢أدخل مبلغ الدفعة
  • ٣حدد تاريخ الدفع
  • ٤اختر نوع الدفعة: عمولة أو مكافأة
  • ٥أدخل طريقة الدفع ورقم المرجع (اختياري)
  • ٦انقر "إضافة دفعة"

١٣. إعدادات المسوق

في تبويب "الإعدادات" داخل نافذة تفاصيل المسوق، يمكنك تعديل:

الحقلالوصف
نسبة العمولةالنسبة المئوية للعمولة على كل بيع
رقم الآيبان (IBAN)رقم الحساب البنكي الدولي
رقم الحسابرقم الحساب البنكي
اسم البنكاختيار البنك من قائمة البنوك السعودية
اسم المستفيدالاسم المسجل في الحساب البنكي
رقم الجوالرقم الجوال مع زر WhatsApp للتواصل المباشر
الدولةدولة الإقامة - دول مجلس التعاون الخليجي (السعودية، الإمارات، الكويت، البحرين، قطر، عُمان). تتغير المناطق والمدن تلقائياً حسب الدولة المختارة
المنطقة / الإمارة / المحافظةيتغير المسمى حسب الدولة: منطقة (السعودية)، إمارة (الإمارات)، محافظة (باقي الدول). تتحدث القائمة تلقائياً عند تغيير الدولة
المدينةالمدينة (تتحدث تلقائياً حسب المنطقة/الإمارة/المحافظة المختارة)
الحياسم الحي
الشارعاسم الشارع
العنوان الوطنيالعنوان الوطني - إلزامي للسعودية فقط (4 أحرف + 4 أرقام مثل RBPU8787)، اختياري لباقي الدول
كود الخصمكود الخصم المقترح من المسوق لمتابعيه (اختياري - خاضع للتوفر وقد يتم تعديله)
ملاحظاتملاحظات إضافية عن المسوق

روابط المسوق

يمكنك إضافة روابط حسابات التواصل الاجتماعي ورابط الأفلييت. انقر "+ إضافة رابط" واختر المنصة (TikTok, Instagram, Twitter, Snapchat, YouTube, أخرى) ثم أدخل الرابط.

زر WhatsApp

بجانب حقل رقم الجوال يوجد زر WhatsApp أخضر. بالنقر عليه يتم فتح محادثة WhatsApp مباشرة مع المسوق.

تعطيل / إعادة تفعيل المسوق

يمكنك تعطيل مسوق (بدون حذف بياناته) عبر زر "تعطيل". المسوق المعطل يظهر بشفافية أقل ويمكن إعادة تفعيله لاحقاً.

١٤. التصفية المتقدمة

للبحث المتقدم بين المسوقين، استخدم نظام التصفية المتعدد الشروط:

مثال: لعرض المسوقين الذين لديهم رصيد مستحق أكبر من 100 ريال: اختر العمود "الرصيد" > المعامل "أكبر من" > القيمة "100"

١٥. استيراد مدفوعات PDF

يمكنك استيراد مدفوعات من كشوف حسابات بنكية بصيغة PDF:

نصيحة: تأكد من إدخال أرقام الآيبان (IBAN) لكل مسوق في إعداداته لتسهيل المطابقة التلقائية عند استيراد كشوف الحسابات البنكية.

١٦. تصدير الأرصدة المستحقة (PDF)

لتصدير تقرير بالأرصدة المستحقة لجميع المسوقين:

ملاحظة: التقرير يدعم النص العربي بالكامل ويمكن طباعته أو مشاركته مباشرة.

تصدير واستيراد بيانات المسوقين (JSON)

يمكنك تصدير واستيراد جميع بيانات المسوقين (معلومات المسوق، المبيعات، المدفوعات، والروابط) كملف JSON للنسخ الاحتياطي أو نقل البيانات:

تصدير بيانات المسوقين

استيراد بيانات المسوقين

ملاحظة: عند الاستيراد، يتم مطابقة المسوقين عبر رقم الهاتف. إذا وُجد مسوق بنفس الرقم يتم تحديث بياناته، وإلا يتم إنشاء مسوق جديد. المبيعات والمدفوعات والروابط المكررة يتم تخطيها تلقائياً.

حذف المسوق نهائياً (المشرف الأعلى فقط)

يمكن للمشرف الأعلى حذف مسوق بالكامل مع جميع سجلاته:

تحذير: هذه العملية نهائية ولا يمكن التراجع عنها. تأكد من تصدير بيانات المسوق قبل الحذف إذا كنت تحتاجها.

١٧. تسوية الأرصدة

لتسوية جميع الأرصدة المستحقة دفعة واحدة (متاح للمشرف الأعلى فقط):

تنبيه: هذه العملية لا يمكن التراجع عنها تلقائياً. تأكد من إتمام التحويلات البنكية الفعلية قبل تنفيذ التسوية.

١٨. إدارة الأعمدة

يمكنك التحكم في الأعمدة المعروضة في جدول المسوقين:

١٩. العمليات الجماعية

يمكنك تنفيذ عمليات على عدة مسوقين في وقت واحد:

تعديل نسبة العمولة

انقر "تعديل العمولة" لتغيير نسبة العمولة لجميع المسوقين المحددين إلى نسبة موحدة.

إنشاء طلب عينات

انقر "إنشاء طلب" لإرسال طلب عينات لجميع المسوقين المحددين (التفاصيل في القسم ٢٠).

تصدير إلى Excel

انقر "تصدير إلى Excel" من شريط العمليات الجماعية لتنزيل ملف .xlsx يحتوي فقط على المسوقين المحددين حالياً، مع الأعمدة التالية: الاسم، الهاتف، البريد الإلكتروني، المدينة، نسبة العمولة، إجمالي المبيعات، إجمالي العمولة، إجمالي المدفوع، الرصيد المستحق، الحالة (نشط/غير نشط)، وتاريخ الإضافة.

يكون اسم الملف على شكل selected-sellers-YYYY-MM-DD.xlsx ويفتح مباشرة في Excel أو Numbers أو Google Sheets. يظهر الزر فقط عند تحديد مسوق واحد على الأقل.

٢٠. إنشاء طلب عينات

يمكنك إنشاء طلب عينات منتجات للمسوقين بطريقتين:

الطريقة الأولى: من صفحة طلبات العينات

الطريقة الثانية: من صفحة تتبع العمولات

ملاحظة: سيتم إنشاء طلب منفصل لكل مسوق محدد، ويمكنك متابعة الطلبات من صفحة "طلبات العينات". يمكنك أيضاً إنشاء طلب فردي لمسوق محدد من صفحة تفاصيل المسوق في تتبع العمولات.

حذف طلب عينات

يمكنك حذف طلبات العينات بطريقتين:

تنبيه: حذف الطلب نهائي ولا يمكن التراجع عنه.

٢١. تعويضات العملاء (الطلبات المتضررة)

صفحة تعويضات العملاء تتيح تتبع وإدارة مطالبات التعويض للطلبات المتضررة. يمكنك توثيق المشكلات وتصنيفها حسب السبب وتتبع قيمة التعويضات وتصدير التقارير الشهرية.

٢٢. لوحة الإحصائيات

في أعلى الصفحة تظهر إحصائيات سريعة:

٢٣. إنشاء مطالبة تعويض جديدة

لإنشاء مطالبة تعويض:

٢٤. حالات المطالبة

تمر المطالبة بعدة حالات:

ملاحظة: تغيير الحالة إلى "معتمد" أو "مغلق" يتطلب صلاحيات الموافقة أو صلاحيات المشرف الأعلى.

٢٥. التصفية والبحث

يمكنك تصفية المطالبات باستخدام:

٢٦. التقارير الشهرية

يمكنك تصدير تقارير شهرية بصيغة CSV:

ملاحظة: يتم تحديد نطاق التاريخ تلقائياً للشهر السابق. يمكنك تعديل الفترة يدوياً باستخدام حقول التاريخ في شريط التصفية.

٢٧. تصدير تقرير PDF

يمكنك تصدير تقرير PDF شامل بجميع المطالبات مع الصور لسبب محدد وفترة زمنية معينة:

محتوى التقرير: يتضمن ملخص إجمالي المطالبات والتعويضات، وجدول تفصيلي بكل مطالبة يشمل: رقم الطلب، المنتج، الشكوى، الملاحظات، قيمة التعويض، أصناف التعويض، التاريخ، والصور المرفقة.

٢٨. إدارة المستخدمين

صفحة إدارة المستخدمين متاحة فقط للمشرفين الأعلى (Super Admin) وتتيح إضافة وتعديل وحذف مستخدمي لوحة التحكم.

٢٩. إضافة مستخدم جديد

لإضافة مستخدم جديد:

ملاحظة: كلمة المرور تُنشأ تلقائياً ولا يمكن عرضها بعد إغلاق النافذة. احرص على نسخها فوراً.

٣٠. تعديل وحذف المستخدمين

يمكنك التحكم في المستخدمين عبر الأزرار في جدول المستخدمين:

ملاحظة: عند تعديل مستخدم، يمكنك تغيير كلمة المرور بإدخال كلمة مرور جديدة. اتركها فارغة للإبقاء على كلمة المرور الحالية.

٣١. سجل التغييرات (Audit Log)

صفحة سجل التغييرات متاحة فقط للمشرفين الأعلى (Super Admin) وتتيح تتبع جميع التعديلات التي تمت على البيانات في النظام. يمكنك من خلالها معرفة من قام بتغيير أي معلومة ومتى وما هي التفاصيل القديمة والجديدة.

ما الذي يتم تتبعه؟

يتم تسجيل جميع العمليات التالية تلقائياً:

استخدام صفحة سجل التغييرات

عند فتح الصفحة ستجد:

عرض تفاصيل التغيير

عند النقر على زر "تفاصيل" لأي سجل:

تصدير السجلات

يمكنك تصدير السجلات المفلترة إلى ملف CSV عبر زر "تصدير CSV" في أعلى الصفحة. الملف يتضمن جميع البيانات المعروضة حسب الفلاتر المطبقة.

ملاحظة: يتم تحديث السجلات تلقائياً كل ٣٠ ثانية. جميع التغييرات تُسجل في الوقت الفعلي ولا يمكن تعديلها أو حذفها.

٣٢. شجرة الروابط (Linktree)

ميزة شجرة الروابط تتيح لك إنشاء صفحة عامة (link-in-bio) يمكن للزوار الوصول إليها عبر رابط /links. تتحكم فيها كمسؤول من صفحة /admin/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)

أداة لحساب الإيرادات المتوقعة بناءً على المنتجات المتوفرة وأسعارها وكمياتها. البيانات تُحفظ محلياً في المتصفح.

مميزات الصفحة

إنشاء البكجات

يمكنك تحويل أي صنف إلى بكج عن طريق تغيير تصنيفه إلى "بكج" في القائمة المنسدلة. عند ذلك يظهر زر "اختيار المنتجات" لتحديد المنتجات المكونة للبكج.

مثال: لديك منتج أ (كمية 10) ومنتج ب (كمية 10). إذا غيّرت صنف معين إلى "بكج" واخترت منتج أ ومنتج ب كمكونات وحددت كمية البكج = 7، تصبح الكمية المتاحة لكل منتج = 3 فقط.
حساب الضريبة: يتم إدخال السعر شاملاً ضريبة القيمة المضافة (15%). الحاسبة تعرض الإيرادات بدون الضريبة (السعر ÷ 1.15 × الكمية) وشامل الضريبة (السعر × الكمية) تلقائياً.
ملاحظة: بيانات حاسبة الإيرادات والبكجات تُحفظ محلياً في متصفحك فقط ولا تُرسل إلى الخادم. إذا قمت بتسجيل الدخول من متصفح آخر، ستبدأ بالبيانات الأصلية.

الهوية البصرية والتصميم

تم تحديث تصميم جميع صفحات لوحة التحكم ليتوافق مع دليل الهوية البصرية لـ Cotton Skin:

٣٦. قوائم النظام (System Lists)

صفحة قوائم النظام متاحة فقط للمشرفين الأعلى (Super Admin) وتتيح إدارة جميع القوائم المنسدلة المستخدمة في النظام من مكان واحد مركزي. بدلاً من تعديل الكود لإضافة منتج جديد أو سبب مشكلة، يمكن إدارتها مباشرة من هذه الصفحة.

الوصول إلى صفحة قوائم النظام (/admin/system-lists)

القوائم المتوفرة

إدارة القوائم

تهيئة القوائم الافتراضية

عند فتح الصفحة لأول مرة وعدم وجود قوائم، يظهر زر "تهيئة القوائم الافتراضية" الذي يضيف تلقائياً قائمة المنتجات (٣٣ منتج) وقائمة أسباب المشاكل (٧ أسباب) بالقيم الافتراضية.

ملاحظة مهمة: أي تغيير في قوائم النظام ينعكس فوراً على جميع الصفحات التي تستخدم هذه القوائم (مثل صفحة التعويضات). تأكد من عدم حذف عناصر مستخدمة حالياً في بيانات موجودة.

محرك سير عمل الحملات

نظام متكامل لإدارة حملات التسويق من الفكرة حتى النشر. يربط بين تقويم التسويق وسير العمل الآلي مع تتبع الأداء والتصعيدات.

إنشاء حملة جديدة

مراحل سير العمل

الأدوار والصلاحيات

نظام المراجعة

إدارة المراحل

نظام OLA والتصعيدات

طرق العرض

ملخص المهام في الصفحة الرئيسية

ملاحظة: الحملات مرتبطة بتقويم التسويق. يمكن إنشاء حملة من أي حدث في التقويم مباشرة، وعند اكتمال النشر يتم تحديث التقويم تلقائياً.

صفحة المهام

صفحة المهام هي لوحة مركزية تعرض جميع المهام المسندة لفريق العمل حسب دور كل مستخدم.

أنواع المهام

النوعالوصفيظهر لـ
رابط أفلييتعند قبول طلب مسوق، يتم إنشاء مهمة لإضافة رابط الأفلييت تلقائياًفريق العمليات / المشرف
مرحلة حملةمهام الكتابة والتصميم المسندة من حملات التسويقالكاتب / المصمم
مراجعة حملةمراحل الحملات التي تحتاج مراجعة وموافقةالمشرف الأعلى
غير مسندةمراحل حملات لم يتم تعيين شخص مسؤول عنهاحسب نوع المرحلة

استخدام صفحة المهام

إنشاء المهام التلقائي

ملاحظة: كل مستخدم يرى فقط المهام المسندة إليه أو المهام المتعلقة بدوره. المشرف الأعلى يرى جميع المهام ويمكنه إسنادها لأعضاء الفريق.

إرسال واتساب جماعي للمسوقين / 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 OmnifulHUB-001
shipment_typeنوع الشحنة / Shipment typestandard
currencyالعملة / CurrencySAR
  • ٥انقر "اختبار الاتصال" للتأكد من صحة البيانات / 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

التصنيفات المتاحة / 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

يظهر جرس الإشعارات في الزاوية العلوية من كل صفحة في لوحة التحكم:

٤٦. أنواع الإشعارات / 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
تنبيه: الإحصائيات تُحدَّث عند كل تحميل للقائمة. قد يستغرق التحديث لحظة مع وجود عدد كبير من العملاء.

بطاقات الولاء / Loyalty Cards

١. نظرة عامة / 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