10月 30

前回にも「新商品ブロックを作ろう」を書きましたが、
「特定のカテゴリーの新商品やお勧め商品を表示できるように設定できないか」
というお問い合わせがありましたので、カテゴリー指定バージョンを書きます。

基本的には前回の通りにブロックを作りましょう。
違うのは、LC_Page_FrontParts_Bloc_New.phpのロジックです。
以下がそのロジックです。

function process() {

// 基本情報を渡す
$objSiteInfo = new SC_SiteInfo();
$this->arrInfo = $objSiteInfo->data;

$objQuery = new SC_Query();

$col    = " product_id, price02_min, price02_max, main_image, main_list_image, name";
$from   = " vw_products_allclass ";
$where  = " substring(product_flag,1,1) = '1'";
$where .= " and del_flg = 0 ";
$where .= " and category_id = カテゴリIDを指定";
$order  = " rank";
// $order = "random()";  ←ランダムで取得したい場合こちら( MySQLはrand() )

// ソート
$this->order=$objQuery->setorder($order);

// 取得範囲の指定
$page_max = 5;  // 取得件数を設定
$startno = 0;  // 開始番号を設定(1件目はゼロとなる)
$objQuery->setlimitoffset($page_max, $startno);

$arrNewProducts = $objQuery->select($col, $from, $where);

$this->arrNewProducts = $arrNewProducts;

$objSubView = new SC_SiteView();
$objSubView->assignobj($this);
$objSubView->display($this->tpl_mainpage);
}

上記の「カテゴリIDを指定」の箇所に表示させたいカテゴリを指定。

もし、複数カテゴリを指定したい場合は、

$col    = " DISTINCT product_id, price02_min, price02_max, main_image, main_list_image, name";
$from   = " vw_products_allclass ";
$where  = " substring(product_flag,1,1) = '1'";
$where .= " and del_flg = 0 ";
$where .= " and category_id IN (カンマ区切りでカテゴリIDを指定)";
$order  = " rank";
// $order = "random()";  ←ランダムで取得したい場合こちら( MySQLはrand() )

と、DISTINCTをかまし、IN句で複数カテゴリを指定しましょう。

おすすめ商品も基本的には同じ。

written by sixbird \\ tags: , , ,


5 Responses to “新商品ブロックを作ろう(カテゴリ指定)”

  1. 1. katakoto Says:

    こちらのサイトはじめて拝見させて頂きました。
    現在ec-cube 2.11にて新規ブロックの追加でいきずまっております。

    バナータイプのリンク先の情報を持ったブロックを作成したいのですが、
    リンクはすれど画像が表示されず困っております。

    初歩的な質問で、恐縮なのですが、なにとぞご教授お願いいたします。

  2. 2. sixbird Says:

    ブラウザからソースを見てパスは合っていますでしょうか?
    確実に画像を表示するなら絶対パスで指定してみたら如何でしょうか

    ソースを見てないので的はずれな回答かもしれませんが…

  3. 3. katakoto Says:

    早速の回答ありがとう御座います。

    恐れ入りますが、パスの指定も含めどのようなソースを書き込めばよろしいのでしょうか?
    よろしくお願いします。

  4. 4. sixbird Says:

    tplファイルのソースはどうなってますか?
    また、htmlはどうなってますか?

  5. 5. boya Says:

    こんにちは。
    ver 2.4.4 で実装できました。貴重なコードありがとうございます。

    一点、うまく解決できていないところあるので質問します。
    新商品カテゴリにある商品をそのまま非公開にした場合、新商品カテゴリから外さないかぎり、表示候補に入ってしまい、結果的にブロック内に表示してしまいます。
    (商品サムネイルをクリックすると、当然「商品なし」ページに飛んでしまいます。)

    新商品をそのまま非公開にする場合、その都度、新商品カテゴリからも外すという運用でも対応できますが、よりスマートな解決法があればご教示ください。
    (EC-CUBEの仕様も含まれていると思いますが…)

    よろしくお願いいたします。

Leave a Reply