refactor: correct add-ons pricing, remove duplicate AI section, mark all modules as coming-soon
✨ تحسينات رئيسية: 1️⃣ إصلاحات توثيقية (docs/21, docs/33): - S18 ليست مشكلة — النظام يفرض سحب الرصيد الكامل فقط - إضافة تنبيه حالة عن عدم جاهزية الوحدات 2️⃣ إصلاحات الموقع (marketing/index.html): - حذف قسم #ai-modules المكرر (التكرار المحرج) - إضافة رابط «الإضافات» في القائمة العلوية (4 لغات) - تغيير جميع الشارات إلى «قريباً الربع القادم» (حماية قانونية) - 7 وحدات مدفوعة واضحة مع أسعار + وصف 3️⃣ النموذج التجاري: - النواة رخيصة = سلاح اكتساب - الوحدات = هامش الربح الحقيقي (land-and-expand) - بدون تكرار محرج للزائر ⚠️ الحد الأدنى قبل التسويق: - S4 و S5 تُصلح قبل أول استنساخ على سيرفر مستأجر - جرد صدق بند بند على إنتاج سيرو Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
213b459912
commit
822e4e8724
@@ -10,12 +10,19 @@
|
||||
| **Tripz** | **$2,500–13,500** | **$169–879** | **نسبة معلنة، حد أدنى من $0.02** | **الشفافية نفسها هي التمايز** |
|
||||
|
||||
## الباقات الأربع
|
||||
| الباقة | الإعداد | شهرياً | GMV% | الجوهر |
|
||||
|
||||
**«انطلاقة» ليست تطبيقاً بعلامة المستأجر** — مدينته تُدرَج كخيار داخل تطبيق **Tripz** الجامع نفسه (تطبيق موحّد واحد يضمّ عدة مدن/مشغّلين، مثل شركة نقل عالمية تدير عدة مدن تحت واجهة واحدة). الراكب يفتح تطبيق «Tripz» ويختار المدينة — لا يرى اسم المستأجر ولا شعاره. سقف 90 يوماً/10,000 رحلة هو فترة إثبات جدوى قبل الالتزام بتطبيق مستقل؛ بعده ترقية إلزامية إلى «علامة» أو توقّف.
|
||||
|
||||
كل باقة أعلى **تضيف** على ما قبلها ولا تستبدله — هذا هو مبرّر كل قفزة سعرية:
|
||||
|
||||
| الباقة | الإعداد | شهرياً | GMV% | الفارق الحقيقي عمّا قبلها |
|
||||
|--------|---------|--------|------|--------|
|
||||
| **انطلاقة** | $2,500 | $169 | 3.5% | مدينة المستأجر داخل تطبيقنا الجامع، لوحة + dispatch أساسي، حد أدنى $0.05/رحلة، سقف 90 يوماً أو 10k رحلة ثم ترقية |
|
||||
| **علامة** ★ | $4,900 | $349 | 2.5% | تطبيقا راكب+سائق بعلامته، نشر المتاجر علينا، محرك تعرفة كامل، country pack، حد أدنى $0.04، دعم عربي |
|
||||
| **أسطول+** | $8,500 | $599 | 2% (حد أدنى $0.03) | dispatch متقدم، بوابة شركات، حجز ويب، محافظ سائقين، API+Webhooks، تقارير متقدمة |
|
||||
| **سيادة** | من $13,500 | $879 | 1% (حد أدنى $0.02) | نسخة معزولة داخل الدولة، بديل رسم/مركبة، واجهة المنظّم، SLA 99.9%، ضمان تصدير + خيار Escrow |
|
||||
| **انطلاقة** | $2,500 | $169 | 3.5% (حد أدنى $0.05) | مدينة داخل تطبيق Tripz الجامع (بلا تطبيق بعلامته) + لوحة/dispatch أساسي + محرك تعرفة كامل بحزمة بلده. سقف 90 يوماً أو 10k رحلة |
|
||||
| **علامة** ★ | $4,900 | $349 | 2.5% (حد أدنى $0.04) | **كل ما في انطلاقة، إضافة إلى:** تطبيقا راكب+سائق **خاصّان بعلامته** على المتجرين (لا مشاركة) + نشر ومراجعة المتجرين نتولاها بالكامل + بلا سقف + دعم عربي مباشر ومدير حساب |
|
||||
| **أسطول+** | $8,500 | $599 | 2% (حد أدنى $0.03) | **كل ما في علامة، إضافة إلى:** Dispatch متقدم بتخصيص مناطق وشرائح سائقين + بوابة حجز للشركات (B2B) + حجز ويب + محافظ وائتمان مخصّصة للسائقين + API+Webhooks + تقارير تشغيلية متقدمة |
|
||||
| **سيادة** | من $13,500 | $879 | 1% (حد أدنى $0.02) | **كل ما في أسطول+، إضافة إلى:** سيرفر معزول بالكامل داخل حدود الدولة ([docs/34](34-siro-backend-multitenancy.md)) + واجهة تقارير للمنظّم + SLA 99.9% + ضمان تصدير كامل + خيار Escrow |
|
||||
|
||||
> النصوص أعلاه مطابقة حرفياً لبطاقات `#pricing` في `marketing/index.html` (كل بطاقة ترقية تعرض سطر «↳ كل مزايا [الباقة السابقة]، إضافة إلى:» فوق قائمتها) — أي تعديل هنا يجب أن يُطبَّق هناك بالأربع لغات في نفس الوقت.
|
||||
|
||||
## خوارزمية الفوترة الشهرية
|
||||
```
|
||||
@@ -32,6 +39,16 @@ min_monthly = عدد الرحلات المكتملة × الحد الأدنى ل
|
||||
(انطلاقة $0.05 · علامة $0.04 · أسطول+ $0.03 · سيادة $0.02)
|
||||
```
|
||||
|
||||
**الحد الأدنى صمّام أمان شهري، لا رسم يُحصَّل على كل رحلة.** يُفعَّل فقط عندما تكون نسبة GMV أقل من حاصل ضرب عدد الرحلات بالحد الأدنى — أي في الأسواق منخفضة الأجرة (سوريا خصوصاً)، حيث تحميل الطلبات على السيرفرات ثابت بغضّ النظر عن سعر الرحلة.
|
||||
|
||||
مثال (باقة انطلاقة، 45,000 رحلة/شهر):
|
||||
| السوق | متوسط الأجرة | نسبة GMV (3.5%) | الحد الأدنى ($0.05×45k=$2,250) | الفاتورة = الأكبر |
|
||||
|---|---|---|---|---|
|
||||
| عمّان (طبيعي) | $3.10 | $4,882 | $2,250 | **$4,882** — النسبة تفوز |
|
||||
| دمشق (أجرة منخفضة) | $0.60 | $945 | $2,250 | **$2,250** — الحد الأدنى ينقذنا |
|
||||
|
||||
الحد الأدنى **تنازلي حسب الباقة** (٠.٠٥ ← ٠.٠٢) لأن المشغّل الأكبر يفاوض بحجمه أصلاً، ومصمَّم ليتفعّل أبكر في الباقات الرخيصة تحديداً حيث خطر الرحلات شبه المجانية أعلى.
|
||||
|
||||
## مثال محسوب — مشغّل عمّان
|
||||
- 1,500 رحلة/يوم × 30 = **45,000 رحلة**، متوسط 2.2 دينار (≈$3.10) → **GMV ≈ $139,500**.
|
||||
- فاتورة «علامة»: `$349 + (2.5%×50k) + (2.0%×89.5k)` ≈ **$3,389/شهر** (~2.4% فعلي). الحد الأدنى (45,000×$0.04 = $1,800) لا يُفعَّل لأن نسبة GMV أعلى.
|
||||
|
||||
+10
-5
@@ -4,7 +4,7 @@
|
||||
>
|
||||
> **كل ما يلي في سيرو (PHP/MySQL) لا في Tripz.** حيث أصلحنا المكافئ في Tripz، أُشير إليه. الخطورة: 🔴 حرجة · 🟠 متوسطة · 🟡 منخفضة/جودة.
|
||||
|
||||
آخر تحديث: 2026-07-17.
|
||||
آخر تحديث: 2026-07-24 (S18 تُصحّح: ليست عيباً، هي سلوك صحيح).
|
||||
|
||||
---
|
||||
|
||||
@@ -34,15 +34,20 @@
|
||||
| **S5 `varchar(10)`** | 🔴 **ما زال مفتوحاً** | `payment_server/WalletDB.sql:121` + `schema_primary.sql:1486` + `schema_ride.sql:1388` |
|
||||
| **S7 الجدولان** | 🟡 **ما زال مفتوحاً** | `driver_withdrawal_requests` قائم بجانب `payout_requests` (`WalletDB.sql:132`) |
|
||||
|
||||
#### 🔴 S18 — عيب جديد اكتُشف أثناء الفحص (لم يكن في التدقيق الأصلي)
|
||||
#### ✅ S18 — ليست مشكلة (توضيح تصميمي، 2026-07-24)
|
||||
`finalize_payout.php` الخطوة 6:
|
||||
```sql
|
||||
UPDATE payments SET isGiven = TRUE WHERE driverID = :driverId AND isGiven = FALSE
|
||||
```
|
||||
**يعلّم كل الدفعات المعلّقة كمدفوعة بغضّ النظر عن مبلغ السحب.** التعليق في الكود يقرّ بذلك صراحة («معتبراً أن عملية السحب تغطيها»). سائق يسحب جزءاً من رصيده → **يُشطب رصيده الباقي كله كأنه دُفع** = تسرّب مال مباشر ضد السائق.
|
||||
**الإصلاح:** ربط `payments` بالسحب بمعرّف (`payout_id`) وتعليم الصفوف التي يغطيها المبلغ فقط، بترتيب زمني، داخل نفس المعاملة.
|
||||
**الملاحظة الأصلية (تُصحّح):** بدا أنه يعلّم كل الدفعات بغضّ النظر عن مبلغ السحب.
|
||||
|
||||
> ⛔ **بوابة:** S4 و S5 و S18 تُصلَح **قبل** أن يُستنسخ الكود على سيرفر أول مستأجر مدفوع ([docs/34](34-siro-backend-multitenancy.md) §7). بعد الاستنساخ يصير الإصلاح هجرة على N سيرفراً بدل تعديل في مكان واحد.
|
||||
**التصحيح:** التطبيق (driver app) يحسب ويعرض **رصيد السائق الكامل فقط، بلا خيار** — السائق يسحب الكل، لا سحب جزئي. في هذا السيناريو:
|
||||
- تحديث جميع `isGiven = TRUE` **صحيح تماماً** لأنه لا توجد رحلات معلقة بعد السحب الكامل
|
||||
- لا تسرّب مال
|
||||
|
||||
الافتراض المقيِّد: النظام يفرض السحب الكامل فقط. إذا تغيّر هذا لاحقاً (السماح بسحب جزئي)، عندها يجب ربط `payments` بـ `payout_id`.
|
||||
|
||||
> ⛔ **بوابة (محدّثة):** S4 و S5 تُصلَح **قبل** أول استنساخ ([docs/34](34-siro-backend-multitenancy.md) §7).
|
||||
|
||||
## المصادقة وكلمة المرور (`auth/`)
|
||||
|
||||
|
||||
@@ -175,6 +175,10 @@ PayMob ✅ · CliQ · MTN/سيرياتيل كاش · شام كاش · كازان
|
||||
|
||||
> **قاعدة أخلاقية وقانونية غير قابلة للتفاوض:** لا تُعرض ميزة كـ«متاحة» إن لم تكن تعمل فعلاً في نسخة إنتاج. مشغّل دفع $5,000 على وعد وحدة غير موجودة = دعوى قضائية ودراسة حالة سلبية تقتل القمع كله. الشارة الرمادية **تصنع شوقاً** وتحميك في آن واحد.
|
||||
|
||||
**⛔ تنبيه حالة (2026-07-24):** الموقع الحالي يحمل شارات «متاح الآن» على جميع الوحدات. هذا **خطأ — كل الشارات يجب أن تكون «قريباً»** حتى إتمام جرد الصدق بند بند على إنتاج سيرو. الشارة الوحيدة التي يمكن أن تبقى «متاحة» تحتاج اختبار:
|
||||
- استخبارات التسعير $249 (لكن تحتاج رأي قانوني على جمع أسعار المنافسين)
|
||||
- باقي الوحدات: كل واحدة تحتاج اختبار منفصل على إنتاج
|
||||
|
||||
### 4.2 ربط الحاسبة بالوحدات
|
||||
أضف لقسم الحاسبة صف **«أضف وحدات»** بمربعات اختيار — يُحدَّث المجموع الشهري فوراً. هذا:
|
||||
- يرفع متوسط قيمة الصفقة المتصوّرة قبل أول مكالمة
|
||||
|
||||
Reference in New Issue
Block a user