ZERVIXO

Zervixo ERP

دليل المستخدم

user_guide.subtitle

35 شرح متاح

دليل المستخدم

إنشاء الشركة وأول دخول خطوات التسجيل الكامل من صفحة إنشاء حساب حتى لوحة التحكم الأولى. +

الهدف من هذه الصفحة

إنشاء هوية مركزية (Central Identity) جديدة، إنشاء أول شركة (Tenant) مرتبطة بها، وتفعيل فترة تجربة تشمل كل الموديولات تلقائيًا.

من يستطيع الوصول

أي شخص جديد على Zervixo — لا يحتاج أي صلاحية مسبقة، فهو أول من ينشئ حساب الشركة ويصبح Company Admin تلقائيًا.

الصلاحية المطلوبة

لا يوجد (صفحة عامة قبل تسجيل الدخول)

شرح الحقول

  • اسم الشركة: يتحول تلقائيًا لاسم فرعي (subdomain) فريد لشركتك، مثال: yourcompany.zervixo.com
  • الاسم الكامل: اسمك الشخصي كصاحب الحساب الأول
  • البريد الإلكتروني: يُستخدم لتسجيل الدخول ولإرسال رابط التحقق
  • كلمة المرور: يجب أن تحقق حد أدنى من التعقيد

شرح الأزرار

  • إنشاء الحساب: ينشئ الهوية المركزية والشركة معًا في عملية واحدة، ويسجّلك دخول تلقائيًا

حالات السجل

  • غير موثّق البريد (قبل الضغط على رابط التفعيل)
  • موثّق البريد (بعد الضغط على رابط التفعيل المُرسل)

دورة العمل

  1. افتح صفحة التسجيل العامة.
  2. أدخل اسم الشركة، اسمك، بريدك الإلكتروني، وكلمة مرور قوية.
  3. اضغط "إنشاء الحساب".
  4. سيتم تسجيل دخولك تلقائيًا وتحويلك للوحة التحكم.
  5. تحقق من بريدك الإلكتروني واضغط رابط التفعيل — بريد الترحيب لا يُرسل إلا بعد هذه الخطوة.

سيناريو عملي

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

صورة من النظام

لوحة التحكم مباشرة بعد إنشاء الشركة وأول دخول.
لوحة التحكم مباشرة بعد إنشاء الشركة وأول دخول.

أخطاء محتملة وحلولها

  • لم يصلني بريد التفعيل — تحقق من مجلد البريد غير الهام (Spam)، أو استخدم خيار "إعادة إرسال رابط التحقق" من صفحة الحساب.
  • اسم الشركة مستخدم من قبل — اختر اسمًا مختلفًا — كل شركة تحتاج نطاقًا فرعيًا فريدًا.
ضبط العملة الأساسية لشركتك اختيار العملة التي ستظهر بها كل الفواتير والتقارير والقيود المحاسبية. +

الهدف من هذه الصفحة

تحديد عملة الأساس (Base Currency) التي تُبنى عليها كل القيود المحاسبية والتقارير المالية، بصرف النظر عن عملة أي عملية بيع فردية.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • العملة الأساسية: قائمة اختيار من العملات المتاحة (مثال: SAR، USD، EUR) — تُستخدم في كل مكان لا يوجد فيه تحديد صريح لعملة أخرى

شرح الأزرار

  • حفظ: يحفظ التغيير فورًا — لا توجد خطوة تأكيد إضافية حاليًا حتى لو كانت هناك معاملات سابقة (راجع قسم الأخطاء أدناه)

دورة العمل

  1. من القائمة الجانبية، افتح "إعدادات الشركة".
  2. اختر العملة الأساسية من القائمة.
  3. اضغط "حفظ".

سيناريو عملي

شركة تتعامل بشكل أساسي بالدولار الأمريكي تغيّر العملة الأساسية من الريال السعودي (الافتراضي) إلى USD قبل تسجيل أول فاتورة — فتظهر كل الفواتير والتقارير اللاحقة بالدولار.

صورة من النظام

شاشة بيانات الشركة تُظهر حقل العملة الأساسية.
شاشة بيانات الشركة تُظهر حقل العملة الأساسية.

أخطاء محتملة وحلولها

  • غيّرت العملة بعد تسجيل فواتير — النظام حاليًا لا يمنع ذلك ولا يحذّرك — غيّر العملة الأساسية قبل بدء أي عمليات مالية حقيقية لتفادي تعارض التقارير القديمة مع الجديدة (نقطة ضعف حقيقية موثقة في مراجعة النظام).
إنشاء فرع ومستودع الفروع والمستودعات هي الأساس الذي تُبنى عليه كل عمليات المبيعات والمشتريات والمخزون. +

الهدف من هذه الصفحة

الفرع يمثل موقع عمل فعلي للشركة (مثال: فرع الرياض)، والمستودع يمثل مكان تخزين مادي يمكن ربطه بفرع — كل حركة مخزون تحدث داخل مستودع محدد.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • اسم الفرع: اسم واضح للموقع، يظهر على الفواتير الصادرة منه
  • اسم المستودع: اسم واضح للمخزن الفعلي
  • الفرع المرتبط: أي فرع يتبع له هذا المستودع

شرح الأزرار

  • إنشاء جديد: يفتح نموذج إضافة فرع/مستودع جديد

دورة العمل

  1. من القائمة الجانبية، افتح "الفروع" وأنشئ فرعك الأول.
  2. من قائمة المخزون، افتح "المستودعات" وأنشئ مستودعًا واربطه بالفرع.

سيناريو عملي

شركة توزيع لها فرعان: الرياض وجدة. لكل فرع مستودعه الخاص — عند تسجيل عملية بيع من فرع جدة، يُخصم المخزون تلقائيًا من مستودع جدة فقط، وليس من مستودع الرياض.

صورة من النظام

قائمة الفروع بعد إضافة الفرع الرئيسي.
قائمة الفروع بعد إضافة الفرع الرئيسي.

أخطاء محتملة وحلولها

  • لا أرى المستودع عند إنشاء فاتورة — تأكد أن المستودع تم إنشاؤه فعليًا وأن حسابك له صلاحية الوصول لفرعه.
إضافة مستخدم جديد لشركتك دعوة زميل جديد بالبريد الإلكتروني، مع تحديد دوره وصلاحياته من نفس النموذج. +

الهدف من هذه الصفحة

المسار الوحيد الفعلي لإضافة مستخدم — يُنشئ دعوة زمنية آمنة، لا عضوية فعلية قبل القبول. لو البريد له حساب Zervixo موجود بالفعل، يتم ربطه بشركتك من غير إنشاء هوية مكررة.

من يستطيع الوصول

Company Admin، أو أي مستخدم مُنح صلاحية invite company users صراحةً.

الصلاحية المطلوبة

manage users أو invite company users أو assign company roles

شرح الحقول

  • الاسم الكامل: اسم المدعو
  • البريد الإلكتروني: يحدد هل هو مستخدم جديد كليًا أم صاحب حساب Zervixo موجود بالفعل
  • الهاتف: اختياري
  • اللغة والمنطقة الزمنية: تُطبّق على حساب المستخدم الجديد بعد القبول
  • الفروع: الفروع التي سيصل إليها
  • الأدوار: دور واحد أو أكثر يُمنح فور القبول
  • صلاحيات إضافية: صلاحيات فردية فوق الدور المختار
  • إرسال بريد الدعوة: مفعّل افتراضيًا؛ عطّله لو تريد نسخ رابط الدعوة يدويًا بدلًا من الإرسال
  • تاريخ انتهاء الدعوة: من يوم واحد حتى 30 يومًا
  • رسالة شخصية: اختيارية، تُضاف داخل بريد الدعوة

شرح الأزرار

  • دعوة زميل: يفتح نموذج الدعوة الكامل

حالات السجل

  • قيد الانتظار (Pending) — لم يُقبل بعد
  • مقبولة (Accepted)
  • منتهية (Expired)
  • ملغاة (Revoked)
  • فشل الإرسال (Failed delivery)

دورة العمل

  1. من صفحة "المستخدمون"، اضغط "دعوة زميل".
  2. املأ الاسم، البريد، الدور، والصلاحيات الإضافية إن وُجدت.
  3. اضغط إرسال — إن كان البريد جديدًا، يصله بريد دعوة؛ إن كان له حساب موجود، تظهر له الدعوة داخل تطبيقه ليقبلها بنفسه.
  4. بعد القبول، يظهر المستخدم في قائمة الشركة بدوره وصلاحياته فورًا.

سيناريو عملي

صاحب المطعم يدعو محاسبة جديدة: يدخل بريدها، يختار دور "Staff"، يمنحها صلاحية "استخدام المساعد الذكي" فقط، ويترك بريد الدعوة مفعّلًا. المحاسبة تستلم بريدًا، تضغط "قبول"، تنشئ كلمة مرور، وتظهر فورًا داخل قائمة مستخدمي المطعم.

صورة من النظام

صفحة المستخدمين مع زر "دعوة زميل".
صفحة المستخدمين مع زر "دعوة زميل".

أخطاء محتملة وحلولها

  • دعوة مكررة لنفس البريد — النظام يمنع إنشاء دعوة معلّقة ثانية لنفس البريد في نفس الشركة — استخدم "إعادة الإرسال" على الدعوة الموجودة بدلًا من ذلك.
  • الدعوة انتهت قبل القبول — اضغط "إعادة الإرسال" من قائمة الدعوات المعلّقة — يُمدد تاريخ الانتهاء 7 أيام تلقائيًا.
إنشاء دور ومنح الصلاحيات الأدوار تجمع مجموعة صلاحيات معًا لتُطبّق على أكثر من مستخدم دفعة واحدة. +

الهدف من هذه الصفحة

تعريف دور جديد (مثال: "محاسب") ومنحه مجموعة صلاحيات محددة، بدل منح كل صلاحية لكل مستخدم يدويًا.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage roles

شرح الحقول

  • اسم الدور: اسم واضح يظهر عند إضافة مستخدمين
  • الصلاحيات: قائمة اختيار متعددة من كل الصلاحيات المتاحة، مقسّمة حسب الموديول

شرح الأزرار

  • إنشاء دور: يفتح نموذج دور جديد

دورة العمل

  1. من صفحة "الأدوار والصلاحيات"، اضغط "إنشاء دور".
  2. اكتب اسم الدور.
  3. حدد الصلاحيات المطلوبة من القائمة.
  4. احفظ — الدور جاهز الآن للاختيار عند دعوة أو تعديل أي مستخدم.

سيناريو عملي

شركة تنشئ دور "مسؤول مخزون" بصلاحيات manage inventory فقط — كل موظف يُمنح هذا الدور يرى المخزون ويعدّله لكن لا يصل للمبيعات أو المحاسبة.

صورة من النظام

صفحة الأدوار والصلاحيات تُظهر عدد الصلاحيات لكل دور.
صفحة الأدوار والصلاحيات تُظهر عدد الصلاحيات لكل دور.

أخطاء محتملة وحلولها

  • لا أرى صفحة الأدوار أصلًا — تحتاج صلاحية manage roles نفسها لرؤية هذه الصفحة — اطلبها من Company Admin.
الاشتراك في موديول جديد تفعيل موديول إضافي (مثال: تصنيع أو رواتب) من متجر الموديولات. +

الهدف من هذه الصفحة

تصفح الموديولات المتاحة، معرفة السعر والصلاحيات المطلوبة، والاشتراك فيها.

من يستطيع الوصول

Company Admin فقط (تم تصحيح هذه الصفحة في مراجعة النظام — كانت متاحة سابقًا لأي مستخدم).

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • اسم الموديول: وصف مختصر لما يقدمه
  • السعر الشهري: يظهر لكل موديول قبل الاشتراك

شرح الأزرار

  • اشترك: ينشئ اشتراكًا وفاتورة وترخيص تجريبي فوري — التفعيل يحدث قبل الدفع، والفاتورة تبقى غير مسددة حتى تُدفع

دورة العمل

  1. من "متجر الموديولات"، تصفح الموديولات المتاحة.
  2. اضغط "اشترك" على الموديول المطلوب.
  3. يظهر الموديول فورًا في "الموديولات المثبتة"، مع فاتورة جديدة في "الفواتير والمدفوعات".

سيناريو عملي

شركة تصنيع تشترك في موديول "التصنيع" — يظهر فورًا في القائمة الجانبية، وتصلها فاتورة اشتراك يمكنها سدادها بالتحويل البنكي.

صورة من النظام

متجر الموديولات المتاحة بكل كروت الموديولات الحقيقية.
متجر الموديولات المتاحة بكل كروت الموديولات الحقيقية.

أخطاء محتملة وحلولها

  • الموديول لا يظهر في القائمة رغم الاشتراك — أعد تحميل الصفحة — الصلاحيات والقوائم تُحدَّث عند كل طلب جديد.
رفع إثبات تحويل بنكي سداد فاتورة اشتراك بتحويل بنكي يدوي ورفع الإثبات لمراجعته. +

الهدف من هذه الصفحة

رفع ملف إثبات التحويل (صورة أو PDF) ليراجعه فريق Zervixo ويفعّل السداد.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • ملف الإثبات: صورة أو PDF لسند التحويل البنكي — هذا هو الحقل الوحيد المتاح حاليًا (لا يوجد حاليًا حقل منفصل للمبلغ/التاريخ/المرجع — نقطة ضعف حقيقية موثقة في مراجعة النظام)

شرح الأزرار

  • رفع الإثبات: يرسل الملف لمراجعة فريق المنصة

حالات السجل

  • قيد المراجعة (Pending Review)
  • مقبول (Approved)
  • مرفوض (Rejected)

دورة العمل

  1. من "الفواتير والمدفوعات"، افتح الفاتورة المستحقة.
  2. اضغط "رفع إثبات".
  3. اختر ملف سند التحويل.
  4. انتظر مراجعة فريق المنصة — تتغير الحالة تلقائيًا عند القبول أو الرفض.

سيناريو عملي

شركة تحوّل قيمة اشتراكها بنكيًا، تلتقط صورة لسند التحويل، وترفعها على الفاتورة. بعد ساعات تصلها إشعار بقبول الدفع وتفعيل الاشتراك.

أخطاء محتملة وحلولها

  • تم رفض الإثبات — راجع سبب الرفض المكتوب من فريق المراجعة، وأعد رفع إثبات صحيح لنفس الفاتورة.
قبول دفعة (من طرف Platform Admin) مراجعة إثبات تحويل بنكي واعتماده أو رفضه من لوحة المنصة المركزية. +

الهدف من هذه الصفحة

مراجعة إثباتات التحويل البنكي المرفوعة من كل الشركات، وقبولها لتفعيل الاشتراك أو رفضها مع سبب واضح.

من يستطيع الوصول

Platform Super Admin فقط (is_staff).

الصلاحية المطلوبة

وصول لوحة Admin المركزية (is_staff)

شرح الحقول

  • سبب الرفض: حقل إلزامي عند الرفض — يظهر للشركة ليصححوا الإثبات

شرح الأزرار

  • قبول: يفعّل الاشتراك فورًا ويمنع القبول المكرر لنفس الدفعة
  • رفض: يطلب سبب الرفض قبل الحفظ

دورة العمل

  1. افتح قائمة "المدفوعات" في لوحة الإدارة المركزية.
  2. اختر دفعة "قيد المراجعة".
  3. افتح ملف الإثبات المرفق وتحقق منه.
  4. اضغط "قبول" أو "رفض" (مع كتابة السبب).

سيناريو عملي

فريق Zervixo يراجع 5 إثباتات تحويل جديدة كل صباح، يفتح كل ملف، يتأكد من المبلغ والمرجع البنكي، ثم يقبل الصحيح منها ويرفض غير الواضح مع سبب.

أخطاء محتملة وحلولها

  • قبلت الدفعة بالخطأ مرتين — النظام يمنع هذا صراحة — القبول المكرر لنفس الدفعة محظور.
ماذا يحدث عند انتهاء الاشتراك فهم فترة السماح (Grace Period) وما يظل متاحًا وما يتوقف عند انتهاء الترخيص. +

الهدف من هذه الصفحة

توضيح دورة حياة الترخيص: تجريبي → نشط → فترة سماح → منتهٍ/معطّل، وضمان عدم فقدان أي بيانات عند الانتهاء.

من يستطيع الوصول

Company Admin (يستقبل التنبيهات)، وأي مستخدم يحاول استخدام الموديول المنتهي.

الصلاحية المطلوبة

لا يوجد — هذا سلوك تلقائي في النظام

حالات السجل

  • تجريبي (Trial)
  • نشط (Active)
  • فترة سماح (Grace)
  • منتهٍ (Expired)
  • معطّل (Disabled)
  • ملغى (Cancelled)

دورة العمل

  1. تصلك تنبيهات قبل 30 و14 و7 و3 ويوم واحد من الانتهاء، وفي يوم الانتهاء نفسه.
  2. عند الانتهاء تدخل الشركة في "فترة سماح" مؤقتة.
  3. بعدها، إن لم يُجدَّد الاشتراك، يتحول الموديول لحالة "معطّل".
  4. بياناتك الموجودة تبقى محفوظة بالكامل — لا حذف أبدًا.
  5. بعد التجديد، يعود الموديول للعمل فورًا بكل بياناته السابقة.

سيناريو عملي

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

