`/domains` — جستجو با تب ثبت / انتقال / تمدید (یا کارت در `/catalog`)
انتخاب سال از قیمت ماتریس همان اکشن؛ برای انتقال کد EPP در صورت نیاز
`/domains/checkout?domain=…&years=…&action=register|transfer|renew` — تأیید و پرداخت (نیاز به ورود مشتری)
رفتار
تبها: **ثبت** / **انتقال** / **تمدید**
ثبت: WHOIS آزاد + قیمت register
پایین نتیجه، فقط پسوندهایی میآیند که در قیمت دامنه تیک **پیشنهاد در جستجو** دارند و برای همانها هم WHOIS زده میشود
انتقال: WHOIS ثبتشده + قیمت transfer + کد EPP در صورت `epp_required`
تمدید: فقط دامنهٔ فعال در حساب مشتری + قیمت renew؛ بعد از پرداخت همان اشتراک تمدید میشود (اشتراک جدید ساخته نمیشود)
استعلام موجودی با **WHOIS / RDAP** + یکتایی داخل BSS
اگر همان FQDN در اشتراک با وضعیت **در حال بررسی / فعال / معلق** (یا سفارش باز بدون اشتراک) باشد، نتیجه `bss_taken` است: نشان «موجود در سیستم»، بدون قیمت/دکمه ثبت؛ فقط دامنهٔ `terminated` آزاد برای ثبت مجدد است
پسوند `.ir` در RDAP سرویس ندارد. پاسخ «سرویس RDAP نیست» آزاد حساب نمیشود و موجودی از `whois.nic.ir` خوانده میشود (`no entries found` = آزاد)
قیمت از **قیمت دامنه** پنل شرکت (`DomainPricingService::priceIrr`) — همیشه به **ریال** (بدون نمایش دلار)
سفارش روی محصول نوع دامنه ساخته میشود
بعد از پرداخت: اگر روی پسوند `auto_register` روشن و سرور رجیسترار تنظیم شده باشد، ثبت/انتقال/تمدید به درایور رجیسترار میرود؛ وگرنه در صف دستی میماند
مدیریت سرویس دامنه (پورتال / نماینده)
از صفحهٔ **مدیریت سرویس** دکمهٔ **مدیریت دامنه** (`/portal/subscriptions/{id}/domain-panel`):
| امکان | رفتار |
|--------|--------|
| نیمسرورها | ویرایش NS1–NS4؛ ذخیره در BSS و ارسال زنده به رجیسترار در صورت پشتیبانی |
| کد EPP | ResellerClub / OpenSRS / Joker / OnlineNIC؛ .ir معمولاً ندارد |
| قفل دامنه | ResellerClub / OpenSRS / Joker / OnlineNIC؛ SystemNIC فقط بازکردن قفل |
| حریم خصوصی WHOIS | بینالمللی (ResellerClub / OpenSRS / Joker / OnlineNIC ID Shield)؛ .ir ندارد |
| شناسه تماس | نمایش read-only (holder/admin/tech/bill از کانفیگ سرور/متادیتا) |
حداقل یک محصول فعال از نوع **دامنه** (یا محصول با ماژول `domain`) در کاتالوگ
برای ثبت خودکار: سرور Provision دامنه + `registrar_driver` و اتصال پسوند به همان سرور (جزئیات در [`docs/admin/domain-pricing.md`](../admin/domain-pricing.md))