以前の記事「Magentoの住所でフリガナが保存されない」の続きです。
コメントで、管理画面の表示順序を直せないかとリクエストを頂きましたので、その方法です。
※この記事では、データベースを直接操作していますが、本来ならばセットアップ用のスクリプトを組むべきです。
このへん、まだ私はよくわからないのですよね。
どなたか、ご教授いただけるとありがたいのですが。
前回の記事の内容を適用しただけでは、管理画面で顧客情報を開いた時の項目の表示順が、日本の様式に合っていません。
氏名は、「プリフィックス・名・ミドルネーム・姓・サフィックス・・・」の順に
住所は、「番地・市区町村・都道府県・国名・・・」の順になっています。
これを、任意の順序に変更します。
表示順はどこで決まっているのか?
顧客データは、データベースの「customer_eav_attribute」テーブルで規定されています。
この中の、sort_orderフィールドが、フィールドの表示順になります。
この値を書き換えてやるだけで、並べたい順序にすることができます。
新しい表示順を決める
しかし、「customer_eav_attribute」テーブルには、実際の項目名はありません。
attribute_id フィールドが項目を表す一意の値ですので、これをキーにして、「eav_attribute」テーブルを参照します。
frontend_label フィールドが項目名(英語表記)です。
これをもとに、新しい表示順を決めます。
頭の中だけでこれらを考えるのは大変ですので、私はExcelを使って、下記の要領で sort_order の値を決めました。

- 「customer_eav_attribute」テーブルと、「eav_attribute」テーブルをエクスポートする。
phpMyAdminであれば、Excel形式がおすすめ。 - エクスポートしたテーブルをExcelで開いて、「customer_eav_attribute」テーブルのattribute_idの値に対応する、「eav_attribute」テーブルの entity_type_id と frontend_label を得る
(VLOOKUP関数を使いましょう) - Excel上で、並べたい順に行を並べ替える。
(行番号をクリックして行ごと選択し、「切り取り→切り取ったセルの挿入」で移動)
entity_type_id の値が1の項目はアカウント情報。2の項目は住所用のものなので、分けて考えること。 - 並べ終わったら、sort_order の値を、昇順になるように変更する。
- phpMyAdminなどで、実際のデータベース上の「customer_eav_attribute」テーブルの sort_order の値を変更する
Excelで並び替えたものをcsv書き出しして、データベースにインポートしてもよいのですが、失敗すると怖いですし、実際に修正する値はそれほど多くないので、私は修正したい部分だけ phpMyAdmin で打ちかえました。
これで、管理画面をリロードしてみれば、sort_orderの値の順に入力項目が並びかえられています。
なお、不要項目を非表示にするのは、また別の手段が必要になります。
こちらはまた、別の機会ということにさせてください。(今回も、力尽きました・・・)
この記事を書いた人

-
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き
1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2025 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordCamp Kansai 2016 セッションスピーカー
WordBench京都、WordBench神戸、WordBench奈良、WordPress Meetup八王子など登壇多数
最新の投稿
ブログ2025年11月16日WordCamp Kansai 2025 で「触れるけど壊れないWordPressの作り方」についてお話しました
技術記事2025年6月15日ブロックテーマ時代のWordPress制作ワークフローとは
技術記事2025年3月7日WordPressに百千鳥フォントを入れて遊んでみました
ブログ2025年1月3日移転のお知らせ(2024年)

ご質問・ご相談などありましたら
お気軽にお問い合わせください
資料請求・お問い合わせにはメールアドレスが必要です








さくらぎけい へ返信する コメントをキャンセル