أخطاء محتملة وحلولها

  • أرى رسالة قراءة فقط لكنني بحاجة للتعديل — هذا سلوك متوقع أثناء فترة الانتهاء — جدّد الاشتراك لاستعادة الكتابة والتعديل. (ملحوظة من مراجعة النظام: حاليًا في بعض الصفحات يُمنع حتى القراءة، وهذا نطاق تحسين معروف ومسجّل).
تجديد اشتراك موديول إعادة تفعيل موديول منتهٍ أو على وشك الانتهاء. +

الهدف من هذه الصفحة

إنشاء فاتورة تجديد جديدة وإعادة الموديول لحالة نشطة بعد السداد.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

دورة العمل

  1. من "الموديولات المثبتة"، افتح الموديول المطلوب تجديده.
  2. اضغط "تجديد".
  3. تصلك فاتورة تجديد جديدة — اتبع نفس خطوات رفع إثبات الدفع.
  4. بعد قبول الدفعة، يعود الموديول للعمل فورًا.

سيناريو عملي

قبل 7 أيام من انتهاء اشتراك موديول المبيعات، يصل تنبيه للمسؤول، فيضغط "تجديد" مباشرة من نفس الصفحة، ويحوّل المبلغ، فيستمر الموديول للعمل بلا انقطاع.

أخطاء محتملة وحلولها

  • جدّدت الاشتراك لكن الموديول لا يزال معطّلًا — التجديد ينشئ فاتورة جديدة يجب سدادها وقبولها أولًا — التفعيل يحدث بعد قبول الدفعة، وليس عند إنشاء الفاتورة.
ربط بوابة دفع لعملائك إعداد بوابة دفع إلكتروني (مثال: Creem) ليدفع عملاء شركتك فواتيرهم أونلاين — مختلفة تمامًا عن دفعك أنت لاشتراك Zervixo. +

الهدف من هذه الصفحة

ربط حساب تاجر خاص بشركتك في بوابة دفع أتاحتها المنصة، لتفعيل الدفع الإلكتروني لعملائك.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • البوابة: من بين البوابات التي أتاحتها منصة Zervixo فقط
  • بيئة الاختبار/الإنتاج: Test أو Production
  • العملة: عملة المعاملات عبر هذه البوابة

شرح الأزرار

  • اختبار الاتصال: يتحقق من صحة الإعداد قبل الاعتماد عليه في معاملات حقيقية

دورة العمل

  1. من "التكاملات"، افتح "بوابات الدفع".
  2. اختر البوابة المتاحة لك.
  3. أدخل بيانات حسابك التجاري الخاص بالبوابة.
  4. اضغط "اختبار الاتصال" للتأكد.
  5. فعّلها لبدء استقبال مدفوعات عملائك أونلاين.

سيناريو عملي

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

صورة من النظام

صفحة بوابات الدفع تُظهر بوابة Creem الحقيقية وحالتها.
صفحة بوابات الدفع تُظهر بوابة Creem الحقيقية وحالتها.

أخطاء محتملة وحلولها

  • هل هذا نفس مكان دفعي أنا لاشتراك Zervixo؟ — لا إطلاقًا — هذه بوابتك أنت لعملائك، منفصلة تمامًا (جداول وإعدادات مختلفة) عن "الفواتير والمدفوعات" الخاصة باشتراكك في Zervixo.
إنشاء عميل جديد أول خطوة في أي عملية بيع — تسجيل بيانات العميل. +

الهدف من هذه الصفحة

تسجيل بيانات عميل واحدة مرة، تُستخدم تلقائيًا في كل عروض الأسعار والفواتير اللاحقة له.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage sales.

الصلاحية المطلوبة

manage sales

شرح الحقول

  • الاسم: اسم العميل أو الشركة
  • البريد/الهاتف: بيانات التواصل
  • الرقم الضريبي: مطلوب لو ستُصدر له فواتير ضريبية لاحقًا

دورة العمل

  1. من "المبيعات" → "العملاء"، اضغط "إنشاء عميل".
  2. أدخل الاسم وبيانات التواصل والرقم الضريبي إن وُجد.
  3. احفظ.

سيناريو عملي

عميل جديد يطلب عرض سعر لأول مرة — يُسجَّل اسمه ورقمه الضريبي مرة واحدة، فتصبح كل عروض الأسعار والفواتير له لاحقًا بضغطة واحدة لاختياره من القائمة.

صورة من النظام

صفحة العملاء.
صفحة العملاء.
إنشاء عرض سعر أول مستند في مسار المبيعات: عرض سعر يُحوَّل لاحقًا لأمر بيع عند القبول. +

الهدف من هذه الصفحة

تقديم عرض سعر رسمي للعميل قبل الالتزام بأمر بيع فعلي.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage sales.

الصلاحية المطلوبة

manage sales

شرح الحقول

  • العميل: من القائمة المسجّلة مسبقًا
  • البنود: المنتجات/الخدمات، الكمية، السعر لكل بند
  • صلاحية العرض: تاريخ انتهاء العرض

شرح الأزرار

  • تحويل إلى أمر بيع: يظهر فقط بعد قبول العميل — ينشئ SalesOrder حقيقيًا مرتبطًا بنفس البنود

دورة العمل

  1. أنشئ العميل أولًا إن لم يكن موجودًا.
  2. من "عروض الأسعار"، أنشئ عرضًا جديدًا واختر العميل.
  3. أضف البنود والأسعار.
  4. أرسل العرض للعميل.
  5. عند القبول، اضغط "تحويل إلى أمر بيع".

سيناريو عملي

مطعم يطلب عرض سعر لتوريد شهري من مورّده — يُنشأ عرض بالبنود والأسعار، يوافق المطعم، فيتحول العرض تلقائيًا لأمر بيع حقيقي بنفس البيانات دون إعادة إدخالها.

صورة من النظام

صفحة عروض الأسعار مع زر "عرض سعر جديد".
صفحة عروض الأسعار مع زر "عرض سعر جديد".
إنشاء أمر بيع الالتزام الفعلي بالبيع — من هنا يبدأ حجز المخزون تمهيدًا للتسليم. +

الهدف من هذه الصفحة

مستند بيع حقيقي يربط العميل بالمخزون والمستودع والفرع، ويولّد منه التسليم والفاتورة لاحقًا.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage sales.

الصلاحية المطلوبة

manage sales

شرح الأزرار

  • تأكيد: يحجز المخزون المطلوب فعليًا في المستودع المحدد
  • إنشاء تسليم: يظهر بعد التأكيد، وينشئ مستند تسليم جاهز للتنفيذ

حالات السجل

  • مسودة (Draft)
  • مؤكد (Confirmed)
  • تم التسليم جزئيًا
  • تم التسليم بالكامل
  • مفوتَر (Invoiced)

دورة العمل

  1. أنشئ أمر بيع مباشرة، أو حوّله من عرض سعر مقبول.
  2. حدد المستودع الذي سيُسلَّم منه.
  3. اضغط "تأكيد" — يُحجز المخزون فورًا.
  4. أنشئ تسليمًا عند الجاهزية للتسليم الفعلي.

سيناريو عملي

أمر بيع بـ 100 وحدة من منتج معيّن يُؤكَّد، فيُحجز فورًا 100 وحدة من مستودع الرياض تحديدًا، بحيث لا يستطيع أمر بيع آخر حجز نفس الكمية.

صورة من النظام

صفحة أوامر البيع مع زر "أمر بيع جديد".
صفحة أوامر البيع مع زر "أمر بيع جديد".

أخطاء محتملة وحلولها

  • لا يمكنني تأكيد الأمر — تحقق من توفر الكمية المطلوبة في المستودع المحدد — النظام يمنع الحجز الزائد عن الرصيد المتاح ما لم يُسمح صراحة بالمخزون السالب.
إصدار فاتورة مبيعات تحويل أمر بيع (كليًا أو جزئيًا) إلى فاتورة حقيقية بقيد محاسبي فعلي. +

الهدف من هذه الصفحة

إصدار فاتورة حقيقية تُنشئ قيدًا محاسبيًا فعليًا (مدين/دائن) وتظهر في تقارير المستحقات.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage sales.

الصلاحية المطلوبة

manage sales

شرح الحقول

  • البنود المفوترة: يمكن فوترة جزء من الكمية فقط لو التسليم كان جزئيًا
  • العملة: قد تختلف عن عملة الأساس — يُحفظ سعر الصرف وقت الفوترة

دورة العمل

  1. من أمر البيع المؤكَّد، اضغط "إنشاء فاتورة".
  2. تُملأ البنود تلقائيًا بما تبقى غير مفوتَر.
  3. راجع الضريبة والإجمالي.
  4. أصدر الفاتورة — يُنشأ القيد المحاسبي تلقائيًا.

سيناريو عملي

