Role-based Display Control for Item Name vs Item Code Across ERPNext

We would like to request guidance regarding role-based display preferences for Item fields.

We have two different user roles with distinct display:

  1. Role A:
    Users should see Item Name displayed everywhere in the system instead of Item Code.

  2. Role B:
    Users should see Item Code displayed everywhere instead of Item Name.

Scope:

This behavior is expected consistently across:

  • All DocTypes (including child tables)

  • Link field dropdown suggestions

  • Reports

  • Search results and global search

  • Print formats (if applicable)

Current Attempt:

We have explored the “Show/Hide (Mask)” functionality using Permission Levels, but it does not provide role-based control for switching between Item Name and Item Code dynamically across the system.

Challenges:

  • There is no built-in role-based configuration to toggle between Item Name and Item Code display globally.

  • Custom scripts or minor configurations are not achieving consistent results across all modules.

Request:

Could you please advise:

  1. Is there any standard feature or recommended approach to achieve role-based display control for Item Name vs Item Code?

  2. If not, what would be the best practice (customization or override) to implement this behavior system-wide?

  3. Are there any existing hooks, settings, or roadmap plans supporting this requirement?

We would appreciate your guidance or any alternative approach to achieve this functionality efficiently.

Hi @Yo_fun

Perm Level is the solution.

Also redefine Search criteria by customizing item doctype.

Hi, So it will work in report also?

@bhaveshmidocean

Please check this;