EC-CUBE4 でカテゴリを一括削除する

EC-CUBE4 を使っていて、テストデータを削除したい。あると思います。

でもカテゴリを削除する場合、小カテゴリがあると削除できないのでヒジョーに面倒です。
数件のカテゴリの場合は手動でも対応できますが、数10数100とカテゴリがある場合にはとてもじゃないけど手動でなんてやってられません。

ということで、そんな場合はSQLを使って削除してしまいましょう。

カテゴリ削除の手順

小カテゴリが存在する場合は削除できないルールがある以上、残念ながら一発では削除できません。

ですので、最下層のカテゴリから削除していく必要があります。

手順としては、

  1. 最下層のカテゴリに対し目印をつける
  2. 目印を付けたものを削除
  3. 1および2を繰り返しすべてのカテゴリを削除
  4. カテゴリIDの連番をクリアする

最後の4は必要に応じて。

最下層のカテゴリに対し目印をつける

最下層のカテゴリは下記のSQLで判別可能です。

select a.category_name from dtb_category a left join dtb_category b on a.id = b.parent_category_id where b.id is null;

ということで、このデータに対してUPDATEをかけます。

update dtb_category a left join dtb_category b on a.id = b.parent_category_id set a.category_name = 'DELETE' where b.id is null;

目印を付けたものを削除

目印を付けた行を削除します。

delete from dtb_category where category_name = 'DELETE';

1および2を繰り返しすべてのカテゴリを削除

最下層から順に削除し、すべてのカテゴリを削除していきます。

カテゴリIDの連番をクリアする

カテゴリを削除したら、カテゴリIDの連番も削除しておきましょう。

alter table dtb_category auto_increment = 1;

まとめ

EC-CUBE4 でのカテゴリの一括削除について解説しました。

EC-CUBE はECショップを考えている方にとってとても便利なCMSです。

弊社のお客様でも導入していますので、ちょっとしたカスタマイズなど、お気軽にお問い合わせください。