تسليم جزئي بـ 60 من 100 وحدة يُفوتَر — الفاتورة الأولى تشمل الـ60 فقط، وتبقى الـ40 المتبقية قابلة للفوترة لاحقًا بعد استكمال التسليم.

صورة من النظام

صفحة فواتير المبيعات مع زر "فاتورة مبيعات جديدة".
صفحة فواتير المبيعات مع زر "فاتورة مبيعات جديدة".
تسجيل دفعة على فاتورة تسجيل ما دفعه العميل فعليًا مقابل فاتورة صادرة. +

الهدف من هذه الصفحة

إغلاق الفاتورة كليًا أو جزئيًا حسب المبلغ المسدد فعليًا، وتحديث المبلغ المتبقي تلقائيًا.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage sales.

الصلاحية المطلوبة

manage sales

شرح الحقول

  • المبلغ: يمكن أن يكون جزئيًا لو الدفع على دفعات
  • طريقة الدفع: نقدًا، تحويل، بطاقة، إلخ

دورة العمل

  1. من الفاتورة، اضغط "تسجيل دفعة".
  2. أدخل المبلغ المدفوع فعليًا وطريقة الدفع.
  3. احفظ — يتحدّث "المبلغ المتبقي" تلقائيًا، وتتحول الفاتورة لـ"مسدَّدة بالكامل" عند وصول المتبقي لصفر.

سيناريو عملي

فاتورة بقيمة 1000 ريال، يدفع العميل 600 فقط أولًا — تُسجَّل الدفعة، ويظهر "المتبقي: 400 ريال"، حتى تُسجَّل دفعة ثانية تغلق الفاتورة بالكامل.

إصدار فاتورة ضريبية متوافقة مع ZATCA توليد الفاتورة الإلكترونية الموقّعة رقميًا وفق متطلبات هيئة الزكاة والضريبة والجمارك. +

الهدف من هذه الصفحة

توليد UUID فريد، تسلسل تجزئة (Hash Chain)، رمز QR، وتوقيع رقمي (XAdES-B) لكل فاتورة ضريبية، ثم إرسالها لهيئة الزكاة والضريبة والجمارك.

من يستطيع الوصول

أي مستخدم لديه صلاحية إصدار فواتير المبيعات، بشرط تفعيل تكامل ZATCA للشركة.

الصلاحية المطلوبة

manage sales + تفعيل تكامل ZATCA

دورة العمل

  1. أصدر فاتورة مبيعات عادية أولًا.
  2. يُولَّد تلقائيًا UUID ورمز QR وتوقيع رقمي للفاتورة.
  3. تُرسَل الفاتورة لهيئة الزكاة والضريبة والجمارك (Clearance أو Reporting حسب نوع الفاتورة).
  4. تُحفَظ استجابة الهيئة مع الفاتورة للمراجعة.

سيناريو عملي

محل بيع بالتجزئة يصدر فاتورة مبسّطة (Simplified) لعميل فرد — تُرسَل تلقائيًا كـ"Reporting" للهيئة خلال المهلة المسموحة، ويظهر رمز QR جاهزًا للطباعة على الفاتورة الورقية.

ملاحظة: هذا الجزء محجوب حاليًا في هذا الدليل لأنه يحتاج وصولًا فعليًا لطرف ثالث (وليس لأن الميزة غير موجودة) — راجع التقرير المرفق لتفاصيل الحالة الدقيقة.

أخطاء محتملة وحلولها

  • الفاتورة عالقة "قيد الإرسال" لفترة طويلة — يُعاد المحاولة تلقائيًا بفواصل زمنية متصاعدة (10، 30، 60، 300، 900 ثانية) حتى 5 مرات — تحقق من سجل الأخطاء إن استمرت المشكلة.
إنشاء طلب شراء الالتزام الرسمي بالشراء من مورّد بعد اعتماد طلب الشراء أو عرض السعر منه. +

الهدف من هذه الصفحة

مستند شراء رسمي يحدد المورّد والبنود والكميات والأسعار، ويمر بسلسلة اعتماد حقيقية قبل أن يصبح قابلًا للاستلام.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage purchases.

الصلاحية المطلوبة

manage purchases

شرح الأزرار

  • اعتماد: يتحقق أولًا أن المستخدم الحالي مخوَّل باتخاذ قرار الاعتماد وفق سلسلة الموافقات المُعدَّة

حالات السجل

  • مسودة
  • بانتظار الاعتماد
  • معتمد
  • مستلَم جزئيًا
  • مستلَم بالكامل
  • مفوتَر

دورة العمل

  1. أنشئ المورّد أولًا إن لم يكن موجودًا.
  2. أنشئ طلب شراء مباشرة، أو حوّله من طلب شراء داخلي معتمد.
  3. أرسله للاعتماد حسب سلسلة الموافقات المُعدَّة للشركة.
  4. بعد الاعتماد، يصبح جاهزًا لإنشاء استلام بضاعة.

سيناريو عملي

مسؤول مشتريات ينشئ طلب شراء بـ 500 وحدة من مادة خام، يُرسَل تلقائيًا لمديره للاعتماد حسب سلسلة الموافقات، ولا يمكن تحويله لاستلام بضاعة قبل موافقته.

صورة من النظام

صفحة طلبات الشراء مع زر "طلب شراء جديد".
صفحة طلبات الشراء مع زر "طلب شراء جديد".

أخطاء محتملة وحلولها

  • لا أستطيع اعتماد الطلب رغم أنني مدير — التحقق من الصلاحية يتم عبر سلسلة الموافقات المُعدَّة تحديدًا لهذا النوع من المستندات — تأكد أنك مضاف كمعتمِد لهذه السلسلة تحديدًا.
استلام البضاعة تسجيل الاستلام الفعلي للبضاعة من المورّد — هنا تزداد كمية المخزون فعليًا. +

الهدف من هذه الصفحة

زيادة رصيد المخزون فعليًا فور تأكيد الاستلام، مع دعم الاستلام الجزئي عبر أكثر من دفعة.

من يستطيع الوصول

أي مستخدم لديه صلاحية manage purchases.

الصلاحية المطلوبة

manage purchases

شرح الحقول

  • الكمية المستلَمة: قد تقل عن الكمية المطلوبة (استلام جزئي مسموح)
  • الكمية المرفوضة/التالفة: تُستبعد من الكمية الجيدة المضافة للمخزون
  • المستودع: يُحدَّد هنا تحديدًا وقت الاستلام، وليس عند إنشاء طلب الشراء

دورة العمل

  1. من أمر الشراء المعتمَد، اضغط "إنشاء استلام".
  2. حدد المستودع المستلَم إليه.
  3. أدخل الكمية المستلَمة فعليًا (والمرفوضة إن وُجدت).
  4. اضغط "تأكيد" — يزداد رصيد المخزون فورًا.

سيناريو عملي

طلب شراء بـ 500 وحدة يصل منه 300 فقط في الدفعة الأولى — يُسجَّل استلام جزئي بـ300، يزداد المخزون بـ300 فعليًا، ويبقى طلب الشراء "مستلَم جزئيًا" لحين وصول الـ200 المتبقية.

صورة من النظام

صفحة استلامات البضاعة.
صفحة استلامات البضاعة.

أخطاء محتملة وحلولها

  • زاد المخزون مرتين لنفس الاستلام — غير ممكن هيكليًا — كل تعديل مخزون يمر حصريًا عبر خدمة واحدة مسؤولة، تمنع الكتابة المباشرة أو التكرار.
ربط منصة مخصصة وشرح ربط الطلبات والحقول من اختبار الاتصال واستيراد Postman/OpenAPI إلى تحديد وظائف الطلبات وربط الحقول وتفعيل المزامنة. +

الهدف من هذه الصفحة

تعريف كيفية قراءة Zervixo لواجهة API مخصصة، وأي طلب مسؤول عن عرض أو إنشاء أو تعديل أو حذف كل نوع بيانات.

من يستطيع الوصول

مسؤول الشركة الذي يملك صلاحية إدارة إعدادات الشركة.

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • وظيفة الطلب: تحدد ماذا يفعل الطلب واتجاهه ومتى يُستخدم. مثال: المنتجات — عرض القائمة مع GET لاستيراد المنتجات، أو المنتجات — تعديل مع PUT/PATCH لإرسال تحديث مدعوم.
  • ربط الحقول: يأتي بعد اختيار الوظيفة ويحدد كيف تنتقل القيم داخل الطلب. مثال: data.items[*].sku ← SKU وdata.items[*].price ← سعر البيع؛ ولا يحدد وحده متى يعمل الطلب.
  • مسار الحقل الخارجي: مكان القيمة داخل استجابة JSON، مثل data.items[*].id.
  • حقل Zervixo: الحقل الداخلي المقابل الذي ستُحفظ فيه القيمة.

