202103.03

【EC-CUBE】悩ませてくれるよね

EC-CUBEよ、何かと困らせてくれるよね。学ばせてくれてありがとう。
カートシステムをしっかり使ったことがないのもあるけど、モールと比べるとやっぱり不便というか、「ここできないの!?」と少し驚くこともある。
今回は「規格管理」の削除ができなくて困っている。さて、どうするか・・・。

■規格を削除しようとすると・・・

EC-CUBEを使っている人なら、この表示に一回は困惑するであろう・・・。

「この規格を設定している商品があるから、そっち編集してからじゃないと消せないよー」

ということだと思うのですが、「いや、もう編集したし!」って言い返したい。
一応再度確認してみるか・・・。

■商品情報を編集してみる

商品一覧から、削除したい規格を設定している商品を選択。
「この商品の規格を確認」→「商品規格の初期化」で、一旦設定した規格を削除。
下記のような表示が出るが、恐れることなかれ。大したことはない。

規格管理にて、設定していた規格の削除を試みる・・・先ほどと同じ表示が出た・・・。
いや、どうゆうこと??
規格設定してないじゃん?どうやったら消せるの?

ネットで調べたら・・・

「外部キー制約に該当するテーブルはどこかを突き止め、制約となっているレコードを先に削除してやることが必要です。」

引用:https://umebius.com/eccube/eccube4-product-foreign-key-constraint/

はい??もはや理解不能。データベース上で操作しなきゃいけないってこと?
筆者はそんな知識ありませんので、もっとわかりやすい言葉でお願いします。

ここで規格を初期化してしまったので、とりあえず元の規格に戻しておこう。

■解決策

消せないなら「消さない」という選択をしました。

1.非表示設定に。

本来なら削除したい規格を非表示設定にする。
「規格管理」から非表示設定できます。簡単だし、またいつか使うときがあれば表示にすればいいだけ。
規格管理の右側です。

2.規格を作り直す

面倒だけど、非表示だけじゃ不安(間違えて表示させちゃうかも・・・)という方は作り直した方が良いかもしれません。
ただ、時間も手間もかかるし、管理画面に使わない規格が残るのでそれもどうかな、と個人的には思ってしまう。

あくまでも筆者個人としての解決策なので、ご参考までに。

■まとめ

この問題、やはりつまづく人が多いのかネットで検索するといっぱい出てくる。
そしてその中にしっくりくる結果はなかった。筆者の理解力のなさもあるが。
モールでも同じことしようとすると、確か同じように設定していると削除できなかった気がするけど、設定外せば消せたよな・・・うろ覚え。
規格増やすのは簡単なのに、削除はなぜ簡単にいかないものか。
使い勝手が良いんだか悪いんだか・・・でも勉強になった出来事であった。

2021.03.03  ec-staff