- marketing: index.html من 2274 إلى 775 سطراً، والباقي إلى styles/ (tokens·base·components·sections·responsive) و js/ (app·i18n·calculator·analytics) و i18n/ بخمس لغات (ar·en·fr·es·tr) عبر سمة data-i18n. - docs/05 + docs/33 + لوحة السوبر-أدمن: الباقات صارت ثلاثاً (إطلاق · نمو · سيادة) بدل الأربع، وتحديث docs/31 بما يطابقها. - docs/36: توثيق سيرو إكسبرس للتوصيل. - تنظيف استيرادات غير مستعملة في apps/rider و apps/driver. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
550 lines
29 KiB
Markdown
550 lines
29 KiB
Markdown
<div dir="rtl" align="right">
|
|
|
|
# 🧠 عاصفة ذهنية: خدمة طلب الطعام وتوصيل الأغراض — Siro Express
|
|
|
|
## رأيي الصريح في هذه الخطوة
|
|
|
|
</div>
|
|
|
|
> [!TIP]
|
|
> **This is a strategically brilliant move.** Siro already owns 80% of the infrastructure needed. You're not starting from zero — you're extending a proven platform.
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### لماذا هذه الخطوة ذكية جداً؟
|
|
|
|
1. **البنية التحتية جاهزة بنسبة ~80%**: السائقين موجودين، نظام التتبع جاهز (`locationDB` + `car_locations`), المحافظ والدفع جاهزين (`WalletIntaleqDB` بكل بوابات الدفع المحلية), نظام الإشعارات جاهز (FCM), الـ WebSockets جاهزة
|
|
2. **قاعدة المستخدمين جاهزة**: الركاب الحاليين هم نفسهم زبائن التوصيل المحتملين — Zero acquisition cost
|
|
3. **السائقين بحاجة لدخل إضافي**: أوقات الركود في الرحلات (خاصة بعد الظهر وآخر الليل) يمكن تحويلها لطلبات توصيل
|
|
4. **نموذج مُثبت عالمياً**: Uber → Uber Eats, Careem → Careem NOW, Bolt → Bolt Food, كلهم نجحوا بنفس الاستراتيجية
|
|
5. **ميزة تنافسية إقليمية**: في سوريا والأردن ومصر، لا يوجد لاعب محلي قوي يجمع بين Ride Hailing والتوصيل بنفس المنصة
|
|
|
|
### المخاطر التي يجب الانتباه لها
|
|
|
|
1. **تعقيد العمليات**: إدارة المطاعم والمتاجر مختلفة تماماً عن إدارة الرحلات
|
|
2. **جودة الخدمة**: تأخير التوصيل أو وصول طعام بارد يضر بسمعة سيرو ككل
|
|
3. **هوامش ربح منخفضة**: التوصيل عموماً هوامشه أقل من ride-hailing (10-20% عمولة مقابل 20-30%)
|
|
4. **تعبئة بيانات المتاجر**: التحدي الأكبر — من يضيف قوائم الطعام والمنتجات؟
|
|
|
|
---
|
|
|
|
## 🏗️ الهندسة المعمارية — حاويات Docker المطلوبة
|
|
|
|
</div>
|
|
|
|
### Current Architecture (What You Have)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ Docker: siro │
|
|
│ │
|
|
│ nginx ─→ php (fpm) ─→ mysql ─→ redis │
|
|
│ │ │
|
|
│ socket_driver (WS:2020) ──┘ │
|
|
│ socket_passenger (WS:3030) ─┘ │
|
|
│ phpmyadmin │
|
|
└─────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### Proposed Architecture (What To Add)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Docker: siro (extended) │
|
|
│ │
|
|
│ ┌── Existing ──────────────────────────────────────────────┐ │
|
|
│ │ nginx ─→ php (fpm) ─→ mysql ─→ redis │ │
|
|
│ │ socket_driver (WS:2020) │ │
|
|
│ │ socket_passenger (WS:3030) │ │
|
|
│ │ phpmyadmin │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ ┌── NEW: Delivery Layer ───────────────────────────────────┐ │
|
|
│ │ │ │
|
|
│ │ order_server (PHP-FPM) ← إدارة الطلبات │ │
|
|
│ │ ├─ Store/Menu CRUD │ │
|
|
│ │ ├─ Order lifecycle │ │
|
|
│ │ ├─ Driver dispatch for delivery │ │
|
|
│ │ └─ Merchant portal API │ │
|
|
│ │ │ │
|
|
│ │ socket_order (WS:4040) ← تتبع حي للطلبات │ │
|
|
│ │ ├─ Real-time order status │ │
|
|
│ │ ├─ Driver → Kitchen communication │ │
|
|
│ │ └─ Customer live tracking │ │
|
|
│ │ │ │
|
|
│ │ merchant_dashboard (Nginx) ← لوحة تحكم التاجر │ │
|
|
│ │ ├─ Menu management │ │
|
|
│ │ ├─ Order accept/reject │ │
|
|
│ │ └─ Sales analytics │ │
|
|
│ │ │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ ┌── Shared (reuse existing) ───────────────────────────────┐ │
|
|
│ │ mysql (add new DB: deliveryDB) │ │
|
|
│ │ redis (add delivery queues & caching) │ │
|
|
│ │ nginx (add delivery routes) │ │
|
|
│ │ payment_server (reuse wallet infrastructure) │ │
|
|
│ │ loction_server (reuse driver tracking) │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
> [!IMPORTANT]
|
|
> **Principle**: Follow the same architecture pattern you already use — separation by role, not microservices fragmentation. The `order_server` is a new PHP-FPM service, `socket_order` is a new Workerman process, and the `merchant_dashboard` is a new frontend. All share the existing MySQL and Redis instances.
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### الحاويات الجديدة المطلوبة (3 حاويات)
|
|
|
|
| الحاوية | الدور | التقنية | البورت |
|
|
|:---|:---|:---|:---|
|
|
| `order_server` | معالجة الطلبات، إدارة المتاجر والقوائم، ربط السائق بالطلب | PHP-FPM (نفس الصورة الحالية) | داخلي فقط عبر nginx |
|
|
| `socket_order` | WebSocket لتتبع حالة الطلب مباشرة (تم القبول → جاري التحضير → السائق في الطريق → تم التوصيل) | PHP Workerman (نفس socket_driver) | WS:4040 |
|
|
| `merchant_dashboard` | لوحة تحكم للتاجر (ويب) لإدارة المنيو والطلبات | React/Vue أو HTML بسيط | عبر nginx |
|
|
|
|
### ما لا نحتاج إنشاءه من الصفر (إعادة استخدام)
|
|
|
|
- ✅ **نظام الدفع**: `payment_server` + `WalletIntaleqDB` — نفس المحافظ والبوابات (Cliq, eCash, MTN, PayMob)
|
|
- ✅ **تتبع السائقين**: `loction_server` + `locationDB` — نفس الـ GPS streaming
|
|
- ✅ **الإشعارات**: `FcmService.php` — نفس البنية
|
|
- ✅ **المصادقة**: `JwtService.php` + `RateLimiter.php` — نفس الأمان
|
|
- ✅ **قاعدة البيانات**: نفس MySQL instance، نضيف database جديدة `deliveryDB`
|
|
|
|
---
|
|
|
|
## 📊 قاعدة البيانات الجديدة — `deliveryDB`
|
|
|
|
### الجداول الأساسية المطلوبة
|
|
|
|
</div>
|
|
|
|
```mermaid
|
|
erDiagram
|
|
merchants ||--o{ stores : "owns"
|
|
stores ||--o{ menu_categories : "has"
|
|
menu_categories ||--o{ menu_items : "contains"
|
|
menu_items ||--o{ item_variants : "has options"
|
|
menu_items ||--o{ item_addons : "has extras"
|
|
stores ||--o{ store_hours : "operating hours"
|
|
stores ||--o{ store_zones : "delivery zones"
|
|
|
|
orders ||--o{ order_items : "contains"
|
|
orders }o--|| stores : "placed at"
|
|
orders }o--|| passengers : "ordered by"
|
|
orders }o--o| drivers : "delivered by"
|
|
orders ||--o{ order_status_log : "status history"
|
|
|
|
stores ||--o{ store_reviews : "rated by customers"
|
|
|
|
merchants {
|
|
string id PK
|
|
string phone
|
|
string email
|
|
string name
|
|
string business_license
|
|
string status
|
|
datetime created_at
|
|
}
|
|
|
|
stores {
|
|
string id PK
|
|
string merchant_id FK
|
|
string name_ar
|
|
string name_en
|
|
string logo
|
|
string cover_image
|
|
string category "restaurant|grocery|pharmacy|general"
|
|
decimal latitude
|
|
decimal longitude
|
|
string address
|
|
boolean is_active
|
|
decimal min_order
|
|
decimal delivery_fee
|
|
integer avg_prep_time_min
|
|
decimal rating
|
|
integer total_reviews
|
|
}
|
|
|
|
menu_items {
|
|
string id PK
|
|
string store_id FK
|
|
string category_id FK
|
|
string name_ar
|
|
string name_en
|
|
string description
|
|
string image
|
|
decimal price
|
|
boolean is_available
|
|
integer sort_order
|
|
}
|
|
|
|
orders {
|
|
string id PK
|
|
string store_id FK
|
|
string passenger_id FK
|
|
string driver_id FK
|
|
string status "pending|accepted|preparing|ready|picked_up|delivered|cancelled"
|
|
decimal subtotal
|
|
decimal delivery_fee
|
|
decimal service_fee
|
|
decimal total
|
|
string payment_method
|
|
decimal delivery_lat
|
|
decimal delivery_lng
|
|
string delivery_address
|
|
text special_instructions
|
|
datetime estimated_delivery
|
|
datetime created_at
|
|
}
|
|
```
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
---
|
|
|
|
## 📱 كيف نعرضها داخل التطبيق؟ — استراتيجية العرض
|
|
|
|
### الخيار الأول: تبويب جديد داخل `siro_rider` (الموصى به ✅)
|
|
|
|
</div>
|
|
|
|
> [!TIP]
|
|
> **Recommended approach**: Add a new tab/section inside the existing `siro_rider` app rather than creating a separate app. This is what Uber, Careem, and Bolt all do — it maximizes cross-selling and leverages the existing user base.
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
**المنطق**: المستخدم يفتح التطبيق ← يشوف تبويبين رئيسيين: **"رحلات"** و **"طلبات"** (أو "سيرو إيتس" / "سيرو ماركت")
|
|
|
|
#### تجربة المستخدم المقترحة
|
|
|
|
```
|
|
الشاشة الرئيسية (siro_rider)
|
|
├── 🚗 رحلات (Tab الحالي — ride hailing)
|
|
└── 🛒 طلبات (Tab جديد — delivery)
|
|
├── 🔍 بحث عن مطعم/متجر
|
|
├── 📂 تصنيفات
|
|
│ ├── 🍔 مطاعم
|
|
│ ├── 🥬 سوبرماركت / بقالة
|
|
│ ├── 💊 صيدليات
|
|
│ ├── 🎁 هدايا وزهور
|
|
│ └── 📦 أي شيء (توصيل عام)
|
|
├── 🔥 الأكثر طلباً (trending)
|
|
├── ⭐ الأعلى تقييماً
|
|
├── 💰 عروض وخصومات
|
|
└── 📍 القريب منك
|
|
```
|
|
|
|
#### تدفق الطلب
|
|
|
|
```
|
|
اختيار متجر → تصفح المنيو → إضافة للسلة → مراجعة الطلب
|
|
→ اختيار العنوان (نفس خريطة الرحلات!) → اختيار طريقة الدفع (نفس المحافظ!)
|
|
→ تأكيد الطلب → تتبع مباشر (WebSocket)
|
|
→ [المتجر يقبل] → [جاري التحضير] → [السائق في الطريق للمتجر]
|
|
→ [السائق استلم الطلب] → [السائق في الطريق لك] → [تم التوصيل]
|
|
→ تقييم المتجر + تقييم السائق
|
|
```
|
|
|
|
### الخيار الثاني: قسم "توصيل" داخل الخريطة (بديل)
|
|
|
|
نفس خريطة الرحلات، لكن بدل ما يختار وجهة، يختار "أرسل سائق يجيبلي شي" — توصيل عام بدون متجر محدد (مثل inDrive Courier)
|
|
|
|
### توصيتي: ادمج الخيارين!
|
|
- **Tab "طلبات"** = مطاعم ومتاجر مسجلة (مثل Uber Eats)
|
|
- **خيار "توصيل أي شيء"** داخل نفس التبويب = توصيل عام بدون متجر (مثل inDrive Courier)
|
|
|
|
---
|
|
|
|
## 🏪 من يعبّي البيانات؟ — نموذج تعبئة المتاجر
|
|
|
|
### ❌ لا يمكنك تعبئة كل شيء بنفسك (لن يتسع الوقت)
|
|
|
|
### ✅ النموذج المُهجَّن (Hybrid) — الأنسب لسيرو
|
|
|
|
</div>
|
|
|
|
| Phase | Strategy | Details |
|
|
|:---|:---|:---|
|
|
| **Phase 1: Seed** | Siro team adds 20-30 top stores manually | Pick the most popular restaurants/stores in each city. Siro team photographs menus, enters items. This creates "critical mass" to attract users |
|
|
| **Phase 2: Merchant Portal** | Launch self-service merchant dashboard | Merchants register, upload their own menus, manage availability, accept orders. This is the `merchant_dashboard` Docker container |
|
|
| **Phase 3: Scale** | Sales team onboards merchants + merchants discover Siro organically | Merchant referral program, dedicated sales agents, "Join Siro" landing page |
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### التفصيل:
|
|
|
|
#### المرحلة 1 — البذرة (أول شهر-شهرين)
|
|
- **أنت وفريقك** تختارون 20-30 مطعم/متجر مشهور في كل مدينة
|
|
- تروحون تصوّرون المنيو، تدخلون الأصناف، الأسعار، الصور
|
|
- **هذا ضروري** لأن لا أحد (لا مستخدم ولا تاجر) سيستخدم منصة فارغة
|
|
- الهدف: أن يفتح المستخدم التطبيق ويلاقي خيارات حقيقية من أول يوم
|
|
|
|
#### المرحلة 2 — بوابة التاجر (الشهر الثالث)
|
|
- **لوحة تحكم ويب** للتاجر (الـ `merchant_dashboard`):
|
|
- التاجر يسجّل حسابه بنفسه
|
|
- يضيف متجره (اسم، عنوان، شعار، ساعات العمل)
|
|
- يضيف أصناف المنيو بنفسه (اسم، وصف، سعر، صورة)
|
|
- يستقبل الطلبات ويقبلها/يرفضها
|
|
- يشوف تقارير مبيعاته
|
|
- **تطبيق تاجر بسيط** (اختياري لاحقاً): تطبيق موبايل للتاجر يسمع إشعارات الطلبات الجديدة
|
|
|
|
#### المرحلة 3 — التوسع (بعد 6 أشهر)
|
|
- فريق مبيعات يزور المتاجر ويعرض عليهم الانضمام
|
|
- التجار يسجلون بأنفسهم بعد ما يشوفون المنصة ناجحة
|
|
- برنامج إحالة للتجار ("ادعُ تاجر واحصل على عمولة مخفّضة")
|
|
|
|
---
|
|
|
|
## 📋 ما الذي نحتاجه بالتفصيل؟
|
|
|
|
### بيانات المتاجر (يعبّيها التاجر أو فريق سيرو)
|
|
|
|
| البيان | مطلوب؟ | مثال |
|
|
|:---|:---|:---|
|
|
| اسم المتجر (عربي + إنجليزي) | ✅ إجباري | مطعم الشام / Al Sham Restaurant |
|
|
| الشعار (Logo) | ✅ إجباري | صورة 512x512 |
|
|
| صورة الغلاف | 🟡 اختياري | صورة عريضة للمتجر |
|
|
| التصنيف | ✅ إجباري | مطعم / سوبرماركت / صيدلية / عام |
|
|
| التصنيف الفرعي | 🟡 اختياري | شاورما / بيتزا / برغر / حلويات |
|
|
| العنوان + الإحداثيات | ✅ إجباري | خريطة + pin |
|
|
| ساعات العمل | ✅ إجباري | 9:00 - 23:00 (لكل يوم) |
|
|
| الحد الأدنى للطلب | ✅ إجباري | 2 دينار / 50,000 ل.س |
|
|
| رسوم التوصيل | ✅ إجباري | ثابتة أو حسب المسافة |
|
|
| وقت التحضير المتوسط | ✅ إجباري | 25 دقيقة |
|
|
| رقم هاتف التواصل | ✅ إجباري | للتنسيق مع السائق |
|
|
| نطاق التوصيل (كم) | ✅ إجباري | 5 كم من المتجر |
|
|
|
|
### بيانات المنيو/المنتجات (يعبّيها التاجر)
|
|
|
|
| البيان | مطلوب؟ | مثال |
|
|
|:---|:---|:---|
|
|
| اسم الصنف | ✅ إجباري | شاورما لحمة عربي |
|
|
| الوصف | 🟡 اختياري | لحمة مشوية مع خضار وطحينة |
|
|
| السعر | ✅ إجباري | 1.50 دينار |
|
|
| الصورة | ✅ مُوصى بشدة | صورة شهية! |
|
|
| التصنيف | ✅ إجباري | ساندويشات / مشاوي / مشروبات |
|
|
| متاح / غير متاح | ✅ إجباري | toggle بسيط |
|
|
| خيارات (Variants) | 🟡 حسب الصنف | حجم: صغير / وسط / كبير |
|
|
| إضافات (Add-ons) | 🟡 حسب الصنف | إضافة جبنة +0.25 / بدون بصل |
|
|
|
|
---
|
|
|
|
## 💰 نموذج الإيرادات — كيف نربح؟
|
|
|
|
### مصادر الدخل من خدمة التوصيل
|
|
|
|
| مصدر الدخل | النسبة المقترحة | التوضيح |
|
|
|:---|:---|:---|
|
|
| **عمولة من المتجر** | 15-25% من قيمة الطلب | المصدر الرئيسي — مثل Uber Eats |
|
|
| **رسوم توصيل من الزبون** | 0.50 - 2.00 دينار | حسب المسافة — جزء يروح للسائق وجزء لسيرو |
|
|
| **رسوم خدمة** | 5-10% من الزبون | Service fee صغيرة على كل طلب |
|
|
| **إعلانات المتاجر** | متغير | "ظهور مميز" في أعلى القائمة = مدفوع |
|
|
| **Siro Prime** | اشتراك شهري | توصيل مجاني لأعضاء Prime (نفس النظام الحالي!) |
|
|
|
|
---
|
|
|
|
## 🚗 تأثير على السائقين — كيف يشتغل السائق؟
|
|
|
|
### السيناريو المقترح
|
|
|
|
</div>
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
A["Driver goes online"] --> B{"Receive request"}
|
|
B -->|Ride request| C["Normal ride flow<br/>(existing system)"]
|
|
B -->|Delivery request| D["New delivery flow"]
|
|
|
|
D --> E["Navigate to store"]
|
|
E --> F["Confirm pickup<br/>(scan QR / enter code)"]
|
|
F --> G["Navigate to customer"]
|
|
G --> H["Confirm delivery<br/>(customer signature/code)"]
|
|
H --> I["Earn delivery fee"]
|
|
|
|
style D fill:#ff9800,color:#fff
|
|
style E fill:#ff9800,color:#fff
|
|
style F fill:#ff9800,color:#fff
|
|
style G fill:#ff9800,color:#fff
|
|
style H fill:#ff9800,color:#fff
|
|
style I fill:#4caf50,color:#fff
|
|
```
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### نقاط مهمة للسائقين:
|
|
|
|
1. **نفس التطبيق (`siro_driver`)** — نضيف شاشات جديدة للتوصيل
|
|
2. **السائق يختار**: رحلات فقط / توصيل فقط / الاثنين معاً
|
|
3. **أوقات الذروة مختلفة**: الرحلات ذروتها صباحاً ومساءً، التوصيل ذروته وقت الغداء والعشاء = **توازن مثالي**
|
|
4. **نوع السيارة**: حتى سائقي الدراجات النارية يمكنهم التوصيل (فئة جديدة: Bike Delivery)
|
|
|
|
---
|
|
|
|
## 🎯 كيف نسوّقها؟ — استراتيجية الإطلاق
|
|
|
|
### للمستخدمين (الزبائن)
|
|
|
|
| القناة | الأسلوب |
|
|
|:---|:---|
|
|
| **داخل التطبيق** | Banner في الشاشة الرئيسية: "جديد! اطلب أكلك من سيرو 🍔" + إشعار push لكل المستخدمين |
|
|
| **أول طلب مجاني** | "أول توصيل على حسابنا" — أقوى حافز للتجربة |
|
|
| **كوبونات مشتركة** | "اطلب رحلة واحصل على خصم 30% على أول طلب طعام" — cross-selling |
|
|
| **محرك التسويق الحالي** | استخدم `marketing_engine` (Gemini AI comments + Telegram scraper) نفسه للترويج للتوصيل |
|
|
| **Siro Prime** | "اشترك بـ Prime واحصل على توصيل مجاني غير محدود" |
|
|
|
|
### للتجار (المطاعم والمتاجر)
|
|
|
|
| القناة | الأسلوب |
|
|
|:---|:---|
|
|
| **عمولة 0% أول 3 أشهر** | أقوى حافز — "جرّب بدون مخاطرة" |
|
|
| **فريق مبيعات ميداني** | نفس فكرة فريق تسجيل السائقين — يزورون المطاعم |
|
|
| **صفحة "انضم لسيرو"** | Landing page على `siromove.com` للتسجيل الذاتي |
|
|
| **تابلت مجاني** | بعض المنصات تقدم تابلت للمطعم لاستقبال الطلبات — ميزة تنافسية قوية |
|
|
|
|
---
|
|
|
|
## 🔄 مقارنة النماذج — أي نموذج نختار؟
|
|
|
|
### النموذج A: Marketplace كامل (مثل Uber Eats / Talabat)
|
|
|
|
</div>
|
|
|
|
| Pros ✅ | Cons ❌ |
|
|
|:---|:---|
|
|
| Revenue from commission per order | Need to onboard many merchants |
|
|
| Scalable — merchants manage their own data | Complex merchant portal needed |
|
|
| Full control over customer experience | Higher operational cost |
|
|
| Rich data for analytics | Need customer support for merchant issues too |
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### النموذج B: توصيل عام فقط (مثل inDrive Courier)
|
|
|
|
</div>
|
|
|
|
| Pros ✅ | Cons ❌ |
|
|
|:---|:---|
|
|
| Simple — no merchant onboarding needed | Lower order value |
|
|
| Fast to launch (weeks not months) | No menu browsing experience |
|
|
| Works for anything (documents, packages, food) | Can't guarantee food quality/hygiene |
|
|
| Low infrastructure cost | Limited monetization (delivery fee only) |
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### النموذج C: الهجين (الموصى به ✅✅✅)
|
|
|
|
</div>
|
|
|
|
> [!TIP]
|
|
> **Start with Model B (courier) first** — it requires almost zero new infrastructure and can launch within 2-3 weeks. Then build Model A (marketplace) in parallel and launch it when ready.
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
**المرحلة 1 (أسبوعين)**: أطلق "توصيل أي شيء" — الزبون يحدد مكان الاستلام ومكان التوصيل ويكتب وصف. السائق يروح يجيب الشي ويوصله. بسيط!
|
|
|
|
**المرحلة 2 (2-3 أشهر)**: أطلق الـ Marketplace الكامل مع متاجر مسجلة، منيوهات، تتبع حي، لوحة تحكم التاجر.
|
|
|
|
---
|
|
|
|
## 📊 ملخص ما نحتاجه
|
|
|
|
### من ناحية تقنية
|
|
|
|
| المكوّن | الجهد | الأولوية |
|
|
|:---|:---|:---|
|
|
| `deliveryDB` — قاعدة بيانات جديدة | متوسط | P0 |
|
|
| `order_server` — حاوية PHP جديدة لإدارة الطلبات | عالي | P0 |
|
|
| `socket_order` — WebSocket لتتبع الطلبات | متوسط | P0 |
|
|
| شاشات جديدة في `siro_rider` (Tab الطلبات) | عالي | P0 |
|
|
| شاشات جديدة في `siro_driver` (استقبال طلبات التوصيل) | متوسط | P0 |
|
|
| `merchant_dashboard` — لوحة تحكم التاجر (ويب) | عالي | P1 |
|
|
| شاشات جديدة في `siro_service` (دعم طلبات التوصيل) | منخفض | P2 |
|
|
| تطبيق موبايل للتاجر (اختياري) | عالي | P3 |
|
|
|
|
### من ناحية تجارية
|
|
|
|
| المتطلب | التفصيل |
|
|
|:---|:---|
|
|
| **اتفاقيات مع متاجر** | 20-30 متجر كحد أدنى للإطلاق |
|
|
| **تصوير المنيوهات** | فريق يصوّر ويدخل البيانات لأول 20-30 متجر |
|
|
| **تسعير التوصيل** | قرار: ثابت؟ حسب المسافة؟ مجاني فوق حد معين؟ |
|
|
| **تدريب السائقين** | كيف يتعامل مع الطلب (لا يفتح الأكياس، يتعامل بلطف مع التاجر) |
|
|
| **دعم فني** | فريق `siro_service` يحتاج تدريب على حل مشاكل التوصيل |
|
|
|
|
### من ناحية بيانات
|
|
|
|
| النوع | المصدر | الأولوية |
|
|
|:---|:---|:---|
|
|
| بيانات المطاعم والمتاجر | فريق سيرو (أول 30) ← ثم التاجر بنفسه | P0 |
|
|
| قوائم الطعام (المنيو) | فريق سيرو (أول 30) ← ثم التاجر بنفسه | P0 |
|
|
| صور الأصناف | فريق سيرو (تصوير احترافي) ← ثم التاجر بنفسه | P1 |
|
|
| مناطق التوصيل | تعريف تلقائي حسب المسافة من المتجر | P0 |
|
|
| ساعات العمل | التاجر يدخلها | P0 |
|
|
|
|
---
|
|
|
|
## 💡 أفكار إضافية للتميّز
|
|
|
|
1. **"اطلب لصديقك"**: اطلب طعام ووصّله لشخص ثاني (هدية) — ميزة عاطفية قوية
|
|
2. **طلب جماعي**: مجموعة أصدقاء يطلبون من نفس المطعم وكل واحد يدفع حصته
|
|
3. **جدولة الطلب**: "أريد الطلب يوصل الساعة 8 مساءً" — مثل Talabat Schedule
|
|
4. **تقييمات ذكية**: استخدام Gemini لتحليل التقييمات واستخراج نقاط القوة والضعف لكل مطعم
|
|
5. **عروض ذكية**: Gemini يقترح عروض حسب سلوك المستخدم ("عادة تطلب شاورما يوم الجمعة — خصم 20% اليوم!")
|
|
6. **Re-order**: "أعد نفس طلبك الأخير" بضغطة واحدة
|
|
|
|
---
|
|
|
|
## 🚀 الخطط القادمة وخارطة التنفيذ — تسمية الخدمة والهيكلية الإستراتيجية
|
|
|
|
### 🏷️ التسمية التجارية الرسمية للخدمة: **Siro Express | سيرو إكسبرس**
|
|
|
|
تم اختيار اسم **Siro Express (سيرو إكسبرس)** ليكون المظلة الشاملة لخدمات التوصيل، ويندرج تحتها 3 أذرع متخصصة:
|
|
|
|
1. **Siro Courier (سيرو كوريير / توصيل سريع)**: خدمة توصيل الطرود والوثائق والأغراض الشخصية بين نقطتين (Point-to-Point Delivery).
|
|
2. **Siro Eats (سيرو إيتس / طلب الطعام)**: خدمة تصفح المطاعم وطلب الوجبات.
|
|
3. **Siro Market (سيرو ماركت / البقالة والصيدلية)**: خدمة توصيل المستلزمات اليومية والأدوية.
|
|
|
|
---
|
|
|
|
### 🗺️ خارطة الطريق التنفيذية (Phased Implementation Roadmap)
|
|
|
|
</div>
|
|
|
|
```mermaid
|
|
timeline
|
|
title خارطة طريق إطلاق Siro Express
|
|
Phase 1 : Siro Courier (توصيل الأغراض) : إطلاق خدمة point-to-point خلال أسبوعين : اعتماد بنية GPS و Ride-Hailing الحالية
|
|
Phase 2 : Siro Eats (مطاعم البذرة) : إدخال أول 30 مطعم شهير : تفعيل order_server و deliveryDB
|
|
Phase 3 : Merchant Portal & Siro Market : إطلاق لوحة تحكم التجار : التوسع للبقالة والصيدليات
|
|
Phase 4 : AI & Prime Integration : ربط محرك التوصيات الذكي : دمجه مع اشتراكات Siro Prime
|
|
```
|
|
|
|
<div dir="rtl" align="right">
|
|
|
|
### 📑 التوثيق الفني والبرمجي للخطط القادمة (Developer & Architectural Documentation)
|
|
|
|
#### 1. توثيق Phase 1: Siro Courier (توصيل أي شيء)
|
|
- **شاشة التطبيق**: تبويب "توصيل أغراض" في `siro_rider`.
|
|
- **المدخلات**: نقطة الاستلام (Pickup Lat/Lng), نقطة التسليم (Dropoff Lat/Lng), وصف الشحنة (Package Description), القيمة المجهزة إن وجدت (COD amount).
|
|
- **المنطق Backend**: استخدام نفس جدول الرحلات مع `ride_type = 'delivery_courier'`.
|
|
|
|
#### 2. توثيق Phase 2: Siro Eats & Order Lifecycle API
|
|
- **مسارات API المجهزة في `order_server`**:
|
|
- `GET /v1/delivery/stores` - جلب المتاجر حسب النطاق الجغرافي.
|
|
- `GET /v1/delivery/stores/{id}/menu` - جلب المنيو والتصنيفات.
|
|
- `POST /v1/delivery/orders/create` - إنشاء طلب جديد وحجز المبلغ من Wallet.
|
|
- `POST /v1/delivery/merchant/orders/{id}/status` - تحديث حالة الطلب من التاجر.
|
|
- `WS /v1/delivery/ws/track/{order_id}` - قناة التتبع المباشر للطلب.
|
|
|
|
#### 3. توثيق Phase 3: Merchant Portal & Dashboards
|
|
- **بنية Dashboard**: تطبيق web خفيف يبني على Vue/React أو HTML5 vanilla مع WebSockets متصلة بـ `socket_order` لإصدار صوت تنبيه فور ورود طلب جديد للمطعم.
|
|
|
|
#### 4. توثيق Phase 4: Integration with Siro Prime & Gemini AI
|
|
- **Siro Prime**: إلغاء رسوم التوصيل لجميع الطلبات التي تتجاوز حداً أدنى معلناً.
|
|
- **Gemini AI Engine**: تحليل تفضيلات الزبون واقتراح وجبات مخصصة بناءً على التوقيت والموقع والطقس ورصيد المحفظة.
|
|
|
|
</div>
|
|
|
|
> [!NOTE]
|
|
> **Bottom Line**: You don't need to build everything from scratch. ~80% of your infrastructure (drivers, tracking, payments, auth, notifications) is reusable. The new work is primarily: order management logic, merchant-facing tools, and new UI screens in the existing apps. Start with "deliver anything" courier mode for a quick win, then layer the full marketplace on top.
|