شرح الأزرار

  • اختبر الاتصال: يفحص الرابط وبيانات المصادقة فقط، ولا يفعّل المزامنة.
  • حفظ واقتراح الحقول: بعد اختيار الوظيفة يحفظها ويحلل JSON ليقترح عدة روابط تلقائيًا؛ مثال: sku ← SKU وprice ← سعر البيع.
  • إضافة ربط جديد: يكمل يدويًا حقلًا لم يظهر في الاقتراح؛ مثال: data.items[*].barcode ← باركود المنتج، ولا يغير الوظيفة.
  • تفعيل الاتصال والمزامنة: يبدأ المزامنة بعد وجود طلب مفعّل مربوط بوظيفة واحدة على الأقل.

دورة العمل

  1. أدخل بيانات الاتصال واضغط «اختبر الاتصال»، ثم أنشئ الاتصال.
  2. ارفع ملف Postman/OpenAPI أو أنشئ الطلبات يدويًا.
  3. اختر وظيفة كل طلب لتحديد ماذا يفعل ومتى يعمل؛ مثال: List Products مع GET لجلب المنتجات.
  4. اختبر الطلب للحصول على استجابة، ثم اربط حقول JSON بالحقول المقابلة في Zervixo عبر «حفظ واقتراح الحقول».
  5. راجع الاقتراحات وأضف أي ربط ناقص عبر «إضافة ربط جديد»؛ مثال: data.items[*].barcode مع باركود المنتج.
  6. فعّل الاتصال والمزامنة عندما تصبح الطلبات المطلوبة جاهزة.

سيناريو عملي

ملف Postman يحتوي List Products وCreate Order: يتعرف النظام غالبًا على الوظيفتين من الأسماء، ويقترح حقول المنتجات إذا وجد مثال JSON؛ يراجع المسؤول الاقتراحات ثم يضيف أي حقل ناقص يدويًا قبل التفعيل.

أخطاء محتملة وحلولها

  • اختبار الاتصال نجح لكن التفعيل لا يعمل — الاختبار يثبت الرابط والمصادقة فقط. اربط طلبًا مفعّلًا بوظيفة مزامنة واحدة على الأقل أولًا.
  • هل الربط تلقائي بالكامل؟ — يُقترح تلقائيًا عند وضوح اسم الطلب ووجود مثال استجابة، لكن يجب مراجعة الوظائف والحقول قبل التفعيل.
ربط متجر Zid بشركتك ربط متجرك الإلكتروني على منصة Zid بحساب Zervixo عبر OAuth. +

الهدف من هذه الصفحة

إنشاء اتصال آمن ومشفّر بين متجر Zid الخاص بك وحساب Zervixo، ليصبح ممكنًا لاحقًا استيراد المنتجات واستقبال الطلبات.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

شرح الحقول

  • حالة الاتصال: متصل / غير متصل / يوجد خطأ
  • آخر مزامنة: وقت آخر عملية مزامنة ناجحة

شرح الأزرار

  • ربط Zid: يفتح صفحة تسجيل دخول Zid الرسمية لمنح الإذن (OAuth) — لا يُدخَل أي كلمة مرور داخل Zervixo نفسها
  • قطع الاتصال: يلغي الإذن الممنوح

دورة العمل

  1. من "التكاملات" → "منصات التجارة الإلكترونية"، اضغط "ربط Zid".
  2. سجّل دخولك في Zid ووافق على الصلاحيات المطلوبة.
  3. تُعاد توجيهك لـZervixo وتظهر حالة الاتصال "متصل".

سيناريو عملي

متجر إلكتروني يريد ربط Zid: يضغط "ربط Zid"، يسجّل دخوله في نافذة Zid الرسمية، يوافق على الصلاحيات، ويعود لـZervixo وقد أصبح متجره مرتبطًا.

ملاحظة: هذا الجزء محجوب حاليًا في هذا الدليل لأنه يحتاج وصولًا فعليًا لطرف ثالث (وليس لأن الميزة غير موجودة) — راجع التقرير المرفق لتفاصيل الحالة الدقيقة.

أخطاء محتملة وحلولها

  • حالة الاتصال "خطأ" — راجع سجل الأخطاء في نفس الصفحة — الأسباب الشائعة هي انتهاء صلاحية الإذن الممنوح، ما يتطلب إعادة الربط.
استيراد المنتجات من Zid سحب كتالوج منتجاتك من Zid لتظهر داخل نظام المخزون في Zervixo. +

الهدف من هذه الصفحة

مزامنة منتجات متجر Zid داخل كتالوج منتجات Zervixo، ليصبح ممكنًا ربطها بعمليات المخزون والمبيعات.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

شرح الأزرار

  • مزامنة الآن: يبدأ عملية جلب المنتجات من Zid

دورة العمل

  1. بعد ربط المتجر، تبدأ المزامنة تلقائيًا حسب سياسة المزامنة (كل 15 دقيقة افتراضيًا)، أو اضغط "مزامنة الآن" للمزامنة الفورية.
  2. يُنشئ كل منتج جديد من Zid منتجًا حقيقيًا في كتالوج المخزون بـZervixo، بالاسم والسعر والفئة والكمية.
  3. إذا كان SKU المنتج القادم من Zid مطابقًا لمنتج موجود بالفعل بدون ربط سابق، يُحوَّل لتعارض ربط بدل تكرار المنتج (راجع مقال حل تعارضات الربط).

سيناريو عملي

متجر لديه 200 منتج على Zid يربط حسابه — خلال أول مزامنة تُنشأ 200 منتج حقيقي في كتالوج Zervixo بنفس الأسماء والأسعار والكميات.

ملاحظة: هذا الجزء محجوب حاليًا في هذا الدليل لأنه يحتاج وصولًا فعليًا لطرف ثالث (وليس لأن الميزة غير موجودة) — راجع التقرير المرفق لتفاصيل الحالة الدقيقة.

أخطاء محتملة وحلولها

  • منتج جاي من Zid بدون SKU — يُنشأ له SKU تلقائي بصيغة "zid-{معرف المنتج}" بدل تركه فارغًا.
  • ما اتحدثش SKU منتج موجود بالفعل بعد المزامنة — متعمَّد — الـSKU لا يُعاد كتابته في المزامنات اللاحقة حتى لا يُلغى أي تصحيح يدوي عملته بنفسك.
استقبال طلب من Zid ما يُفترض أن يحدث عند وصول طلب جديد من متجرك على Zid. +

الهدف من هذه الصفحة

استقبال إشعار Webhook فور وصول طلب على Zid، والتحقق من عدم تكراره قبل معالجته.

من يستطيع الوصول

تلقائي بالكامل — لا يتدخل مستخدم مباشرة.

الصلاحية المطلوبة

لا يوجد (عملية خلفية)

دورة العمل

  1. يصل طلب جديد لمتجرك على Zid.
  2. يُرسِل Zid إشعار Webhook لـZervixo فورًا.
  3. يتحقق النظام أن هذا الحدث لم يُعالَج من قبل (منع التكرار).
  4. يُنشئ الطلب أمر بيع حقيقي في Zervixo، بحالة "مسودة" دائمًا بغض النظر عن حالة الطلب على Zid نفسه.

سيناريو عملي

عميل يشتري من متجرك على Zid — يصل إشعار فوري لـZervixo، فيُنشأ أمر بيع حقيقي بنفس البنود بحالة مسودة، جاهز لمراجعتك قبل تأكيده.

ملاحظة: هذا الجزء محجوب حاليًا في هذا الدليل لأنه يحتاج وصولًا فعليًا لطرف ثالث (وليس لأن الميزة غير موجودة) — راجع التقرير المرفق لتفاصيل الحالة الدقيقة.

أخطاء محتملة وحلولها

  • لماذا الطلب في Zervixo "مسودة" رغم إنه مؤكد على Zid؟ — متعمَّد — النظام لا يحوّل حالة Zid تلقائيًا لحالة Zervixo (اللي بتؤثر على حجز المخزون والمحاسبة) لأن ده قرار حساس يفضّل تركه لمراجعتك.
  • بند الطلب بدون منتج مربوط — إذا لم يكن المنتج مربوطًا بعد (تعارض ربط معلّق)، يُنشأ البند بلا منتج محدد — اربط المنتج أولًا من صفحة تعارضات الربط.
خصم المخزون بسبب طلب Zid كيف يُفترض أن يُخصم المخزون تلقائيًا عند بيع منتج عبر Zid. +

الهدف من هذه الصفحة

ضمان تطابق الكمية المعروضة على Zid مع الكمية الفعلية في مخزون Zervixo بعد كل عملية بيع.

من يستطيع الوصول

تلقائي بالكامل.

الصلاحية المطلوبة

لا يوجد

