【開発コミュニティの人気Tipsをご紹介⑥】リンクを知っている人だけ閲覧できる商品を作ってみる

#集客・販促・運営

複雑な要件も100%叶える
ベンダー依存を脱却し、自社専用EC基盤を。

まずは相談する

こんにちは、EC-CUBEエバンジェリスト 足立智広です。

EC-CUBEでは、ご利用者同士が問題解決方法を投稿・共有できる「開発コミュニティ」を開設し、多くの方にお使いいただいています。この連載では、開発コミュニティで話題のカスタマイズや、よく質問にあがる「これってどうやるの?」について解説を行っていきます。

※過去の記事はこちらからご覧いただけます。

今回のテーマについて

今回は、リンクを知っている人だけ閲覧できる商品、のカスタマイズを紹介したいと思います。
商品の検索結果には表示されませんが、直接URLを入力すると、商品詳細画面が表示されます。

簡易的ではありますが、これにより、一部のお客様にだけ購入できる商品を作ることができます。

「システムに業務を合わせる」妥協は終わりにしませんか。複雑な要件も100%叶える、ベンダー依存のない自社専用EC基盤を。
自社要件を相談する

1. 仕様

本来はdtb_orderに表示用のカラムを追加して、そのカラムで制御する方が良いですが、今回は簡易的な実装のため、商品情報のショップ用メモ欄に“[隠し商品]”が登録されていれば制御するようにしてみます。

2. カスタマイズ

src/Eccube/Repository/ProductRepository.php の93行目付近に以下を追記します。

public function getQueryBuilderBySearchData($searchData)
{
    $qb = $this->createQueryBuilder('p')
        ->andWhere('p.Status = 1');

    // ★↓を追記
    $qb->andWhere("p.note IS NULL OR p.note <> '[隠し商品]'");
    // ★↑を追記

    // category
    $categoryJoin = false;
    ...

修正はこの1行だけです。

3. 動作確認

動作確認をしてみましょう。
商品編集画面で、パーコレータに[隠し商品]を入力します。

次に、商品一覧画面を表示します。
パーコレータが表示されていない状態です。

次は、直接URLを入力してアクセスしてみます。
パーコレータが表示されました。

最後に

リンクを知っている人だけ閲覧できる商品の作成については以上です!

変更したソースコードの差分は以下でご覧いただけます。ぜひ参考にしてみてください。

いかがでしたでしょうか?

開発コミュニティでは、「EC-CUBE」 をより快適で便利なものにしていくために、エンジニアの方はもちろんのこと、ショップ運営者の方、デザイナーの方など、 EC構築・運営に関わる多くの方々のご参加をお待ちしています。

「どうか教えてください!」「バグ見つけましたよ」「こんな機能あったらなぁ」といったテーマごとにスレッドが分かれていますので、気になるキーワードがあれば開発コミュニティへ訪れてみてください。

監修

株式会社イーシーキューブ

国内No.1シェアを誇るEC構築オープンソース「EC-CUBE」の開発元企業です。親会社の株式会社イルグルム(東証スタンダード市場上場)とも連携し、戦略立案から構築・運用・マーケティングまでワンストップのEC支援を行っています。これまで数多くのEC構築・改善を手がけてきた知見を活かし、実務に役立つノウハウや導入事例などを分かりやすく解説・発信しています。「ECサイトをどう作ればいいのか分からない」「既存サイトをもっと強化したい」「ECサイトの運営について詳しく知りたい」…そんなお悩みをお持ちの方々に、少しでもヒントとなる情報をご提供できれば幸いです。
※ 独立行政法人情報処理推進機構「第3回オープンソースソフトウェア活用ビジネス実態調査」による

#集客・販促・運営

複雑な要件も100%叶える。
ベンダー依存を脱却し、自社専用EC基盤を。

他の記事もご覧ください

記事一覧に戻る

EC-CUBE公式アドバイザー
ご相談窓口

  • 他社のASPやパッケージとの違いを知りたい
  • BtoCのサイトにBtoB機能を追加したい
  • 何から手をつければよいかわからない
  • 自社にマッチした制作会社を探したい
  • サイト制作だけでなく運営もサポートしてほしい

新規構築・リニューアル・取引先向けのWeb受発注システム(BtoB)や事業の拡大など、
今抱えている課題を解決する最適な業者探しを、アドバイザーがお手伝いします。