メーカープラグインを導入した場合、メーカー名で商品を絞り込みたくなることがあると思います。
この検索を実現するにはプラグインのテーブルを商品のテーブルにjoinします。


メーカープラグインはProductMakerとMakerというエンティティクラスを保有しており、これらのクラスを使用して商品を絞り込むにはQueryBuilderを用いて次のように書きます。

※プラグインのフックポイントを用いるか、ProductRepositoryのgetQueryBuilderBySearchData()というメソッドに直接記載してください。

$maker_name = "メーカー名";

$qb
                    ->innerJoin('Plugin\Maker\Entity\ProductMaker', 'pm', 'WITH', 'p.id = pm.id')
                    ->innerJoin('pm.Maker', 'm')
                    ->andWhere('m.name LIKE :maker_name')
                    ->setParameter('maker_name', '%'.$maker_name.'%');

$naker_nameという変数にメーカー名が入っていますので、これをフォームから取得するなどすれば、ユーザーがほしいメーカーの商品を自分で検索できるようになります。
ユーザーの利便性を高めるには必須のカスタマイズかと思います。

プラグインがインストールされているかどうかのチェックを行う必要がある場合は、こちらの記事も参考にしてください。
プラグインがインストールされているかどうか確認する方法

ECCUBE制作トップへ

EC-CUBEカスタマイズに関するお問い合わせはこちら


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

    EC-CUBEバージョンアップ