質問 > フロント機能 > 新着商品に表示される価格がおかしい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nikuudon |
投稿日時: 2012/8/31 23:05
対応状況: −−−
|
常連 登録日: 2012/7/2 居住地: 投稿: 61 |
新着商品に表示される価格がおかしい たびたびすいません。
ec-cube初心者です。 下記のサイトを参考に http://ec-cube.nakweb.com/blog/318.html 新着商品がトップページに表示されるようにしたのですが、 商品の価格を変更したときに(規格によって価格を変更するようにした)新しい価格が表示されずに、最初に登録したときの価格が消えずにそのまま残ります。 どこをどのように変更すれば、よろしいでしょうか?? すいません。どなたかお教えください。 ---------------------------- [EC-CUBE] 2.11.1 [PHP] PHP 5.3.13 [データベース] MySQL 5.0.77 ---------------------------- |
torataro |
投稿日時: 2012/8/31 23:25
対応状況: −−−
|
一人前 登録日: 2010/6/16 居住地: 東京都台東区 投稿: 140 |
Re: 新着商品に表示される価格がおかしい こんばんわ。
価格は規格毎に変わることがありますので、 商品情報を表示する際に、最低価格と最高価格をテンプレートにアサインしていると思います。 最低価格 又は 最高価格 が表示されいてるのではないでしょうか。 参考になれば幸いです。 |
nikuudon |
投稿日時: 2012/9/1 1:07
対応状況: −−−
|
常連 登録日: 2012/7/2 居住地: 投稿: 61 |
Re: 新着商品に表示される価格がおかしい torataroさん
自分もそうかと思い、規格の価格を調べたのですが、 表示が0円となっており、どの規格も0円になっていないです。。。 すいません、お助けください。。 もし、アドバイスされる際にソースが必要であればどこのソースが必要かもお教えください。 |
AMUAMU |
投稿日時: 2012/9/3 18:11
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 新着商品に表示される価格がおかしい 参照先のSQLクエリの内容が間違っているような気がします。
SC_Product経由で正当なクエリを取得するように直す必要があると思います。 LC_Page_Products_ListやLC_Page_FrontParts_Bloc_Recommendの取得部分を参考にすると良いと思います。
|
nikuudon |
投稿日時: 2012/9/4 21:46
対応状況: −−−
|
常連 登録日: 2012/7/2 居住地: 投稿: 61 |
Re: 新着商品に表示される価格がおかしい AMUAMUさん
ご返答いただきありがとうございます! すいません。 おすすめ商品の表示もおかしくて 0円とかで表示されます。 商品一覧ページではきちんと表示されるのですが、 どこのソースをさわればよろしいでしょうか? すいません。初心者でまだまだ分からない部分がたくさんあります。 LC_Page_FrontParts_Bloc_Recommend.phpのソースを下記に記載しておりますので、よろしければお教えください。 できれば、一覧ページでは安い価格〜高い価格で表示されておりますが、 安い価格だけ表示されれば大丈夫です。 // {{{ requires require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php'; /** * Recommend のページクラス. * * @package Page * @author LOCKON CO.,LTD. * @version $Id: LC_Page_FrontParts_Bloc_Best5 - Copy.php -1 $ */ class LC_Page_FrontParts_Bloc_Recommend extends LC_Page_FrontParts_Bloc { // }}} // {{{ functions /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { // 基本情報を渡す $objSiteInfo = SC_Helper_DB_Ex::sfGetBasisData(); $this->arrInfo = $objSiteInfo->data; //おすすめ商品表示 $this->arrBestProducts = $this->lfGetRanking(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } /** * おすすめ商品検索. * * @return array $arrBestProducts 検索結果配列 */ function lfGetRanking(){ $arrProduct = array(); // おすすめ商品取得 $objQuery = SC_Query_Ex::getSingletonInstance(); $col = 'best_id, best_id, category_id, rank, product_id, title, comment, create_date, update_date'; $table = 'dtb_best_products'; $where = 'del_flg = 0'; $objQuery->setOrder('rank'); $objQuery->setLimit(RECOMMEND_NUM); $arrBestProducts = $objQuery->select($col, $table, $where); if ( is_array($arrBestProducts) && count($arrBestProducts) > 0 ) { // 各商品の詳細情報を取得 $objQuery = SC_Query_Ex::getSingletonInstance(); $objProduct = new SC_Product_Ex(); // where条件生成&セット $arrBestProductIds = array(); $where = 'product_id IN ( '; foreach( $arrBestProducts as $key => $val ) { $arrBestProductIds[] = $val['product_id']; } $where .= implode(', ', $arrBestProductIds); $where .= ' )'; $objQuery->setWhere($where); // 取得 $arrProductList = $objProduct->lists($objQuery); // おすすめ商品情報とマージ foreach( $arrProductList as $pdct_key => $pdct_val ) { foreach( $arrBestProducts as $best_key => $best_val ) { if ( $pdct_val['product_id'] == $best_val['product_id'] ) { $arrProduct[$best_key] = array_merge($best_val, $pdct_val); break; } } } } return $arrProduct; } } ?> |
AMUAMU |
投稿日時: 2012/9/5 3:32
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 新着商品に表示される価格がおかしい 参考にするべきは $objProduct(SC_Productオブジェクト)を扱っている部分です
|
nikuudon |
投稿日時: 2012/9/5 20:11
対応状況: −−−
|
常連 登録日: 2012/7/2 居住地: 投稿: 61 |
Re: 新着商品に表示される価格がおかしい AMUAMUさん
ご返事ありがとうございます。 しかし、調べてみたのですが、 分からず苦戦しております。 すいません。 $objProduct(SC_Productオブジェクト)の どの部分を参考にすればよろしいでしょうか?? |
AMUAMU |
投稿日時: 2012/9/5 22:39
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 新着商品に表示される価格がおかしい どの部分と言いましても、一通り必要な部分は前述の中に含まれていると思います。
なにをどう試して、どう分からないのか、どういう問題が生じているのかが分からないとお答えするのも難しいです
|
nikuudon |
投稿日時: 2012/9/5 23:49
対応状況: −−−
|
常連 登録日: 2012/7/2 居住地: 投稿: 61 |
Re: 新着商品に表示される価格がおかしい AMUAMUさん
すいません。分かりにくかったですね。。 ご指摘ありがとうございます。 おすすめ商品の表示が旧価格で表示されていたのは、 下記のサイトで解決できました。 http://svn.ec-cube.net/open_trac/changeset/21215 しかし新着商品が旧価格で表示されるのは、解決できておりません。 下記のサイトを参考に http://ec-cube.nakweb.com/blog/318.html 制作したのですが、 新着商品のページのLC_Page_FrontParts_Bloc_ProductFlag.phpのソースが おすすめ商品のLC_Page_FrontParts_Bloc_Recommend.phpの ソースと内容が全くことなるので、 $objProduct(SC_Productオブジェクト)を参考にして LC_Page_FrontParts_Bloc_ProductFlag.phpにどのように反映させればよろしいのか、お教えください。 よろしくお願い致します。 現在の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(); } } ?> ---------------------------- [EC-CUBE] 2.11.1 [PHP] PHP 5.3.13 [データベース] MySQL 5.0.77 ---------------------------- |
nikuudon |
投稿日時: 2012/9/8 12:38
対応状況: −−−
|
常連 登録日: 2012/7/2 居住地: 投稿: 61 |
Re: 新着商品に表示される価格がおかしい すいません!無事解決しました!
下記のページを参考にしたところ ようやく規格の価格が表示されるようになりました! http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8262&forum=10&viewmode=flat&order=ASC&start=40 ご返答いただいたみなさん、 ほんとうにありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |