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

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

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



> version: 1.14 | last_updated: 2026-09-29 | audience: admin

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

انواع مجاز ثبت‌نام پورتال



بالای صفحه، چندانتخابی **نوع ثبت‌نام** (حقیقی / حقوقی / اتباع خارجی):

  • فقط انواع تیک‌خورده در پاپ‌آپ ثبت‌نام صفحه ورود (`/login`) نمایش داده می‌شوند

  • ذخیره همان لحظه است (مثل تیک‌های فیلد)

  • حداقل یکی باید انتخاب بماند؛ پیش‌فرض هر سه نوع فعال است

  • ذخیره در `tenants.settings.portal_register_types`


  • دو سطح تنظیم



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

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

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

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



    | فیلد | قاعده |
    |------|--------|
    | **کد ملی** (حقیقی) | ۱۰ رقم + رقم کنترل (`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 سرویس



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

    مرتبط



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

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

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