Files
tripz-llc/docs/36-siro-express-delivery.md
Hamza-AyedandClaude Opus 5 75b80bd299 refactor(marketing): تفكيك الموقع إلى وحدات + توحيد الباقات الثلاث
- 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>
2026-07-27 04:53:19 +03:00

29 KiB
Raw Permalink Blame History

🧠 عاصفة ذهنية: خدمة طلب الطعام وتوصيل الأغراض — Siro Express

رأيي الصريح في هذه الخطوة

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.

لماذا هذه الخطوة ذكية جداً؟

  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 المطلوبة

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.

الحاويات الجديدة المطلوبة (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

الجداول الأساسية المطلوبة

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
    }

📱 كيف نعرضها داخل التطبيق؟ — استراتيجية العرض

الخيار الأول: تبويب جديد داخل siro_rider (الموصى به ✅)

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.

المنطق: المستخدم يفتح التطبيق ← يشوف تبويبين رئيسيين: "رحلات" و "طلبات" (أو "سيرو إيتس" / "سيرو ماركت")

تجربة المستخدم المقترحة

الشاشة الرئيسية (siro_rider)
├── 🚗 رحلات (Tab الحالي — ride hailing)
└── 🛒 طلبات (Tab جديد — delivery)
     ├── 🔍 بحث عن مطعم/متجر
     ├── 📂 تصنيفات
     │    ├── 🍔 مطاعم
     │    ├── 🥬 سوبرماركت / بقالة  
     │    ├── 💊 صيدليات
     │    ├── 🎁 هدايا وزهور
     │    └── 📦 أي شيء (توصيل عام)
     ├── 🔥 الأكثر طلباً (trending)
     ├── ⭐ الأعلى تقييماً
     ├── 💰 عروض وخصومات
     └── 📍 القريب منك

تدفق الطلب

اختيار متجر → تصفح المنيو → إضافة للسلة → مراجعة الطلب
→ اختيار العنوان (نفس خريطة الرحلات!) → اختيار طريقة الدفع (نفس المحافظ!)
→ تأكيد الطلب → تتبع مباشر (WebSocket)
→ [المتجر يقبل] → [جاري التحضير] → [السائق في الطريق للمتجر]
→ [السائق استلم الطلب] → [السائق في الطريق لك] → [تم التوصيل]
→ تقييم المتجر + تقييم السائق

الخيار الثاني: قسم "توصيل" داخل الخريطة (بديل)

نفس خريطة الرحلات، لكن بدل ما يختار وجهة، يختار "أرسل سائق يجيبلي شي" — توصيل عام بدون متجر محدد (مثل inDrive Courier)

توصيتي: ادمج الخيارين!

  • Tab "طلبات" = مطاعم ومتاجر مسجلة (مثل Uber Eats)
  • خيار "توصيل أي شيء" داخل نفس التبويب = توصيل عام بدون متجر (مثل inDrive Courier)

🏪 من يعبّي البيانات؟ — نموذج تعبئة المتاجر

❌ لا يمكنك تعبئة كل شيء بنفسك (لن يتسع الوقت)

✅ النموذج المُهجَّن (Hybrid) — الأنسب لسيرو

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

التفصيل:

المرحلة 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 (نفس النظام الحالي!)

🚗 تأثير على السائقين — كيف يشتغل السائق؟

السيناريو المقترح

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

نقاط مهمة للسائقين:

  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)

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

النموذج B: توصيل عام فقط (مثل inDrive Courier)

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)

النموذج C: الهجين (الموصى به ✅✅✅)

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.

المرحلة 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)

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

📑 التوثيق الفني والبرمجي للخطط القادمة (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: تحليل تفضيلات الزبون واقتراح وجبات مخصصة بناءً على التوقيت والموقع والطقس ورصيد المحفظة.

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.