EC-CUBE管理画面からカテゴリが削除できない場合、いくつか考えられる原因がありますのでご紹介します。

1. そのカテゴリに登録されている商品が存在すると削除不可

このケースが一番多いのですが、そのカテゴリに登録されている商品が1つでも存在するとカテゴリを消すことができません。
削除ボタンは表示されているものの、色が薄くなり押せない状態になっています。

商品一覧でカテゴリによって検索することができますので、削除したいカテゴリを指定して検索してみてください。

この時注意することとしては、「公開」「非公開」の商品だけでなく、「廃止」ステータスの商品であってもそのカテゴリに残っていると削除できないということです。

2. 子カテゴリが存在すると削除不可

子カテゴリが残っていると削除できません。子カテゴリから削除するようにしてください。
この場合もカテゴリの削除ボタンは表示されているものの、色が薄くなり押せない状態になっています。

3. 関連するデータが存在するため削除不可

この場合は削除ボタンを押せますが、関連するデータがあるため「カテゴリ名」を削除できませんでした というエラーが出ればこのパターンです。

独自カスタマイズや導入プラグインによってカテゴリが参照されており、カテゴリ削除時に自動で外部キー制約を解除するための指定がされていません。

ログを見ればどのデータかはわかりますが、どこかに下記のように参照指定しているエンティティがあると考えられます。

/**
* @var \Eccube\Entity\Category
*
* @ORM\ManyToOne(targetEntity="Eccube\Entity\Category")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
* })
*/
private $Category;

カテゴリ削除できるプラグイン

上の1~2のケースに対応できるプラグインがありますのでオーナーズストアからダウンロードしてみてください。

・商品や子カテゴリがあってもカテゴリ削除可能プラグイン for EC-CUBE4.2

https://www.ec-cube.net/products/detail.php?product_id=2909

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEに関するお問い合わせ


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