ホーリーのブログ「ホリブロ」 -11ページ目

郵便番号DB登録で途中で止まる

郵便番号DB登録で途中で止まるのはエラーではなかった
http://ec-cube.webtex.jp/customize/20100705182050


EC-CUBEで郵便番号DBが登録できない時の対処方法まとめ
http://singoro.seesaa.net/article/241408209.html


EC-CUBE 郵便番号DB登録の仕方
http://www.makun.jp/pplog2/displog/449.html


やはり郵便番号DB登録がうまくいかない・・・2.11.1
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8594&forum=10


郵便番号自動入力に関しての質問です
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=7316&forum=2

お気に入り登録

「お気に入りに登録」ボタン設置方法
http://www.gb-jp.com/blog/design/266.html


カスタマイズ一覧
http://ec-cube.ec-orange.jp/customize/advanced/advanced/


EC-CUBE 商品詳細ページにお問い合わせボタンを設置する方法
http://www.ryota.info/labo/ec-cube/ec-cube-4.html


カスタマイズ一覧
http://customize.uassist.co.jp/products/list.php


[EC-CUBE]パンくずリスト設置
http://www28.atwiki.jp/lucier/pages/42.html

カスタマイズ事例

EC-CUBEに追加機能をつけるカスタマイズ方法9つ

EC-CUBEに追加機能をつけるカスタマイズ方法9つ
http://www.so-network.biz/ec-cube/ec-cube-custom/



「EC-CUBE」のカスタマイズプログラム販売サイト
http://sea-cube.jp/



無料のモジュール
http://ec.cuore.jp/



カスタマイズプログラム販売サイト
http://sales.fs-create.net/

[EC-CUBE 2.11.4] 新着商品の自動表示を実施 サーバーはhetemlヘテムル

下記サイトを参考に
「新着商品を自動表示」
http://ameblo.jp/horiblo/entry-11151075105.html

実施してみました。

設置の際、データベースの設定がわからず
下記、サイトを参考に設定しました。

http://www.naga-blog.com/archives/2009/03/101727.php



まずは無事に稼動して
商品ステータスの「NEW」にチェックを入れた
商品が表示されています。


次回の為に手順書として残しておく。

$ホーリーのブログ「ホリブロ」



1.管理画面>デザイン管理>PC>ブロック設定

ブロック名 「新着商品」
ファイル名 「productFlag」(.tpl)
※現時点では内容の欄は空のままで良い

[登録する]ボタンクリック

productFlag.tplというファイルがサーバに作成される。



2.データベースの作業


hetemlヘテムル→コントロールパネルにログイン→データベース


$ホーリーのブログ「ホリブロ」
該当のサーバーの「phpMyAdmin」ボタンクリック



$ホーリーのブログ「ホリブロ」
3箇所の情報を入れて、「実行する」クリック



$ホーリーのブログ「ホリブロ」
データベースを選択する


$ホーリーのブログ「ホリブロ」
データベースのテーブル一覧から「dtb_bloc」を選択。管理画面に入る。



$ホーリーのブログ「ホリブロ」
表示をクリック



$ホーリーのブログ「ホリブロ」
「新着商品」という項目が作られているので、それを編集します。



$ホーリーのブログ「ホリブロ」
「php_path」が空欄になってまして、そこに「frontparts/bloc/product_flag.php」と記入します。これで値がNULL値から変更されます。




3.「product_flag.php」を作ります

下記のコードをコピーして、エディタ等にペースト、「product_flag.php」と名前を付けて保存します。
※説明にはなかったが、文字コードは「UTF-8」で保存。


<?php

