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: , , ,

8月 13

最近はECサイトに人の存在感を与え、そして安心感を与えるためにブログも運営することが多くなった。

そこで、ECサイトにそのブログのRSS情報を非常に簡単に表示する方法。
ただしPHP5が条件。
なぜなら、simplexml_load_fileを使用するから。

EC-CUBEを利用、新規ブロックを作成した場合の方法。

/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Rss.php

function process() {

$memore_rss =simplexml_load_file('http://memo.6-bird.net/feed/');
$this->memore_rss = $memore_rss;

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

/user_data/packages/memore/bloc/rss.tpl

    {foreach from=$memore_rss->channel->item item="datum" key="key" name="memore_rss"}
  1.  
  2. {/foreach}

これで、ブログの記事タイトルにリンクがはられ、ズラーッと表示される。

written by sixbird \\ tags: ,

8月 07

商品管理→商品マスタ→CSV DOWNLOADでダウンロードしたCSVファイルの規格名1、および規格名2を見ると、規格を登録しているにもかかわらずNULLの状態となっている。

そこで/data/class/helper/SC_Helper_CSV.phpの115行目辺りを以下のように修正。

// 規格分類名一覧
//if (!empty($arrOutputCols['classcategory_id1']) || !empty($arrOutputCols['classcategory_id2'])) {
$arrClassCatName = $objDb->sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
//}

つまり、無条件に規格名一覧を取得させる。

$list_data = $objQuery->select($cols, $from, $where, $arrval);

ここで規格コードは取得できているのに、規格名が取得できないせいでCSVに吐き出されないのが原因。

written by sixbird \\ tags: , , ,