要望や症状
EC-CUBEでは、取り扱いを終了した商品を削除したい場合に、削除ができない状態になることがあります。
削除できない条件
以下の条件に該当する商品は管理画面から削除することができない場合があります。
- 顧客のお気に入りに登録されている商品
- 顧客のカートに追加されている商品
- 過去に受注履歴に含まれている商品
理由や原因
EC-CUBE 4系では、データの整合性を保つため、他のテーブルから参照されている商品は物理削除できない仕様になっています。
具体的には、以下のテーブルから参照されている商品は削除制約により削除が阻止されます。
dtb_customer_favorite_product(お気に入り商品)dtb_cart_item(カート内商品)dtb_order_item(受注履歴)- その他関連テーブル
この制約は、過去の受注データや顧客のお気に入り情報の整合性を維持するためのEC-CUBEの標準仕様です。
解決策
推奨対応方法
取り扱い終了商品は物理削除ではなく、商品ステータスを「廃止」に変更することで対応しましょう。
手順
- 管理画面にログインします
- 「商品管理」→「商品マスター」を選択します
- 取り扱い終了する商品を検索・選択します
- 商品編集画面で「公開ステータス」を「廃止」に変更します
- 「登録」ボタンをクリックして保存します
廃止ステータスの効果
商品ステータスを「廃止」に設定することで、以下の効果が得られます。
- フロント画面で商品が表示されなくなります
- 検索結果にも表示されなくなります
- 商品URLに直接アクセスしても404エラーとなります
- 過去の受注データは保持されます
- お気に入り登録済みの顧客からも商品が見えなくなります
削除可能な商品の対応
以下の条件をすべて満たす商品については、管理画面から削除が可能な場合があります。
- お気に入り登録されていない商品
- カートに追加されていない商品
- 受注履歴に含まれていない商品
これらの条件を満たす商品は「商品マスター」画面で削除ボタンから物理削除することができます。
注意事項
一度公開した商品は、将来的にも参照される可能性があるため、基本的には「廃止」ステータスでの運用を推奨します。物理削除はデータの整合性に影響する可能性があるため、十分な検証を行ってから実行することをお勧めします。