دورة العمل

  1. يزامن Zervixo كمية المخزون من Zid دوريًا حسب سياسة المزامنة (منفصل عن مزامنة الطلبات).
  2. يقرأ الكمية المُبلَّغة من Zid ويحسب الفرق عن الرصيد الحالي في Zervixo.
  3. يُطبَّق الفرق عبر نفس الخدمة المسؤولة عن كل حركات المخزون الأخرى، فتُنشأ حركة مخزون حقيقية قابلة للمراجعة (وليس تعديلًا صامتًا لرقم).

سيناريو عملي

Zid يُبلغ أن رصيد منتج أصبح 45 بدل 50 — تُنشئ Zervixo حركة مخزون حقيقية بخصم 5 وحدات على المستودع الافتراضي المُعدّ للتكامل.

ملاحظة: هذا الجزء محجوب حاليًا في هذا الدليل لأنه يحتاج وصولًا فعليًا لطرف ثالث (وليس لأن الميزة غير موجودة) — راجع التقرير المرفق لتفاصيل الحالة الدقيقة.

أخطاء محتملة وحلولها

  • المخزون لا يتحدّث رغم البيع على Zid — تأكد من إعداد مستودع افتراضي للتكامل، وأن سياسة مزامنة المخزون مفعّلة (وليست يدوية فقط) من صفحة سياسة المزامنة.
لماذا لا تتحدّث الكمية المعروضة على Zid عند بيع منتج داخل Zervixo مباشرة؟ مزامنة المخزون اتجاه واحد فقط: من Zid إلى Zervixo، وليس العكس. +

الهدف من هذه الصفحة

توضيح حدود اتجاه المزامنة الحالي حتى لا يفاجَأ التاجر ببيع كمية غير متوفرة فعليًا من خلال Zid.

من يستطيع الوصول

أي تاجر يبيع نفس المنتج من فرعه الفعلي ومن متجره على Zid معًا.

الصلاحية المطلوبة

لا يوجد (سلوك النظام)

دورة العمل

  1. تبيع منتجًا مباشرة من الفرع أو عبر أمر بيع داخل Zervixo.
  2. يُخصَم المخزون داخل Zervixo فورًا وبشكل صحيح.
  3. الكمية المعروضة على متجر Zid نفسها لا تتحدّث تلقائيًا — لأن التصدير من Zervixo إلى Zid غير مدعوم اليوم.

سيناريو عملي

آخر وحدة من منتج تُباع في الفرع مباشرة — يصبح رصيده صفرًا في Zervixo فورًا، لكنه يبقى ظاهرًا كمتاح على متجر Zid حتى تُحدَّثه يدويًا من Zid نفسه أو يُطلب فعليًا عبر Zid فتُكتشف المشكلة.

أخطاء محتملة وحلولها

  • بعت آخر وحدة في الفرع وجاني طلب من Zid لنفس المنتج — راقب هذا يدويًا حاليًا للمنتجات اللي بتبيعها من الفرع ومن Zid معًا — حدّث الكمية على Zid يدويًا لحد ما يُدعم التصدير التلقائي.
شراء موديول من المتجر نفس سيناريو "الاشتراك في موديول" أعلاه، من منظور المتجر كوجهة تصفح. +

الهدف من هذه الصفحة

تصفح كل الموديولات المتاحة في المتجر (سواء أساسية أو من مطورين خارجيين) بسعرها وتقييماتها، قبل الاشتراك.

من يستطيع الوصول

Company Admin فقط.

الصلاحية المطلوبة

manage company settings

دورة العمل

  1. من "المتجر"، تصفح كل الموديولات مصنّفة حسب الفئة.
  2. افتح أي موديول لرؤية وصفه وسعره وتقييمه.
  3. اضغط "اشترك" — راجع سيناريو "الاشتراك في موديول" للتفاصيل الكاملة.

سيناريو عملي

شركة تتصفح المتجر بحثًا عن موديول تكامل جديد، تقارن بين خيارين حسب التقييمات والسعر، وتشترك في الأنسب.

صورة من النظام

متجر الموديولات المتاحة.
متجر الموديولات المتاحة.
تقديم موديول بواسطة مطوّر تقديم بيانات موديول جديد لمراجعة فريق Zervixo قبل نشره في المتجر. +

الهدف من هذه الصفحة

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

من يستطيع الوصول

أي مستخدم — لا صلاحية خاصة مطلوبة حاليًا لتقديم الطلب نفسه.

الصلاحية المطلوبة

لا يوجد صلاحية مخصصة حاليًا

شرح الحقول

  • اسم المطوّر: اسمك أو اسم شركتك
  • البريد الإلكتروني: للتواصل بخصوص حالة المراجعة
  • اسم الموديول: اسم الموديول المقترَح
  • الوصف: ما يقدمه الموديول
  • رابط المستودع: رابط لكود المصدر للمراجعة

شرح الأزرار

  • إرسال للمراجعة: يُنشئ سجل تقديم بحالة "قيد المراجعة"

دورة العمل

  1. من "تطبيقات المطورين"، املأ بيانات الموديول المقترَح.
  2. اضغط "إرسال للمراجعة".
  3. انتظر رد فريق Zervixo.

سيناريو عملي

مطوّر مستقل يريد بيع تكامل مع خدمة شحن — يملأ النموذج ببيانات موديوله، يرسله، وينتظر مراجعة الفريق.

صورة من النظام

صفحة تطبيقات المطورين مع زر "تقديم موديولك".
صفحة تطبيقات المطورين مع زر "تقديم موديولك".

أخطاء محتملة وحلولها

  • أين أرفع كود الموديول فعليًا؟ — لا يوجد حاليًا — هذا نموذج بيانات وصفية فقط (اسم، وصف، رابط مستودع)، وليس منصة رفع كود أو نشر آلي. حساب مطوّر حقيقي بتسجيل دخول، وبيانات دفعات، ورفع إصدارات — كل هذا غير موجود بعد، وموثَّق بوضوح في تقرير مراجعة النظام.
اعتماد موديول مقدَّم من مطوّر مراجعة Platform Admin لموديول مقدَّم، واعتماده أو رفضه. +

الهدف من هذه الصفحة

مراجعة الطلبات المقدَّمة من المطورين، والموافقة عليها (فينشأ سجل موديول حقيقي في كتالوج المتجر فورًا) أو رفضها بسبب واضح.

من يستطيع الوصول

Platform Super Admin فقط (is_staff).

الصلاحية المطلوبة

وصول لوحة Admin المركزية (is_staff)

شرح الأزرار

  • اعتماد: ينشئ موديولًا حقيقيًا في كتالوج المتجر فورًا — مراجعة بيانات وصفية فقط، لا يُنفَّذ أي كود للمطوّر مطلقًا
  • رفض: يتطلب كتابة سبب الرفض

دورة العمل

  1. من لوحة الإدارة المركزية، افتح "مراجعة الموديولات".
  2. راجع بيانات الموديول المقدَّم ورابط المستودع.
  3. اضغط "اعتماد" (فيظهر فورًا في المتجر) أو "رفض" مع سبب.

سيناريو عملي

فريق Zervixo يراجع طلب موديول جديد من مطوّر، يتأكد من وضوح الوصف ومعقولية الرابط، ثم يعتمده — فيظهر الموديول فورًا في متجر كل الشركات.

أخطاء محتملة وحلولها

  • اعتمدت الموديول، هل هذا يعني أن كوده يعمل الآن؟ — لا — الاعتماد هنا مراجعة بيانات وصفية ونشر كتالوج فقط. لا توجد حاليًا بيئة تنفيذ أو فحص أمني آلي لكود المطوّر نفسه.
ربط قناة واتساب بمركز التواصل ربط رقم واتساب بيزنس حقيقي كي تصل رسائل عملائك إلى صندوق محادثات واحد. +

الهدف من هذه الصفحة

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

من يستطيع الوصول

أي مستخدم يملك صلاحية "إدارة قنوات التواصل".

الصلاحية المطلوبة

communication_hub.channels.manage

شرح الحقول

  • الاسم: اسم داخلي يساعدك تميّز القناة، لا يظهر للعميل
  • Phone Number ID: مُعرّف رقم واتساب بزنس من حساب Meta الخاص بك — النظام لا يُصدره
  • Access Token: رمز وصول دائم من نفس حساب Meta
  • Webhook Verify Token: رمز نصي تختاره أنت بنفسك، تستخدمه لاحقًا عند تسجيل الـ webhook في Meta
  • قناة افتراضية: حدّد هذا الخيار إذا كانت أول قناة تربطها

دورة العمل

  1. قبل أن تبدأ: احصل من حساب واتساب بزنس على Meta على Phone Number ID وAccess Token دائم.
  2. من مركز التواصل، افتح "القنوات" ثم "قناة جديدة".
  3. أدخل الاسم وPhone Number ID وAccess Token.
  4. اختر Webhook Verify Token من عندك.
  5. فعّل "قناة افتراضية" إذا لزم الأمر واحفظ.
  6. ارجع لإعدادات تطبيق واتساب في Meta وسجّل رابط الـ webhook بنفس رمز التحقق بالضبط.

