BSS HostKhaneh

ساخت دسته‌بندی محصول

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

ساخت دسته‌بندی محصول



| فیلد | مقدار |
|------|--------|
| **نسخه** | 1.20 |
| **آخرین بروزرسانی** | 2026-09-20 |
| **ماژول** | Product Catalog |
| **فاز** | 1 |
| **مخاطب** | ادمین |

---

هدف



دسته‌بندی‌ها سرویس‌ها را گروه‌بندی می‌کنند: اینترنت، دیتاسنتر، هاستینگ، اپراتوری و ...

ساخت و ویرایش در پنل ادمین:

  • **ساخت:** ویزارد ۴ مرحله‌ای

  • **ویرایش:** مثل محصول با **تب** — مستقیم هر بخش (مثلاً فقط «نمایش در کاتالوگ») بدون طی دوباره مراحل


  • ---

    مراحل



    ۱. ورود به پنل



  • به `https://bss.hostkhaneh.com/admin` بروید.

  • منوی **تنظیمات → دسته‌بندی محصول**

  • لیست به‌صورت **درختی و جمع‌شونده** است: کنار هر دستهٔ دارای زیردسته دکمهٔ ▼/◀ برای باز و بسته کردن (کلیک روی فلش وارد ویرایش نمی‌شود؛ ستون نام `disabledClick` است)؛ دکمه‌های هدر **باز کردن همه** / **بستن همه**. وضعیت جمع‌شدگی در session نگه داشته می‌شود. ستون «والد» پیش‌فرض مخفی است.

  • **دسته جدید** را بزنید.


  • کپی از دسته



    در همان لیست:

  • دکمه هدر **کپی از دسته**، یا روی ردیف **کپی**

  • **دسته مبدأ** را انتخاب کنید (در کپی ردیف از قبل پر است)

  • **نام جدید** را وارد کنید

  • در صورت نیاز، **کپی محصولات و پلن‌های این دسته** را روشن بگذارید (پیش‌فرض روشن)


  • کپی شامل تنظیمات دسته (مالیات، پرداخت، سیاست پلن/تمدید، کارتابل، اعلان‌ها و …) است. محصولات مستقیم همان دسته با فیلدهای سفارش، گزینه‌های قابل تنظیم، لینک افزونه/تمدید و تنظیمات Provision کپی می‌شوند؛ `slug` یکتا می‌شود. زیردسته‌ها کپی نمی‌شوند.

    ۲. مراحل ساخت



    | مرحله | محتوا |
    |-------|--------|
    | ۱. اطلاعات دسته | نام، slug، والد، فعال + نمایش کاتالوگ + **سیاست تغییر پلن و نحوه تمدید** |
    | ۲. مالیات و پرداخت | مالیات + روش‌های پرداخت + صدور صورتحساب |
    | ۳. کارتابل عملیاتی | فروش / ارتقاء / کاهش / جمع‌آوری — هر کدام اختیاری |
    | ۴. اعلان‌ها | انتخاب تمپلیت نوتیفیکیشن برای رویدادها + اخطار چندمرحله‌ای عدم پرداخت |

    اعلان‌ها (تمپلیت)



    تمپلیت‌ها را از **تنظیمات → تمپلیت اعلان** بسازید (متن ایمیل با TinyMCE؛ جایگزین‌ها در انتهای فرم)، سپس روی دسته وصل کنید:

    | رویداد | توضیح |
    |--------|--------|
    | سفارش | پس از ثبت سفارش |
    | فعال‌سازی سرویس | وقتی سرویس فعال می‌شود |
    | معلق شدن سرویس | تعلیق |
    | جمع‌آوری سرویس | درخواست جمع‌آوری |
    | ایجاد فاکتور خرید / تمدید | صدور فاکتور |
    | فاکتور پرداخت‌شده / کنسل‌شده | تغییر وضعیت فاکتور |
    | اطلاعات سرویس | مشخصات (مثلاً نام کاربری) |
    | اخطار عدم پرداخت | چند مرحله با «روز تأخیر» و تمپلیت جدا |

    خالی گذاشتن = متن پیش‌فرض سیستم.

    نمایش در کاتالوگ



    دسته همیشه در پنل ادمین می‌ماند. با **عدم نمایش**:

    | گزینه | اثر |
    |-------|------|
    | عدم نمایش به مشتری | از فروشگاه و پورتال مشتری پنهان می‌شود |
    | عدم نمایش به نماینده | از کاتالوگ/سفارش‌گیری ریسلر پنهان می‌شود |

    می‌توانید مثلاً دسته را فقط برای نماینده نشان دهید، یا موقتاً از هر دو مخفی کنید بدون حذف از سیستم.

    سیاست تغییر پلن و نحوه تمدید



    در تب **اطلاعات دسته** بخش **سیاست تغییر پلن و تمدید**:

    | فیلد | پیش‌فرض | اثر |
    |------|---------|-----|
    | **نحوه تمدید** (`renewal_mode`) | تمدید توسط مشتری | `customer` = مشتری از پورتال تمدید می‌کند؛ منو «تمدید سرویس»؛ پلن فعلی در لیست هست. `automatic` = تمدید خودکار؛ منوی پورتال «ارتقا / کاهش»؛ پلن فعلی در لیست نیست؛ اشتراک جدید با `auto_renew=true`. اگر هیچ پلن میان‌دورهٔ مجازی نباشد (مثلاً ارتقا و کاهش هر دو مسدود)، منو غیرفعال است |
    | **صدور فاکتور چند روز قبل** (`renewal_invoice_days_before`) | ۰ | فقط وقتی تمدید خودکار است؛ چند روز قبل از `next_billing_at` فاکتور تمدید کرون صادر شود |
    | **اجازه کاهش پلن** (`allow_plan_downgrade`) | روشن | اگر خاموش باشد، مشتری و ریسلر نمی‌توانند به پلن ارزان‌تر بروند (تمدید دوره بعد و میان‌دوره) |
    | **برگشت مبلغ بستانکاری هنگام کاهش** (`refund_downgrade_credit`) | روشن | فقط وقتی کاهش مجاز است دیده می‌شود. روشن = فاکتور برگشت از فروش `RET-` + واریز کیف پول. خاموش = فقط پلن عوض می‌شود، مبلغی برنمی‌گردد |
    | **اجازه ارتقا در همین دوره** (`allow_mid_cycle_plan_upgrade`) | روشن | خاموش = گزینه «تغییر پلن در همین دوره» برای پلن گران‌تر (مابه‌التفاوت) مسدود؛ «تمدید دوره بعد» با پلن گران‌تر همچنان مجاز است |

    سیاست از **دستهٔ پلن فعلی** اشتراک خوانده می‌شود.

    نمایش خطوط صفر در فاکتور



    در بخش **صدور صورتحساب**:

    | فیلد | پیش‌فرض | اثر |
    |------|---------|-----|
    | **نمایش آیتم‌های با مبلغ صفر** (`show_zero_amount_invoice_lines`) | روشن | اگر خاموش باشد، هنگام صدور فاکتور/پیش‌فاکتور از سفارش، خطوطی که مبلغ کل‌شان صفر است روی سند نمی‌آیند (مثلاً محصول رایگان کنار آیتم پولی) |

    سیاست از **دستهٔ محصول اصلی** سفارش خوانده می‌شود.
    اسناد قبلی هم با باز شدن فاکتور/پیش‌فاکتور (یا صدور مجدد از سفارش) هم‌راستا می‌شوند و خطوط صفر حذف می‌گردند.

    کارتابل عملیاتی



    برای **هر مقصد** می‌توانید کارتابل جدا بسازید (روی دستهٔ سرویس اصلی، نه افزونه):

    | مقصد | چه زمانی کار باز می‌شود |
    |------|-------------------------|
    | فروش سرویس | سفارش فروش جدید |
    | ارتقای سرویس | افزودن افزونه / گزینه قابل تنظیم روی سرویس فعال |
    | کاهش سرویس | حذف افزونه / کاهش روی سرویس فعال |
    | جمع‌آوری سرویس | درخواست جمع‌آوری از پورتال یا ریسلر |

    کارتابل از **دستهٔ همان محصول سرویس** خوانده می‌شود (نه دستهٔ والد/هم‌نام). مثلاً اگر پلن Hestia داخل دسته «سرور Cpanel» باشد، جمع‌آوری باید روی همان دسته روشن شود — تنظیم روی دستهٔ دیگر (مثل «هاستینگ») کافی نیست.

    دکمهٔ «درخواست جمع‌آوری» در پورتال/ریسلر فقط وقتی دیده می‌شود که کارتابل جمع‌آوری همان دسته **روشن و کامل** باشد (مسیر + دپارتمان + وضعیت). نوع سرویس (هاست / VPS / …) به‌تنهایی دکمه را نشان یا مخفی نمی‌کند.

    در مسیر مشترک جمع‌آوری (pipeline 7) پس از تأیید، اول `provisioning.terminate` (حذف از سرور مقصد) و بعد `subscription.terminate` (قطع در BSS) اجرا می‌شود — جزئیات: [workflow-actions.md](./workflow-actions.md).

    | فیلد | توضیح |
    |------|--------|
    | ساخت خودکار کارتابل | فعال/غیرفعال per مقصد |
    | Workflow محصول | مسیر دپارتمان/وضعیت |
    | دپارتمان شروع / وضعیت اولیه | نقطه ورود کار |
    | قالب موضوع | `{product}` و `{order}` |

    **رفتار:**
  • کارتابل **روشن** برای آن مقصد → اشتراک/سفارش Pending یا InProgress؛ تکمیل از کارتابل

  • کارتابل **خاموش** → مسیر فوری (مثل قبل، بدون تیکت)


  • ابتدا در **Workflow محصول** مسیر را با purpose مناسب بسازید، بعد اینجا وصل کنید. جزئیات: [Workflow و گزارش‌گیری](workflow-reporting.md)

    ---

    نتیجه



    دسته در فروشگاه (`/catalog`) نمایش داده می‌شود.

    ---

    مرتبط



  • [تست فرایند عملیاتی ADSL](adsl-workflow-case-test.md)

  • [تعریف محصول و پلن](create-product.md)