【VtigerCRMカスタマイズ】「名・姓」逆転問題を完全解決!顧客・担当者名を日本式の「姓・名」表記にする方法

VtigerCRMCRM

海外製オープンソースCRM「VtigerCRM」を導入した際、日本のユーザーが真っ先に違和感を覚えるのが「氏名の並び順(名・姓)」です。

欧米仕様のまま運用すると、以下のような問題が発生します。

  • 一覧画面(ListView)で「太郎 山田」と表示され、視認性が悪く探しにくい
  • 関連リストやポップアップ選択画面でも「名 姓」の順で並んでしまう
  • 帳票(PDF見積書・請求書)やメールテンプレートの宛名差し込みで順番が狂う
  • 営業やサポートの現場から「使いにくい」と定着の妨げになる

本記事では、VtigerCRMにおける「姓名順序問題」が発生する構造的な原因と、システム全体で自然な「姓 名」順へ修正・対応するための具体的な手法を分かりやすく解説します。

1. なぜ「名・姓」になってしまうのか?(構造的な背景)

VtigerCRMのデータベースおよびプログラム内部では、氏名を以下の2つのフィールドで個別管理しています。

  • firstname(名)
  • lastname(姓 / 必須項目)

英語圏では [firstname] [lastname] の順で結合して表示するのが標準仕様となっているため、コアの表示ロジックやテンプレート(Smarty等)でそのまま連結処理が走ると、画面上で「名 姓」になってしまいます。

これを「日本式(lastname + firstname)」に切り替えるには、画面表示(Smarty/UI)側データ取得(PHPモデル/エンティティ)側 の双方で対策を講じる必要があります。

2. 姓名の順序を修正する3つのアプローチ

環境や運用方針(コア改修の可否、予算、バージョンアップ方針)に応じて、以下の3通りの解決策があります。

アプローチ①:表示用テンプレート・Smartyレイアウトの調整(UI改善)

一覧画面や詳細画面の描画テンプレート(.tpl ファイル)を調整し、画面上の配置順を「姓 ➡ 名」へ入れ替えます。

  • 対象ファイルの例:
    layouts/v7/modules/Vtiger/uitypes/Name.tpl や各モジュールの詳細・編集テンプレート
  • ポイント:
    入力フォームの配置順(編集画面)をレイアウトエディタまたはテンプレート上で「姓(Last Name)」を左・上に、「名(First Name)」を右・下に再配置します。

アプローチ②:エンティティ表示名生成ロジックの調整(PHP側)

一覧画面のリンクテキスト、関連リスト、ルックアップ検索のポップアップなどで表示される複合名称(label / entityname)の生成処理をカスタマイズします。

  • 該当箇所:
    modules/Contacts/Contacts.phpmodules/Leads/Leads.php 内の getEntityName 関連ロジック
  • 変更イメージ:
    標準で firstname, lastname の順に結合されているフィールド定義を lastname, firstname へ反転させます。
  • メリット:
    一覧のリンク表示や他モジュールからの参照フィールド(取引先担当者名など)が一括で「山田 太郎」形式になります。

アプローチ③:拡張モジュール/Fix Packの導入(推奨・最も安全)

ソースコードを直接改修(コアハック)すると、将来のバージョンアップ時に上書きされて元に戻ったり、不具合の原因になったりします。

最も安全で工数がかからないのは、日本の商習慣向けに調整された専用の拡張モジュール(JP Fix Pack 等)や言語・UI拡張プラグインを導入することです。

  • メリット:
    • コアファイルを一切汚さずにモジュール管理から一括適用可能
    • 一覧、詳細、ポップアップ、関連リスト、メールテンプレートまでシステム全体を一括で「姓 名」順に統一
    • アップデート時の先祖返りリスクを極小化できる

3. 実務で注意すべき関連箇所のチェックリスト

姓名順を修正する際は、主要画面だけでなく以下の機能も正しく「姓 名」になっているか必ず検証を行ってください。

  1. 一覧画面(ListView)の表示・並び替え(ソート)
    • 「姓」の昇順・降順で意図通りソートされるか
  2. ルックアップ(関連選択)ポップアップ
    • 取引先や案件から担当者を選ぶ際のポップアップ一覧の表記
  3. グローバル検索・クイック検索
    • 姓名をスペース区切りで検索した際にヒットするか
  4. メールテンプレート・ワークフロー自動送信
    • $contact-lastname$$contact-firstname$ 様 の差し込み順序
  5. PDF帳票(見積書・請求書など)の宛名・担当者欄

4. まとめ

  • VtigerCRMが「名・姓」になってしまうのは、海外標準の [firstname] [lastname] 結合ロジックが組み込まれているため
  • 根本的に直すには、「入力・表示レイアウト(UI)」「エンティティ名称生成(PHPロジック)」 の両面で順序を逆転させる必要がある
  • 保守性や将来のアップデートを考慮すると、コア直接改修を避け、拡張モジュールやパッケージによる一括適用がベストプラクティス

姓名表記の違和感を解消することは、CRMの現場定着率を高めるための第一歩です。運用開始前にしっかり日本仕様へ最適化しておきましょう。

タイトルとURLをコピーしました