سيناريو عملي

صالون تجميل عايز يستقبل حجوزات عبر واتساب: صاحب الصالون يحصل على Phone Number ID وAccess Token من حساب واتساب بزنس بتاعه، يربطهم في مركز التواصل، يسجّل الـ webhook في Meta، وبعدها أي عميل يبعت رسالة على الرقم ده تظهر فورًا في صندوق المحادثات.

أخطاء محتملة وحلولها

  • فشل تحقق الـ webhook في Meta — تأكد أن رمز التحقق المسجّل في Meta مطابق حرفيًا للرمز الذي كتبته في القناة.
  • تم الوصول للحد الأقصى من عدد القنوات — خطتك الحالية وصلت لحد عدد القنوات المسموح بربطها.
استقبال أول محادثة والرد عليها من وصول أول رسالة عميل بعد ربط القناة حتى الرد عليها من صندوق المحادثات. +

الهدف من هذه الصفحة

يفتح محادثة واردة جديدة من قناة مربوطة بالفعل ويرد عليها مباشرة من نفس الشاشة.

من يستطيع الوصول

أي مستخدم يملك صلاحية "عرض صندوق المحادثات" و"الرد على المحادثات".

الصلاحية المطلوبة

communication_hub.inbox.view, communication_hub.conversations.reply

شرح الأزرار

  • إرسال: يبعت ردك للعميل عبر نفس القناة فورًا
  • تغيير الحالة: يحدّث حالة المحادثة (مفتوحة/معلّقة/محلولة/مغلقة/مؤجلة)

حالات السجل

  • مفتوحة (Open) — الحالة الافتراضية لمحادثة واردة جديدة
  • معلّقة (Pending)
  • محلولة (Resolved)
  • مغلقة (Closed)
  • مؤجلة (Snoozed)

دورة العمل

  1. بعد ربط قناة (راجع سيناريو ربط قناة واتساب)، انتظر رسالة عميل حقيقية أو اطلب من أحد تجربة الرقم.
  2. افتح "المحادثات" من مركز التواصل -- ستجد المحادثة الجديدة أعلى القائمة.
  3. اضغط عليها لعرض نص الرسالة.
  4. اكتب ردك في مربع الرسالة واضغط إرسال.
  5. حدّث حالة المحادثة إلى "محلولة" إذا انتهى الأمر، أو اتركها "مفتوحة" إذا كانت المتابعة مستمرة.

سيناريو عملي

عميل يبعت رسالة "متاح توصيل النهاردة؟" على رقم واتساب مطعم مربوط بمركز التواصل: الرسالة تظهر فورًا كمحادثة جديدة بحالة "مفتوحة"، الموظف المسؤول يفتحها ويرد "أيوه متاح لحد الساعة 11"، والمحادثة تفضل مفتوحة لحد ما العميل يأكد الطلب.

أخطاء محتملة وحلولها

  • لا تظهر رسائل جديدة رغم ربط القناة — تأكد أن الـ webhook مسجَّل وسليم في إعدادات Meta (راجع سيناريو ربط القناة)، وأن حالة القناة سليمة (Health).
  • مرت أكثر من 24 ساعة منذ آخر رسالة من هذا العميل — قيد حقيقي من واتساب نفسه -- لا يمكن إرسال رسالة عادية بعد 24 ساعة من آخر رسالة واردة، فقط رسالة قالب معتمدة مسبقًا.
إرسال أول حملة واتساب من بناء شريحة عملاء إلى إرسال قالب معتمد لها ومتابعة حالة كل رسالة. +

الهدف من هذه الصفحة

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

من يستطيع الوصول

أي مستخدم يملك صلاحية "إدارة الحملات".

الصلاحية المطلوبة

communication_hub.campaigns.manage

شرح الحقول

  • القناة: رقم واتساب المتصل الذي سيُرسِل منه
  • الشريحة: مجموعة العملاء المستهدفة
  • القالب: لا تظهر إلا القوالب المعتمدة من ميتا على هذه القناة
  • متغيرات القالب: قيم مفصولة بفواصل، بنفس ترتيب {{1}}، {{2}}، ... في القالب — فاصلة داخل قيمة واحدة (مثل تاريخ مكتوب "16 سبتمبر، 2026") تُحسب خطأً كقيمتين منفصلتين

شرح الأزرار

  • إرسال الآن: يطلب تأكيدًا يعرض العدد الفعلي للمستلمين المؤهلين قبل الإرسال الفعلي

حالات السجل

  • مسودة (Draft)
  • قيد الإرسال (Sending)
  • مكتملة (Completed)
  • ملغاة (Cancelled)

دورة العمل

  1. أنشئ شريحة عملاء أو استخدم شريحة جاهزة (راجع صفحة الشرائح).
  2. من الحملات، اضغط "إضافة حملة".
  3. اختر القناة والشريحة وقالبًا معتمدًا.
  4. اكتب قيم متغيرات القالب مفصولة بفواصل، بنفس ترتيب القالب بالضبط.
  5. راجع "عدد المستلمين المؤهلين المتوقع" الظاهر أسفل حقل الشريحة.
  6. احفظ الحملة، ثم اضغط "إرسال الآن" وأكّد.
  7. تابع أعمدة تم الإرسال/تم التسليم/تمت القراءة/فشل في قائمة الحملات — تتحدث تلقائيًا مع وصول تحديثات الحالة من ميتا.

سيناريو عملي

صاحب متجر صغير يريد تأكيد آخر الطلبات لعملائه عبر واتساب: يبني شريحة بعملاء الأسبوع الماضي، يختار قالب "تأكيد الطلب" المعتمد، يملأ اسم العميل ورقم الطلب وتاريخ التسليم (بصيغة بدون فواصل مثل 2026-09-16)، يضغط إرسال الآن، ويشاهد كل رسالة تنتقل من "تم الإرسال" إلى "تم التسليم" ثم "تمت القراءة".

أخطاء محتملة وحلولها

  • الحملة انتهت بحالة "فشل" لكل المستلمين برسالة عن عدد المعاملات — قيمة متغير تحتوي على فاصلة (مثل تاريخ مكتوب "16 سبتمبر، 2026") قسّمتها لقيمتين، فاختلف العدد الفعلي عن عدد متغيرات القالب — أعد الإرسال بصيغة بدون فواصل داخل القيمة الواحدة.
  • عدد المستلمين المؤهلين أقل من عدد أعضاء الشريحة — عضو الشريحة يُحسب "مؤهلاً" فقط إذا كان مسجَّلاً بنفس رقم واتساب على القناة المختارة تحديدًا -- راجع صفحة الشرائح.
إرسال قالب واتساب وانتظار موافقة ميتا من اختيار نموذج جاهز في مكتبة القوالب إلى إرسال القالب لميتا ومتابعة حالته حتى يصبح جاهزًا للاستخدام. +

الهدف من هذه الصفحة

إنشاء قالب رسالة من نموذج جاهز، إرساله لمراجعة ميتا، ومتابعة حالته حتى الموافقة قبل استخدامه في أي حملة أو أتمتة.

من يستطيع الوصول

أي مستخدم يملك صلاحية "إدارة القوالب".

الصلاحية المطلوبة

communication_hub.templates.manage

شرح الأزرار

  • استخدام القالب: من مكتبة القوالب — ينشئ مسودة بعدد المتغيرات مُشتقًا تلقائيًا من نص النموذج
  • إرسال إلى ميتا: من صفحة القوالب — يرسل المسودة فعليًا للمراجعة، وقد تستغرق دقائق إلى ساعات
  • مزامنة من ميتا: يجلب الحالة الحقيقية الحالية من حساب واتساب بزنس

حالات السجل

  • مسودة (Draft) — لم تُرسَل بعد
  • قيد المراجعة (Pending)
  • معتمد (Approved) — أصبح متاحًا في الحملات والأتمتة
  • مرفوض (Rejected) — يظهر سبب الرفض الحقيقي من ميتا عند تمرير الفأرة فوق الحالة

دورة العمل

  1. من مكتبة القوالب، اختر نموذجًا وفئته (منفعة/تسويقية/مصادقة) واللغة، ثم "استخدام القالب" — يُنشئ مسودة.
  2. من صفحة القوالب، افتح المسودة وراجع نصها وعدد متغيراتها.
  3. اضغط "إرسال إلى ميتا".
  4. استخدم "مزامنة من ميتا" لاحقًا لتحديث الحالة الحقيقية.
  5. بمجرد "معتمد"، يصبح القالب متاحًا للاختيار عند إنشاء حملة أو أتمتة.

سيناريو عملي

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