// {{{ requires
require_once(CLASS_EX_REALDIR . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag_Ex.php");

// }}}
// {{{ generate page

$objPage = new LC_Page_FrontParts_Bloc_ProductFlag_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();

?>



出来上がったファイルを、FTPソフト等を使ってサーバの下記の場所にアップロードします。

/frontparts/bloc/product_flag.php



4.「LC_Page_FrontParts_Bloc_ProductFlag_Ex.php」を作ります



<?php

// {{{ requires
require_once(CLASS_REALDIR . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag.php");

/**
* productStatus のページクラス(拡張).
*
* LC_Page_FrontParts_Bloc_ProductFlag をカスタマイズする場合はこのクラスを編集する.
*
*/
class LC_Page_FrontParts_Bloc_ProductFlag_Ex extends LC_Page_FrontParts_Bloc_ProductFlag {

// }}}
// {{{ functions

/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
}

/**
* Page のプロセス.
*
* @return void
*/
function process() {
parent::process();
}

/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}

?>



data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag_Ex.php
に、アップロード



5.「LC_Page_FrontParts_Bloc_ProductFlag.php」を作ります



<?php

// {{{ requires
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php';

/**
* productStatus のページクラス.
*
* @package Page
*/
class LC_Page_FrontParts_Bloc_ProductFlag extends LC_Page_FrontParts_Bloc {

// }}}
// {{{ functions

/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
$bloc_file = 'productFlag.tpl';
$this->setTplMainpage($bloc_file);
}

/**
* Page のプロセス.
*
* @return void
*/
function process() {
if (defined("MOBILE_SITE") && MOBILE_SITE) {
$objView = new SC_MobileView();
} else {
$objView = new SC_SiteView();
}
$objSiteInfo = $objView->objSiteInfo;

// 基本情報を渡す
$objSiteInfo = SC_Helper_DB_Ex::sfGetBasisData();
$this->arrInfo = $objSiteInfo->data;

$objQuery = new SC_Query();

//検索したい商品のステータスを設定
//NEW→1, 残りわずか→2, ポイント2倍→3, オススメ→4, 限定品→5
$productFlag = 1;

//検索する商品のステータスをランダムに決定し、表示させたい場合は以下のコメントを外してください。
//$id_count = $objQuery->count(mtb_status);
//$productFlag = rand(1,$id_count);

$this->statusName = $objQuery->get("name", "mtb_status_image", "id = ? ", array($productFlag));

//表示する商品の件数
$listCount = 4;

$col = "dtb_products.product_id, dtb_products.name, dtb_products.main_list_image, dtb_products.main_list_comment AS comment, MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max";
$from = "dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id INNER JOIN dtb_product_status ON dtb_products.product_id = dtb_product_status.product_id";
$where = "dtb_products.del_flg = 0 AND dtb_products.status = 1 AND dtb_product_status.product_status_id = ?";
$groupby = "dtb_products.product_id, dtb_products.name, dtb_products.main_list_image, dtb_products.main_list_comment, dtb_product_status.product_id, dtb_products.update_date";
$this->groupby=$objQuery->setGroupBy($groupby);

//商品の表示はupdate_dateが新しい順
$order = "dtb_products.update_date DESC";
$this->order=$objQuery->setOrder($order);

$arrFlagList = $objQuery->select($col, $from, $where, array($productFlag));

//商品の表示をランダムに抽出する場合は以下のコメントを外してください。
//srand((double)microtime()*1000000); //乱数生成器を初期化
//shuffle($arrFlagList);

$this->arrFlagProducts = array_slice($arrFlagList, 0, $listCount);

$objView->assignobj($this);
$objView->display($this->tpl_mainpage);
}

/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}

?>



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


表示する件数を変更する場合は、下記の部分に書かれた数値を任意の数にする事で変更できます。



//表示する商品の件数
$listCount = 4;






6.最初に作った空のまんまの「新着商品」の「productFlag.tpl」の中身を作ります。

管理画面>デザイン管理>PC>ブロック設定→新着商品「編集」クリック

下記をコピーして中身に貼り付ける。


