پیکربندی فیلدهای مشتری

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

پیکربندی فیلدهای مشتری



> version: 1.13 | last_updated: 2026-09-20 | audience: admin

مسیر: **پنل شرکت → تنظیمات → تنظیمات اصلی → تب فیلدهای مشتری** (`/panel/main-settings/tenant-customer-fields`)

دو سطح تنظیم



| سطح | کجا اعمال می‌شود |
|------|------------------|
| **ثبت‌نام نماینده / مشتری** | ثبت‌نام پورتال توسط مشتری + **ثبت مشتری جدید** توسط نماینده |
| **ویرایش پروفایل نماینده / مشتری** | صفحه پروفایل مشتری بعد از ورود + **فرم ویرایش مشتری** در پنل نماینده |

مثال: کد ملی در ثبت‌نام **اجباری و قابل پر کردن**؛ در ویرایش پروفایل **نمایش + غیرقابل ویرایش** (هم برای مشتری، هم برای نماینده).

**پست الکترونیک** در گروه تماس قابل پیکربندی است (پیش‌فرض اجباری در ثبت و ویرایش).

اعتبارسنجی استاندارد فیلدها



| فیلد | قاعده |
|------|--------|
| **کد ملی** (حقیقی) | ۱۰ رقم + رقم کنترل (`NationalIdValidator`) |
| **شناسه ملی** (حقوقی) | ۱۱ رقم + رقم کنترل سازمانی |
| **ایمیل** | `email:filter` |
| **کد پستی** | دقیقاً ۱۰ رقم (`/^\d{10}$/`) |

فیلتر بر اساس نوع مشتری



هر تب (حقیقی / حقوقی / اتباع) فقط فیلدهای همان نوع را نشان می‌دهد؛ مثلاً بخش **اطلاعات حقوقی** در تب حقیقی نمی‌آید. محدودیت با `party_types` در `config/bss_customer_fields.php` است.

برای **حقوقی** بخش «اطلاعات هویتی» نیست؛ شناسه ملی داخل **اطلاعات حقوقی** است. نام/نام‌خانوادگی فقط برای حقیقی و اتباع است. فیلدهای انگلیسی `SazmanId` و `Summary` در UI نیستند. برای حقوقی **شماره همراه** در تماس نیست — **موبایل نماینده** همان تماس اصلی است. **نوع شناسه نماینده** فیلد فرم نیست؛ ایرانی `0` و اتباع `1` خودکار پاس می‌شود. گروه **اطلاعات نماینده** برای حقوقی و اتباع مشترک است (اتباع: ملیت نماینده هم دارد؛ حقوقی: شماره شناسنامه نماینده).

**کشور / ملیت:** فقط برای **اتباع**. حقیقی و حقوقی همیشه ایرانی‌اند (`country=ایران`, `nationality=IRN`, `is_iranian=1`) و فیلد ملیت در UI حقوقی نمی‌آید.

**استان / شهر:** حقیقی و حقوقی از لیست ایران (آبشاری)؛ اتباع متن آزاد.

**تاریخ:** حقیقی و حقوقی تقویم **شمسی**؛ اتباع تقویم **میلادی** (Flatpickr) در پورتال و نماینده.

تیک‌های هر فیلد



| تیک | معنی |
|-----|------|
| **نمایش در ثبت** | در ثبت‌نام پورتال + ثبت نماینده دیده شود |
| **اجباری** | در ثبت اجباری است؛ اگر در ویرایش هم قابل‌ویرایش باشد همان‌جا هم اجباری است |
| **نمایش در ویرایش** | در پروفایل مشتری + ویرایش نماینده دیده شود |
| **قابل ویرایش** | در ویرایش قابل تغییر باشد (خاموش = فقط‌خواندنی، مثلاً کد ملی) |

تیک جدا برای «اجباری ویرایش» وجود ندارد.

هر تغییر تیک **همان لحظه** در دیتابیس ذخیره می‌شود و در ثبت‌نام نماینده / پورتال اعمال می‌گردد.

نگاشت داخلی (سازگاری)



| تیک‌ها | مقدار ذخیره‌شده |
|--------|------------------|
| نمایش خاموش | `hidden` |
| نمایش + اختیاری + قابل ویرایش | `optional` |
| نمایش + اجباری + قابل ویرایش | `required` (اجباری از سطح ثبت کپی می‌شود) |
| نمایش + غیرقابل ویرایش (ویرایش پروفایل) | `readonly` |

ذخیره همچنان در `tenants.settings.customer_fields` است.

API سرویس



| متد | سطح |
|-----|------|
| `configurableKeysFor` / `fieldAppliesToType` | فیلتر نوع مشتری |
| `visibleForRegister` / `staffCreateValidationRules` / `visibleForStaff` | ثبت |
| `visibleForProfile` / `profileValidationRules` | پروفایل مشتری |
| `visibleForStaffEdit` / `staffEditValidationRules` / `staffEditableKeys` | ویرایش توسط نماینده |

مرتبط



  • [ثبت مشتری CRM](create-customer.md)

  • [ثبت‌نام پورتال](../customer/register.md)

  • [ثبت مشتری ریسلر](../reseller/create-customer.md)