أخطاء محتملة وحلولها

  • إرسال قالب فئة "مصادقة" يفشل برسالة صلاحية من ميتا — قيد حقيقي خارجي من ميتا -- تطبيق Zervixo على ميتا لا يملك بعد الصلاحية الخاصة بهذه الفئة تحديدًا، وهذا لا يؤثر إطلاقًا على فئتي "منفعة" و"تسويقية" اللتين تعملان بشكل طبيعي.
  • القالب "مرفوض" ولا أعرف السبب — مرّر الفأرة فوق شارة الحالة في قائمة القوالب لرؤية سبب الرفض الحقيقي من ميتا.
إعداد تذكير واتساب تلقائي لفاتورة متأخرة إرسال رسالة واتساب تلقائية لعميل في اليوم التالي لتأخر فاتورته عن السداد، بدون أي تدخل يدوي. +

الهدف من هذه الصفحة

يفحص فواتير المبيعات يوميًا ويرسل رسالة واتساب تلقائيًا لأي فاتورة تجاوزت تاريخ استحقاقها بيوم واحد ولم تُسدَّد بعد.

من يستطيع الوصول

أي مستخدم يملك صلاحية "إدارة الأتمتة".

الصلاحية المطلوبة

communication_hub.automations.manage

شرح الحقول

  • السجل المُشغِّل: الفاتورة (Invoice)
  • متى: الوصول إلى تاريخ
  • حقل التاريخ: تاريخ استحقاق الفاتورة
  • الإزاحة بالأيام: 1 -- يعني يوم واحد بعد الاستحقاق
  • الشروط: حالة الفاتورة لا تساوي "مدفوعة"
  • حقل جهة الاتصال: customer.phone -- يصل لرقم هاتف عميل الفاتورة عبر العلاقة
  • متغيرات القالب: مثال: customer.name, invoice_number, total -- بنفس ترتيب متغيرات القالب

دورة العمل

  1. من الأتمتة، اضغط "إضافة أتمتة".
  2. اختر السجل المُشغِّل: الفاتورة، والحدث: "الوصول إلى تاريخ".
  3. حدد حقل التاريخ: تاريخ الاستحقاق، والإزاحة: 1.
  4. أضف شرطًا: الحالة لا تساوي "مدفوعة".
  5. اختر القناة وقالبًا معتمدًا مناسبًا (فئة منفعة).
  6. اكتب حقل جهة الاتصال: customer.phone.
  7. اكتب متغيرات القالب بنفس ترتيبه، مثل: customer.name, invoice_number, total.
  8. فعّل الأتمتة واحفظ.

سيناريو عملي

فاتورة عميل تصبح متأخرة عن السداد بيوم واحد بين عشية وضحاها: فحص الأتمتة اليومي يلتقطها في صباح اليوم التالي تلقائيًا، فيرسل للعميل رسالة واتساب تذكّره باسمه ورقم فاتورته والمبلغ المستحق -- دون أي إجراء من فريق المبيعات.

أخطاء محتملة وحلولها

  • الأتمتة مفعّلة لكن العميل لم يستلم أي رسالة — رقم هاتف العميل يجب أن يكون مخزَّنًا بصيغة دولية كاملة (مثل 9665XXXXXXXX)؛ رقم بصيغة محلية (يبدأ بصفر) يفشل الآن برسالة خطأ واضحة في سجل الأتمتة بدلًا من إرسال صامت لرقم خاطئ، لكنه لن يصل للعميل حتى تُخزَّن بياناته بالصيغة الدولية.
  • الأتمتة لا تُنشئ أي سجل إرسال إطلاقًا — راجع سجل الأتمتة (Automation Log) لمعرفة إن كانت الشروط تحقّقت أصلاً لهذه الفاتورة.
عميل يسأل عن منتج على واتساب ويحصل على إجابة حقيقية كيف يرد الرد الذكي على أسئلة السعر والتوفر من بيانات المخزون الحقيقية للمنشأة، دون تخمين. +

الهدف من هذه الصفحة

يوضّح أن ردود الذكاء الاصطناعي على أسئلة المنتجات مبنية فعليًا على بيانات المخزون الحية للمنشأة، لا على تخمين أو معرفة عامة.

من يستطيع الوصول

أي منشأة فعّلت الرد الذكي (راجع مقال إعدادات الرد الذكي) بصلاحية "إدارة الذكاء الاصطناعي".

الصلاحية المطلوبة

communication_hub.ai.manage

دورة العمل

  1. فعّل الرد الذكي من إعداداته، وفعّل خيارات "البحث في المنتجات النشطة" و"إظهار سعر البيع" و"إظهار حالة التوفر".
  2. اضبط وضع القناة إلى ذكاء اصطناعي أو مختلط.
  3. من هنا فصاعدًا، أي سؤال عميل عن منتج يُجاب تلقائيًا من بيانات المخزون الحقيقية.

سيناريو عملي

عميل يسأل بالعربية: "هل يوجد لديكم أطباق ورقية مقسمة متوفرة الآن؟ وكم السعر؟" -- يرد الرد الذكي بالسعر الحقيقي المخزَّن للمنتج، ويذكر بوضوح أنه غير متوفر حاليًا في المخزون، لأن هذا فعليًا حال المنتج في بيانات المنشأة. عميل آخر يسأل عن منتج لا تبيعه المنشأة إطلاقًا -- فيرد الرد الذكي بوضوح أنه غير متوفر لديهم، ويقترح بدلاً منه منتجًا حقيقيًا موجودًا فعلاً، بدلاً من اختلاق منتج غير موجود.

أخطاء محتملة وحلولها

  • هل ممكن يخترع الرد الذكي سعرًا أو توفرًا؟ — لا -- الرد الذكي مُوجَّه صراحة إنه للقراءة فقط ويعتمد على بيانات المخزون الحقيقية فقط؛ إن لم يكن واثقًا من الإجابة يُحوّل المحادثة لموظف بدلاً من التخمين.
  • العميل سأل عن منتج غير موجود وحصل على رد بمنتج آخر — سلوك متعمّد -- عند عدم وجود المنتج المطلوب، يقترح الرد الذكي بديلاً حقيقيًا من الكتالوج الفعلي بدلاً من الرد بلا فائدة.
ربط جهة اتصال واتساب تلقائيًا بعميل أو عميل محتمل موجود كيف يتعرّف مركز التواصل على عميل جديد عبر واتساب بمطابقة رقم هاتفه مع سجلات العملاء والعملاء المحتملين الموجودة. +

الهدف من هذه الصفحة

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

من يستطيع الوصول

أي مستخدم يملك صلاحية "عرض صندوق المحادثات".

الصلاحية المطلوبة

communication_hub.inbox.view

دورة العمل

  1. عميل يرسل أول رسالة له على رقم واتساب مربوط.
  2. يقارن النظام آخر 8 أرقام من رقم هاتفه مع أرقام العملاء ثم العملاء المحتملين المسجَّلة -- بصرف النظر عن اختلاف صيغة الرقم (صفر بادئ أو رمز دولة).
  3. إذا طابق سجلاً واحدًا فقط، تُربَط جهة الاتصال به تلقائيًا ويظهر سياق العميل بجانب المحادثة.
  4. إذا لم يوجد أي تطابق، يُنشأ عميل محتمل جديد تلقائيًا ويُربَط به.

سيناريو عملي

عميل قديم اسمه مسجَّل في العملاء برقم يبدأ بصفر (مثل 05xxxxxxxx) يرسل لأول مرة على رقم واتساب المنشأة من نفس رقمه لكن بصيغة دولية (966xxxxxxxxx): يتعرّف مركز التواصل على أن آخر 8 أرقام متطابقة ويربط المحادثة بسجل العميل تلقائيًا. لكن لو كان نفس الرقم مسجَّلاً بالخطأ في أكثر من سجل عميل، يترك النظام جهة الاتصال بلا ربط عمدًا بدلاً من التخمين -- وهذا ما حدث فعليًا في بيئة اختبار حقيقية بها رقم مكرر على سجلين مختلفين.

أخطاء محتملة وحلولها

  • لا يظهر أي سياق عميل بجانب المحادثة — يعني أن الرقم إما لم يطابق أي سجل عميل أو عميل محتمل، أو طابق أكثر من سجل واحد فتُرِك بلا ربط عمدًا لتجنّب الربط الخاطئ. لا توجد حاليًا أداة ربط يدوي من واجهة مركز التواصل أو من صفحة العميل/العميل المحتمل -- الحل الفعلي هو تصحيح البيانات المكرّرة في سجلات العملاء نفسها (مثل توحيد الرقم المكرر على سجل واحد).
  • ربط خاطئ لعميلين مختلفين بنفس المحادثة — غير ممكن هيكليًا -- اسم جهة الاتصال يُستخدم فقط لعرضها، أما الربط الفعلي فيعتمد على رقم الهاتف حصرًا.