العمولة

اعمل محرك قواعد (Rules) للعمولة بدل ما تثبتها داخل المنتج أو الفاتورة. كل قاعدة تقول:

  • أين تُطبَّق؟ (على الفاتورة كلها / على منتج / على تصنيف / على مندوب)
  • كيف تُحسب؟ (قيمة ثابتة / نسبة من السعر / نسبة من الربح / من الربح الإضافي)
  • متى تُطبَّق؟ (تواريخ، حد أدنى للربح/قيمة الفاتورة، فروع معيّنة…)
  • من يأخذها؟ (مندوب واحد، توزيع بين فريق…)
  • هل تتراكم مع غيرها أم تُقصي غيرها؟ (Stack vs First-match)

طبقات التطبيق (من الأضيق للأوسع)

  1. استثناءات محددة (منتج/باركود معيّن بلا عمولة)
  2. قواعد المنتج
  3. قواعد التصنيف
  4. قواعد المندوب/الفريق
  5. قواعد الفاتورة العامة
  6. قاعدة افتراضية (Fallback) إن لم تنطبق أي قاعدة

كل قاعدة لها أولوية (priority). إمّا:

  • Exclusive: أول قاعدة مطابقة “توقف” البحث.
  • Stackable: تُجمع العمولات من القواعد المتعددة (مع سقف/حد أقصى لو لزم).

أنواع الحساب الشائعة

  • ثابت لكل بيع (على المنتج أو الفاتورة)
  • نسبة من سعر البيع
  • نسبة من الربح (انتبه لتعريف “الربح”: آخر تكلفة؟ متوسط؟ FIFO؟)
  • ربح إضافي (فوق سعر قياسي/حد مستهدف)
  • قائمة بيضاء/سوداء لمنتجات أو تصنيفات معيّنة

نقاط حاسمة تجعل النظام “سلس وذكي”

  • تعريف الربح واحد وواضح (سياسة تكلفة: AVG/Last/FIFO) كي لا تتغيّر العمولة بتغيّر طريقة التكلفة.
  • خصومات وضرائب: قرّر هل تُحتسب النسبة قبل الخصم أم بعده؟ قبل الضريبة أم بعدها؟ ثبت القاعدة.
  • العملات: إمّا تتحاسب العمولة بعملة الفاتورة مع تحويل موحّد، أو بعملة ثابتة للمندوب. المهم قاعدة ثابتة.
  • الإرجاع/الإلغاء: عمولة سالبة أو تسوية في دورة لاحقة — لازم منطق واضح.
  • التواريخ والحملات: القاعدة تقبل نافذة زمنية لسهولة العروض المؤقتة.
  • التقارير والأثر الرجعي: خزّن “ما هي القاعدة التي طُبّقت ولماذا؟” لأجل الشفافية والنزاعات.

كيف تجمع كل الحالات التي ذكرتها؟

  • منتج عليه عمولة/منتج لا: قاعدة على المنتج أو استثناء.
  • عمولة ثابتة: نوع “ثابت” (على المنتج أو على الفاتورة).
  • نسبة من الربح: نوع “profit-based” ويعتمد على سياسة التكلفة.
  • على كل فاتورة بيع: قاعدة “invoice” (ثابتة أو نسبة من الإجمالي).
  • على أصناف محددة: قواعد على التصنيف (Category) أو قائمة منتجات.
  • على الربح الإضافي: قاعدة “extra_profit” (بيع − سعر قياسي) × نسبة.

قرار التشغيل (Flow مختصر)

  1. اجمع القواعد النشطة المطابقة للسياق (فرع/تاريخ/مندوب).
  2. رتّبها حسب الأولوية.
  3. طبّق إمّا أول قاعدة فقط أو اجمع القواعد حسب نوعها.
  4. احترم السقوف (Cap) وحدود التراكم.
  5. خزّن نتيجة الحساب + هوية القاعدة.

لو أردتها “سهلة الاستخدام” لمالك النظام:

  • شاشة بسيطة لإنشاء قاعدة: نطاقطريقة حسابشروطأولويةتراكم/إقصاء.
  • زر تفعيل/تعطيل + نافذة زمنية + محاكٍ سريع (تجربة على فاتورة افتراضية لتبيان النتيجة).