要望や症状
EC-CUBEの商品管理でカテゴリ管理画面を開いた際に、削除したいカテゴリの削除ボタン(×)がグレーアウト表示になってしまい、クリックしても何も動作しないという問題が発生することがあります。
理由や原因
カテゴリ削除ボタンがグレーアウトしてしまう原因は、主に以下の3つのケースが考えられます。
まず最も一般的な原因として、該当カテゴリに商品が登録されている場合があります。EC-CUBEでは、商品が登録されているカテゴリは削除できない仕様となっています。
次に、階層構造で子カテゴリが存在する場合です。親カテゴリに子カテゴリが存在している状況では、親カテゴリを削除することができません。
3つ目の原因として、データ整合性の問題が挙げられます。商品とカテゴリの紐付けに何らかの不整合が生じており、商品のカテゴリ変更が正常に保存できない状態になっている可能性があります。この場合、フォームの保存処理でバリデーションエラーや制約エラーが発生していることが考えられ、プラグインや独自カスタマイズによる影響も要因として想定されます。
解決策
カテゴリに紐づく商品の確認
まず、削除したいカテゴリにどのような商品が紐づいているかを確認します。管理画面の「商品管理」から「商品マスター」を開き、該当カテゴリでフィルタリングを行って、そのカテゴリに登録されている商品をすべて確認してください。
商品のカテゴリ変更作業
確認できた商品について、それぞれの編集画面を開いてカテゴリ設定を変更します。カテゴリを別のカテゴリに変更するか、または「カテゴリ無し」の状態に設定してください。変更後は必ず保存を行い、緑色の「保存しました」というメッセージが表示されることを確認することが重要です。
カテゴリ変更が保存できない場合の対処
もしカテゴリの変更が正常に保存されない場合は、以下の手順で原因を調査してください。
ブラウザの開発者ツールを開いて、コンソールエラーが発生していないかを確認します。また、EC-CUBEのログファイル(var/log/ディレクトリ)でエラーログの内容も確認してください。
子カテゴリの確認と移動
カテゴリ管理画面で階層構造を確認し、削除したいカテゴリに子カテゴリが存在しているかをチェックします。子カテゴリがある場合は、先に子カテゴリを削除するか、別の親カテゴリに移動させる必要があります。
カテゴリの削除実行
すべての商品と子カテゴリの移動・削除が完了すると、対象カテゴリの削除ボタンがクリック可能な状態になります。この時点で削除ボタンをクリックして、カテゴリの削除を実行してください。