کارتابل فروش سرور اختصاصی

← بازگشت به راهنما

کارتابل فروش سرور اختصاصی



> version: 1.2 | last_updated: 2026-08-11 | audience: admin

هدف



صف کار فروش Dedicated زیر دستهٔ دیتاسنتر (زیردسته `dedicated`) — بدون پورت ADSL و بدون NetBill.

Pipeline: `dedicated-sales` · Seeder: `DedicatedSalesWorkflowCaseSeeder`

مسیر موفق



  • احراز هویت (دستی)

  • پرداخت — `order.check_payment`

  • شاهکار **put** — `http.shahkar_put` (`service.type = 26` از محصول)

  • نصب / تخصیص سرور:

  • - **خودکار (پیشنهادی):** محصول با `inventory_kind = datacenter_server` → رزرو هنگام سفارش؛ تخصیص نهایی با `subscription.activate` یا اکشن `inventory.dc_server_allocate`
    - **دستی:** دکمه **«تخصیص تجهیز دیتاسنتر»** در کارتابل (تأیید رزرو یا انتخاب سرور دیگر)
  • فعال‌سازی BSS — `subscription.activate` → `order.complete`


  • **استعلام estelaam در این فرایند نیست.**

    اتصال DCIM / انبار



    روی محصول Dedicated (شاهکار type 26):

    | فیلد | نقش |
    |------|-----|
    | `inventory_kind = datacenter_server` | رزرو خودکار سرور آزاد هنگام خرید (مشتری/ریسلر) |
    | `provisioning_config.datacenter_site_id` | سایت پیش‌فرض شاهکار + فیلتر انبار |
    | `dc_match_min_cpu_cores` / `dc_match_min_ram_gb` / `dc_match_manufacturer` | معیار تطبیق سرور |

    جریان:

  • checkout/ریسلر: `assertStock` → `reserveForOrder` → `linkSubscriptions`

  • کارتابل: نمایش رزرو در خلاصه کیس؛ دکمه تخصیص برای تأیید/عوض کردن

  • `subscription.activate` یا fulfill: `allocateForSubscription` (Reserved → Allocated)

  • `order.cancel` / `order.cancel_cleanup`: آزادسازی رزرو/تخصیص


  • اکشن‌های workflow (اختیاری روی وضعیت):

  • `inventory.dc_server_reserve`

  • `inventory.dc_server_allocate`

  • `inventory.dc_server_release`


  • پس از تخصیص: `subscription.metadata.dc_device_id` / نام / محل رک / `dc_server_allocated`

    جزئیات انبار: [dcim-datacenter-manager.md](./dcim-datacenter-manager.md)

    کلاسه شاهکار



    پس از put موفق، شناسهٔ کلاسه در این‌جا ذخیره می‌شود:

  • `subscription.metadata.shahkar_class_id`

  • `subscription.provisioning_data.shahkar_class_id`

  • `party.metadata.shahkar_class_id` (سازگاری)


  • در مشخصات سرویس پورتال/ریسلر با برچسب **کلاسه شاهکار** نمایش داده می‌شود.

    روی محصول: `provisioning_config.shahkar_service_type = 26`.

    مسیر ناموفق



    هر شکست مرحله → دپارتمان **بررسی عدم انجام**:

    | وضعیت بررسی | معنی |
    |-------------|------|
    | منتظر بررسی | اپراتور تصمیم می‌گیرد |
    | رفع شد — بازگشت به مرحله | خودکار (`workflow.resume_failed_stage`) → waiting همان مرحلهٔ شکست‌خورده + اجرای دوبارهٔ on_enter |
    | ارسال به لغو و برگشت | خودکار → دپارتمان لغو |

    نگاشت شکست → waiting: مثلاً `dedicated-payment-failed` → `dedicated-waiting-payment`؛ برای اجاره فضا `dcspace-*-failed` → `dcspace-waiting-*` (از تاریخچه + `on_failure_status_id`).

    دپارتمان **لغو و برگشت هزینه**:

  • `credit_note.refund_paid_to_wallet` (اگر مبلغ پرداخت‌شده صفر باشد، رد می‌شود و ادامه می‌دهد)

  • `order.cancel_cleanup`

  • وضعیت بسته «سفارش لغو شد»


  • Seed



    ```bash
    cd /home/bsshostkhaneh/bss
    /opt/cpanel/ea-php83/root/usr/bin/php artisan db:seed \
    --class='Modules\Order\Database\Seeders\DedicatedSalesWorkflowCaseSeeder' --force
    ```

    برای افزودن اکشن‌های `inventory.dc_server_*` به کاتالوگ:

    ```bash
    /opt/cpanel/ea-php83/root/usr/bin/php artisan db:seed \
    --class='Modules\Order\Database\Seeders\WorkflowActionSeeder' --force
    ```

    Seeder دستهٔ موجود با محصول Dedicated را ترجیح می‌دهد (مثلاً `servers-dedicate`)؛ در غیر این صورت زیردسته `dedicated` زیر `datacenter` ساخته می‌شود.

    مرتبط



  • [dcim-datacenter-manager.md](./dcim-datacenter-manager.md) — انبار دیتاسنتر، تخصیص تجهیز، SNMP

  • [product-addons.md](./product-addons.md) — اتصال انبار سرور روی محصول اصلی

  • [workflow-actions.md](./workflow-actions.md)

  • [shahkar-workflow-actions.md](./shahkar-workflow-actions.md)

  • [dedicated-nocps-provisioning.md](./dedicated-nocps-provisioning.md) — پروویژن NOC-PS (در این نسخهٔ کارتابل هنوز دستی است)