فیلدهای سفارشی محصول (Custom Fields)
| فیلد | مقدار |
|------|--------|
| **نسخه** | 1.9 |
| **آخرین بروزرسانی** | 2026-09-20 |
| **ماژول** | Product Catalog |
| **مخاطب** | ادمین |
---
هدف
برای هر محصول میتوانید فیلدهایی تعریف کنید که موقع ثبت سفارش از مشتری، نماینده یا ادمین پرسیده شود.
مثال: شماره تلفن ADSL، MAC مودم، دامنه، توضیحات نصب.
---
تفاوت با فیلدهای دیگر
| نوع | کاربرد |
|-----|--------|
| **فیلدهای سفارش (Custom Fields)** | داده مخصوص هر سفارش/سرویس |
| **تنظیمات Provision** | تنظیم ثابت پلن (کردیت، سرعت، …) |
| **مشخصات فنی** | فقط نمایش در کاتالوگ |
---
تعریف فیلد روی محصول
| فیلد | توضیح |
|------|--------|
| نام | برچسب فارسی (مثلاً شماره خط) |
| کلید | کلید فنی یکتا در همان محصول (مثلاً `phone_line`) |
| نوع | متن کوتاه، چندخطی، لیست انتخابی، چکباکس، رمز عبور، **نقشه (map.ir)** |
| گزینهها | فقط برای لیست انتخابی |
| اجباری | اگر روشن باشد بدون مقدار سفارش ثبت نمیشود |
| فقط ادمین/نماینده | در checkout مشتری دیده نمیشود |
| نمایش روی فاکتور | برای فاز بعد آماده است |
---
کجا پر میشود؟
---
کجا ذخیره و دیده میشود؟
---
تعریف در پنل
مسیر: محصول → تب **فیلدهای سفارش**
| ماژول / انبار | فیلدهای پیشفرض |
|---------------|-----------------|
| `cpanel` / سایر هاست (`directadmin`, `plesk`, …) | `domain` (اجباری) — اگر روی محصول تعریف نشده باشد، هنگام خرید بهصورت خودکار تزریق میشود؛ تکراری روی سرویس در انتظار/فعال/معلق و سفارش باز رد میشود (terminated آزاد است) |
| `nocps` | hostname, profile, root_password, admin_user, disk_addon, packages_addon |
| `proxmox` / `virtualizor` / `vmware` / `autovm` | `hostname` (اجباری) + `iso` |
| پوشش Wireless / FTTH (افزونه) | location (نقشه) |
تشخیص هاست: `provisioning_module` ∈ لیست `HostingPanelSsoService::HOSTING_MODULES`.
پس از ایجاد اکانت، `username` / `password` / `domain` در `subscriptions.provisioning_data` ذخیره و در پورتال مشتری (جزئیات سرویس + پنل هاست) نمایش داده میشود.
هر فیلد میتواند **توضیحات** داشته باشد؛ اگر پر باشد زیر عنوان فیلد هنگام خرید نمایش داده میشود.
---
نکته
در این فاز، فیلدهای سفارشی بهصورت خودکار به NetBill/IBSng ارسال نمیشوند. نگاشت به Provision بعداً اضافه میشود.
---
الگوی پیشنهادی برای VPS
| مورد | محل |
|------|------|
| نام هاست (`hostname`) | **Custom Field اجباری** — نام VM. روی Proxmox معمولاً همان نام کاربری سرویس هم میشود؛ روی کلود عمومی (Linode و …) ورود SSH = `root`/`Administrator` |
| نام کاربری سرویس (`guest_username`) | فیلد محصول (Provision) — Proxmox: اگر hostname نباشد؛ کلود: پیشفرض ورود |
| نوع/رمز سرویس (`password_type`, `root_password`) | فیلد محصول (Provision) |
| سیستمعامل / ISO | **Custom Field** با کلید `iso` |
گزینههای ISO را به شکل `شناسه:نام` بنویسید تا مشتری نام را ببیند و Provision فقط شناسه را بخواند:
اگر مشتری انتخاب نکند، پیشفرض محصول (`template_vmid` یا `iso_image` / `osid` / `template_id`) استفاده میشود. نصب از فایل ISO در Proxmox از کنسول است، نه cloud-init.
---
الگوی پیشنهادی برای Dedicated (NOC-PS)
| مورد | محل |
|------|------|
| استخر سرور / assign_mode / reboot | فیلد محصول (Provision) — ادمین |
| Hostname | **Custom Field** با کلید `hostname` |
| پروفایل نصب OS | **Custom Field** با کلید `profile` (گزینه `id:نام`) |
| رمز root | **Custom Field** با کلید `root_password` (اختیاری) |
| کاربر اضافی / timezone / disk_addon | Custom Field (اختیاری) |
| MAC | Custom Field `mac` فقط اگر انتخاب سرور دستی باشد |
جزئیات: [dedicated-nocps-provisioning.md](dedicated-nocps-provisioning.md)
---
فیلد نقشه
برای انتخاب موقعیت نصب/آدرس روی نقشه، نوع فیلد را **نقشه (map.ir)** بگذارید.
راهنمای اتصال: [mapir-settings.md](mapir-settings.md)