قیمت دامنه (انبار پسوند — مثل WHMCS Domain Pricing)
> version: 1.15 | last_updated: 2026-09-29 | audience: admin
مسیر UI
**پنل شرکت** → تنظیمات → **قیمت دامنه** (`/panel/domain-tlds`)
نیاز به لایسنس خانوادهٔ **فروش دامنه** (`domain`).
فروشگاه مشتری (فاز ۲)
فاز ۳ — رجیسترار واقعی
پس از پرداخت، `DomainModule` دیگر فقط شبیهسازی نمیکند. در **سرورهای بیرونی** وقتی نوع اتصال را **دامنه** میگذارید، کمبوباکس رجیسترار میآید و بعد فقط فیلدهای همان رجیسترار نمایش داده میشود. همان سرور را به پسوند وصل کنید (`provisioning_server_id` + در صورت نیاز `auto_register`).
| درایور | کاربرد | فیلدهای مهم اتصال |
|--------|--------|-------------------|
| `api_ir` | `.ir` از طریق [api.ir / WebAlfa](https://www.api.ir/web-service/وب-سرویس-ثبت-دامنه-ir/) | `api_key`, `holder`, `admin`, `tech`, `bill`, `ns1`… |
**خروجی شبکهٔ `api_ir`:** میزبان پیشفرض `api.webalfa.net` است (نه `.ir`). باید **مستقیم** از سرور BSS برود، نه از SOCKS/HTTP پروکسی خارجی (`PROVISIONING_FOREIGN_HTTP_PROXY`). در `OutboundHttpProxy` برای `api.webalfa.net` / `.webalfa.net` / `api.ir` bypass فعال است و پروکسی محیطی هم قطع میشود. اگر DNS داخلی ایران برای `api.webalfa.net` مقدار NXDOMAIN داد، روی سرور در `/etc/hosts` بنویسید: `5.144.130.137 api.webalfa.net`. گواهی فعلی آن میزبان مشکل دارد؛ کلاینت پیشفرض SSL را سختگیرانه verify نمیکند (`verify_ssl=true` در کانفیگ سرور اگر بعداً درست شد).
**وضعیت ۱۴۰۴/۰۹:** رکورد DNS عمومی `api.webalfa.net` حذف شده و IP قدیمی فقط صفحهٔ هاستینگ (`linux37` / HTML 404) برمیگرداند — وبسرویس WebAlfa از سمت آنها بالا نیست. تا وقتی آدرس API جدید ندادهاند، ثبت از صف با پیام «endpoint … در دسترس نیست» میماند؛ یا API URL جدید را در سرور دامنه بگذارید یا رجیسترار را به `systemnic` عوض کنید.
| `systemnic` | `.ir` از طریق SystemNIC (SOAP) | `api_user`, `api_pass`, شناسههای IRNIC، NS |
| `resellerclub` | gTLD بینالمللی (LogicBoxes) | `auth_userid`, `api_key`, `customer_id`, `contact_id`, NS |
| `opensrs` | OpenSRS XML | `username`, `api_key`, contact کامل، NS |
| `joker` | Joker DMAPI | `username`, `password`, `owner_c`…، NS |
| `onlinenic` | OnlineNIC API4 | `user`, `apikey`, `password`, `registrant`, NS |
مسیر کد: `modules/Provisioning/Registrars/` + کلاینتها در `modules/Provisioning/Clients/*DomainClient.php`.
مدیریت بعد از فروش (پورتال)
صفحهٔ مدیریت دامنه برای اشتراکهای `domain`: NS / EPP / قفل / WHOIS privacy — سرویس `DomainServiceManagementService`. API زنده روی همهٔ درایورها (با محدودیتهای .ir و SystemNIC unlock-only). جزئیات مشتری: [`docs/customer/domain-lookup.md`](../customer/domain-lookup.md).
اکشن دستهای روی لیست پسوند
پس از انتخاب چند ردیف:
| اکشن | کار |
|------|-----|
| سرور / ثبت خودکار | `provisioning_server_id` + `auto_register` |
| Grace / Redemption | روز و هزینه (فقط فیلدهای پرشده) |
| فعال / غیرفعال کردن | `is_active` |
پیشنهاد جستجو
روی هر پسوند تیک **پیشنهاد در جستجو** (`suggest_on_search`) هست و از لیست هم عوض میشود. اگر روشن باشد، پایین نتیجهٔ `/domains` همان پسوند هم استعلام WHOIS میشود. اگر خاموش باشد، فقط وقتی مشتری خودش همان پسوند را بنویسد بررسی میشود. پسوندهای موجود پیشفرض روشن میمانند.
همترازی با WHMCS
| WHMCS Domain Pricing | BSS |
|----------------------|-----|
| لیست TLD | `domain_tlds` |
| Register / Renew / Transfer × ۱–۱۰ سال | `domain_tld_prices.amount` |
| ارز | `domain_tlds.currency` = `IRR` یا `USD` |
| خالی / `-1` = غیرفعال | همان |
| Grace / Redemption | روز + هزینه روی TLD (همان `currency`) |
| Auto Registration | `auto_register` + سرور `domain` |
| DNS / Email / ID Protection | فلگ روی TLD |
| ایجاد دستهای | دکمه **ایجاد دستهای** + **نمونه Excel** |
| Registrar API | فاز ۳ ✅ — درایورهای بالا |
| Registrar TLD Sync (کشیدن قیمت از رجیسترار) | هنوز خارج از فاز ۳ |
| Lookup / WHOIS / checkout مشتری | فاز ۲ ✅ — ثبت + انتقال + تمدید |
ارز ریال / دلار
ایجاد دستهای (Excel)
بدون هدر: `extension, register_1y, renew_1y, transfer_1y [, is_active]`
سرویس: [`DomainTldImportService`](../../modules/ProductCatalog/Services/DomainTldImportService.php)