EC-CUBE Lab
produced by Cajiya
EC-CUBEに関するカスタマイズ方法やトラブルへの対処方法を発信

管理画面の受注編集画面での商品追加時に、廃止商品を表示されなくするカスタマイズ方法

公開日: 2025年10月12日 | 更新日: 2025年11月27日
受注管理(管理画面) 検索・絞り込み強化 EC-CUBE 4系全般

要望や症状

管理画面の受注編集画面で、商品情報セクションの「商品を追加」を行ったときに、商品の検索結果には廃止ステータスの商品も表示されます。

理由や原因

この現象は EC-CUBE 4系の標準仕様によるものです。

技術的な背景

商品検索の処理を担当する ProductRepositorygetQueryBuilderBySearchDataForAdmin メソッドでは、公開ステータスによる絞り込み条件が設定されていない場合があります。このため、データベース上に存在する「公開」「非公開」「廃止」すべてのステータスの商品が検索結果に含まれることになります。

解決策

ProductRepository をカスタマイズすることで、廃止ステータスの商品を検索対象から除外できます。以下の手順で実装を行ってください。

1. カスタマイズ用の ProductRepository を作成

app/Customize/Repository ディレクトリに新しい ProductRepository クラスを作成します。

<?php
// app/Customize/Repository/ProductRepository.php

namespace Customize\Repository;

use Eccube\Entity\Master\ProductStatus;
use Eccube\Repository\ProductRepository as BaseProductRepository;
use Doctrine\ORM\QueryBuilder;

class ProductRepository extends BaseProductRepository
{
    public function getQueryBuilderBySearchDataForAdmin($searchData)
    {
        $qb = parent::getQueryBuilderBySearchDataForAdmin($searchData);
        
        // 廃止商品を検索対象から除外
        $qb->andWhere('p.Status != :exclude_status')
           ->setParameter('exclude_status', ProductStatus::ABOLISHED);
        
        return $qb;
    }
}

ベースクラスの処理を継承しつつ、廃止ステータスの商品を除外する条件を追加しています。

2. サービス定義で Repository を置き換え

app/Customize/Resource/config/services.yaml ファイルでサービス定義を追加し、標準の ProductRepository を置き換えます。

# app/Customize/Resource/config/services.yaml
services:
    Eccube\Repository\ProductRepository:
        class: Customize\Repository\ProductRepository
        parent: 'eccube.repository.product'

3. キャッシュをクリア

変更を反映するため、以下のコマンドでキャッシュをクリアします。

bin/console cache:clear

免責事項

本記事に掲載しているコードや手順は、執筆時点での情報および特定の環境下での動作確認に基づいています。 EC-CUBEのバージョン、サーバー環境、導入済みプラグインとの競合などにより、予期せぬ不具合が発生する可能性があります。

本記事の内容を実行した結果、生じた損害(データの消失、サイトの停止、機会損失など)について、当サイトおよび管理者は一切の責任を負いかねます。 実装にあたっては、必ずバックアップを取得し、検証環境(テスト環境)での動作確認を行った上で、ご自身の責任において実施してください。

この記事は参考になりましたか?

著者プロフィール: 株式会社カジヤ

当社はWeb業界の専門家として、培った経験や技術、自社事業を通して得た知見を土台に、 お客様の事業の成長を後押しすることを提供価値として活動する、Web事業の成長支援会社です。 EC-CUBE公式のパートナー制度「EC-CUBE インテグレートパートナー」に登録してしており、上位11%にあたる「ゴールドランク」に認定された実績があり、新しい通販サイトの構築から、カスタマイズ、リニューアルまで幅広く対応します。

受注管理(管理画面) の関連記事

受注管理(管理画面) 表示/テンプレート調整 EC-CUBE 4系全般
受注一覧ページで会員番号を表示するカスタマイズ方法

管理画面の受注一覧ページで、注文者の会員番号を表示したい場合があります。 ### 表示要件 ...

👍 0 / 👎 0 2025年10月12日

検索・絞り込み強化 の関連記事

商品 検索・絞り込み強化 EC-CUBE 4系全般
管理画面の商品一覧検索で、英字大文字小文字を区別しないようにするカスタマイズ方法

EC-CUBE 4系 の管理画面において、商品一覧の検索機能で英字の大文字小文字が区別される仕様とな...

👍 0 / 👎 0 2025年10月12日
商品カテゴリ・一覧・検索 検索・絞り込み強化 EC-CUBE 4系全般
商品検索のカテゴリ制限を解除するカスタマイズ方法

商品カテゴリページから検索を実行すると、そのカテゴリ内の商品のみが検索対象となり、サイト全体の商品か...

👍 0 / 👎 0 2025年09月24日

EC-CUBE 4系全般 の関連記事

商品 データ不整合 EC-CUBE 4系全般
EC-CUBEで取り扱い終了商品の削除ができない理由と対応方法

EC-CUBEでは、取り扱いを終了した商品を削除したい場合に、削除ができない状態になることがあります...

👍 1 / 👎 0 2025年10月12日
インストール・セットアップ EC-CUBE 4系全般 設定変更
EC-CUBEサイトのドメイン変更時の設定変更方法

EC-CUBEで構築したサイトを新しいドメインで公開する際に、どのような設定変更が必要かわからない場...

👍 0 / 👎 0 2025年10月12日
メール通知 通知/コミュニケーション EC-CUBE 4系全般
メール件名のショップ名を英語表記に変更する方法

EC-CUBE 4系で、メール件名の先頭に自動挿入される店舗名を英語表記に変更したい場合があります。...

👍 0 / 👎 0 2025年10月12日
フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日