<!--{if count($arrFlagProducts) > 0}-->
<div class="bloc_outer clearfix">
<div id="recomend_area">
<h2>新着商品</h2>
<!--{section name=cnt loop=$arrFlagProducts step=2}-->
<div class="bloc_body clearfix">
<div class="recomendleft clearfix">
<div class="productImage">
<a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrFlagProducts[cnt].product_id|u}-->">
<img src="<!--{$smarty.const.ROOT_URLPATH}-->resize_image.php?image=<!--{$arrFlagProducts[cnt].main_list_image|sfNoImageMainList|h}-->&amp;wi
dth=80&amp;height=80" alt="<!--{$arrFlagProducts[cnt].name|h}-->" /></a>
</div>
<div class="productContents">
<h3>
<a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrFlagProducts[cnt].product_id|u}-->"><!--{$arrFlagProducts[cnt].name|h}--></a>
</h3>
<!--{assign var=price01 value=`$arrFlagProducts[cnt].price01_min`}-->
<!--{assign var=price02 value=`$arrFlagProducts[cnt].price02_min`}-->
<p class="sale_price"><!--{$smarty.const.SALE_PRICE_TITLE}-->(税込):
<span class="price"><!--{$price02|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円</span>
</p>
<p class="mini comment"><!--{$arrFlagProducts[cnt].comment|h|nl2br}--></p>
</div>
</div>

<div class="recomendright clearfix">
<div class="productImage">
<!--{assign var=cnt2 value=`$smarty.section.cnt.iteration*$smarty.section.cnt.step-1`}-->
<!--{if $arrFlagProducts[$cnt2]|count > 0}-->

<a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrFlagProducts[$cnt2].product_id|u}-->">
<img src="<!--{$smarty.const.ROOT_URLPATH}-->resize_image.php?image=<!--{$arrFlagProducts[$cnt2].main_list_image|sfNoImageMainList|h}-->&amp;widt
h=80&amp;height=80" alt="<!--{$arrFlagProducts[$cnt2].name|h}-->" /></a>
</div>
<div class="productContents">
<h3>
<a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrFlagProducts[$cnt2].product_id|u}-->"><!--{$arrFlagProducts[$cnt2].name|h}--></a>
</h3>

<!--{assign var=price01 value=`$arrFlagProducts[$cnt2].price01_min`}-->
<!--{assign var=price02 value=`$arrFlagProducts[$cnt2].price02_min`}-->

<p class="sale_price"><!--{$smarty.const.SALE_PRICE_TITLE}-->(税込):
<span class="price"><!--{$price02|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円</span>
</p>
<p class="mini comment"><!--{$arrFlagProducts[$cnt2].comment|h|nl2br}--></p>
<!--{/if}-->
</div>
</div>

</div>
<!--{/section}-->
</div>
</div>
<!--{/if}-->






7.最後に、管理画面にログインして、デザイン管理 > PC > レイアウト設定 で、productFlag ブロックが未使用ブロックに表示されているのを確認したら、あとは適当なエリアにドラッグ&ドロップして配置します。
適当な商品で、商品ステータスを「NEW」にしてみて、商品が表示されるか確認してみてください。

EC-CUBE サブカテゴリーを最初から表示する

「この商品を買った人はこんな商品も買っています」プラグイン

新着商品を自動表示

時間がとれたら、試します。


$ホーリーのブログ「ホリブロ」
http://ec-cube.nakweb.com/blog/318.html

売り上げランキングを表示するモジュール

時間がとれたら試します。

$ホーリーのブログ「ホリブロ」
http://www.jeia.co.jp/report/2010/09/14/212/

合計金額に応じた代金手数料 設定方法

下記が参考になりました。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=419&forum=10

制限金額と手数料をそれぞれ設定すると現状の仕様でも
対応できるかと思いますが、どうでしょうか。

以下、例になります。

代引 1円~5000円 手数料 300円
代引 5001円~10000円 手数料 500円




管理画面>基本情報管理>支払方法設定

下記のように設定してみました。

$ホーリーのブログ「ホリブロ」