今後のEC-CUBEバージョンアップで改善されるとは思いますが、差し当たり次の方法で対処します。 ① カテゴリ登録画面の右側「全カテゴリー」のカテゴリツリーは正常に表示されているので、カテゴリ名の前に「カテゴリID」を表示し、それを手がかりにSQLを作成しデータベース上で直接修正するようにします。 ■src/Eccube/Resource/template/admin/Product/category.twig
◆rankは上から大きい順に、
category_idは左記の順に記述し、SQLを作成する。
——————————————
UPDATE dtb_category SET rank=10 WHERE category_id=1;
UPDATE dtb_category SET rank=9 WHERE category_id=9;
UPDATE dtb_category SET rank=8 WHERE category_id=4;
UPDATE dtb_category SET rank=7 WHERE category_id=3;
UPDATE dtb_category SET rank=6 WHERE category_id=5;
UPDATE dtb_category SET rank=5 WHERE category_id=2;
UPDATE dtb_category SET rank=4 WHERE category_id=7;
UPDATE dtb_category SET rank=3 WHERE category_id=8;
UPDATE dtb_category SET rank=2 WHERE category_id=10;
UPDATE dtb_category SET rank=1 WHERE category_id=6;
——————————————
■EC-CUBE3機能カスタマイズ版
インストールと同時にデザインとカスタマイズ機能が実装されるのでサイト構築作業を大幅に短縮できます。
■デモサイト
インストール後、このようなサイトが立ち上がります。
■EC-CUBE3機能カスタマイズ版の機能内容
各機能についてこのページで解説しています。
■EC-CUBE3インストールガイド
(1)不具合の現象
・商品登録の際のカテゴリ選択
・フロントページの商品検索プルダウン
(2)考えられる原因
「商品登録カテゴリ選択」「検索プルダウン」の場合、rankカラムを基準に読み込んでいるので意図した表示順になりません。
(3)対処方法
① カテゴリ登録画面の右側「全カテゴリー」のカテゴリツリーは正常に表示されているので、カテゴリ名の前に「カテゴリID」を表示し、それを手がかりにSQLを作成しデータベース上で直接修正するようにします。
■src/Eccube/Resource/template/admin/Product/category.twig
——————————————
{{ Category.name }} ({{ Category.children|length }})
——————————————
↓【変更】(赤字を追加)
——————————————
{{ Category.id }}:{{ Category.name }} ({{ Category.children|length }})
(ここでは親・子カテゴリ合わせて10のカテゴリがある)
1
9
4
3
5
2
7
8
10
6
——————————————
category_idは左記の順に記述し、SQLを作成する。
——————————————
UPDATE dtb_category SET rank=10 WHERE category_id=1;
UPDATE dtb_category SET rank=9 WHERE category_id=9;
UPDATE dtb_category SET rank=8 WHERE category_id=4;
UPDATE dtb_category SET rank=7 WHERE category_id=3;
UPDATE dtb_category SET rank=6 WHERE category_id=5;
UPDATE dtb_category SET rank=5 WHERE category_id=2;
UPDATE dtb_category SET rank=4 WHERE category_id=7;
UPDATE dtb_category SET rank=3 WHERE category_id=8;
UPDATE dtb_category SET rank=2 WHERE category_id=10;
UPDATE dtb_category SET rank=1 WHERE category_id=6;
——————————————
PostgreSQLで実行
MySQLで実行
(4)正常に表示されているのを確認