バージョン選択

フォーラム

メニュー

オンライン状況

91 人のユーザが現在オンラインです。 (73 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 91
もっと...

サイト内検索

質問 > フロント機能 > 規格で分けられた商品の価格表示

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
noname
投稿日時: 2010/10/8 11:23
対応状況: −−−
半人前
登録日: 2009/1/8
居住地:
投稿: 29
規格で分けられた商品の価格表示
Ver 2.4.1の場合下記のリンクで解決方法はありますが、Ver2.4.3の場合改良必要があります。実際に解決できた方がいれば是非教えて下さい。サイズなどによって異なった価格が表示できないのはec-cubeの一番大きい欠点だと思います。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=430&forum=6&post_id=1218#forumpost1218
AMUAMU
投稿日時: 2010/10/8 12:34
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 規格で分けられた商品の価格表示
斜め読みですが、リンク先の最後の方の内容とほぼ同じ差分修正だけで同じ事が実現出来るかと思います。
規格によって価格表示したいかどうかは、サイトや取り扱い品によるので一概に言えないと思います。(元々想定しているのがSML等サイズ違いなどを想定しているんでしょうね


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

noname
投稿日時: 2010/10/8 16:28
対応状況: −−−
半人前
登録日: 2009/1/8
居住地:
投稿: 29
Re: 規格で分けられた商品の価格表示
ちょっと修正すれば解決できると思いますが何日間頑張っていもだめでした。最終的にここで聞いてみようと思いました。
AMUAMU
投稿日時: 2010/10/8 16:44
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 規格で分けられた商品の価格表示
何をやってどのようにダメだったか、どううまくいかなかったかを出されるとレスがつきやすいと思います。

また下記もお読み頂いた方が良いと思います。
http://xoops.ec-cube.net/modules/tinyd0/index.php?id=8


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

clicktx
投稿日時: 2010/10/8 17:14
対応状況: −−−
常連
登録日: 2010/9/27
居住地:
投稿: 33
Re: 規格で分けられた商品の価格表示
ver2.4.4ですが、多少の変更で実現出来ています。
(リンク先のセレクトボックスないに価格を表示する方法)

また、自分は詳細ページ(detail)に価格の一覧を表示する・・・というのも組み込んでいます。

規格選択セレクトボックスの作成 (function lfMakeSelect)のソースを貼っておきます。
MY〜とコメントされている部分が改良してある場所だと思いますが、他にも手を入れているためその限りではありませんのであしからず。

モバイル版でも同様のことが出来ますよ。


    /* 規格選択セレクトボックスの作成 */
    function lfMakeSelect($product_id) {

        $objDb = new SC_Helper_DB_Ex();
        $classcat_find1 = false;
        $classcat_find2 = false;
        // 在庫ありの商品の有無
        $stock_find = false;

        // 規格名一覧
        $arrClassName = $objDb->sfGetIDValueList("dtb_class", "class_id", "name");
        // 規格分類名一覧
        $arrClassCatName = $objDb->sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
        // 商品規格情報の取得
        $arrProductsClass = $this->lfGetProductsClass($product_id);

        // 規格1クラス名の取得
        $this->tpl_class_name1 = isset($arrClassName[$arrProductsClass[0]['class_id1']])
                                        ? $arrClassName[$arrProductsClass[0]['class_id1']] : "";
        // 規格2クラス名の取得
        $this->tpl_class_name2 = isset($arrClassName[$arrProductsClass[0]['class_id2']])
                                        ? $arrClassName[$arrProductsClass[0]['class_id2']] : "";

        // すべての組み合わせ数
        $count = count($arrProductsClass);

        $classcat_id1 = "";

        $arrSele = array();
        $arrList = array();

        $list_id = 0;
        $arrList[0] = "\tlist0 = new Array('選択してください'";
        $arrVal[0] = "\tval0 = new Array(''";
        
        for ($i = 0; $i < $count; $i++) {
            // 在庫のチェック
            if($arrProductsClass[$i]['stock'] <= 0 && $arrProductsClass[$i]['stock_unlimited'] != '1') {
                continue;
            }

            $stock_find = true;
            
            // MY 2010-09-30 税込価格を算出
            $taxin_price = SC_Utils::sfPreTax($arrProductsClass[$i]['price02'], $arrInfo['tax'], $arrInfo['tax_rule']);
            // MY -------------------------------------------------------
            
            // 規格1のセレクトボックス用
            if($classcat_id1 != $arrProductsClass[$i]['classcategory_id1']){
                $arrList[$list_id].=");\n";
                $arrVal[$list_id].=");\n";
                $classcat_id1 = $arrProductsClass[$i]['classcategory_id1'];
                
                // MY 2010-09-30 select_boxの表示項目に設定
                if ($arrProductsClass[$i]['classcategory_id2'])
                {      // 規格2がある場合
                    $arrSele[$classcat_id1] = $arrClassCatName[$classcat_id1];
                }
                else
                {  // 規格2がない場合
                    $arrSele[$classcat_id1] = $arrClassCatName[$classcat_id1]
                    ." - ¥". number_format($taxin_price) ."(税込)";
                }
                // MY -------------------------------------------------------
                
                $list_id++;
            }

            // 規格2のセレクトボックス用
            $classcat_id2 = $arrProductsClass[$i]['classcategory_id2'];

            // セレクトボックス表示値
            if (!isset($arrList[$list_id])) $arrList[$list_id] = "";
            if($arrList[$list_id] == "") {
                $arrList[$list_id] = "\tlist".$list_id." = new Array('選択してください', '".$arrClassCatName[$classcat_id2]." - ¥".number_format($taxin_price)."(税込)'";
            } else {
                $arrList[$list_id].= ", '".$arrClassCatName[$classcat_id2]." - ¥".number_format($taxin_price)."(税込)'";
            }

            // セレクトボックスPOST値
            if (!isset($arrVal[$list_id])) $arrVal[$list_id] = "";
            if($arrVal[$list_id] == "") {
                $arrVal[$list_id] = "\tval".$list_id." = new Array('', '".$classcat_id2."'";
            } else {
                $arrVal[$list_id].= ", '".$classcat_id2."'";
            }
            
        }//for end

        
        $arrList[$list_id].=");\n";
        $arrVal[$list_id].=");\n";

        // 規格1
        $this->arrClassCat1 = $arrSele;

        $lists = "\tlists = new Array(";
        $no = 0;

        foreach($arrList as $val) {
            $this->tpl_javascript.= $val;
            if ($no != 0) {
                $lists.= ",list".$no;
            } else {
                $lists.= "list".$no;
            }
            $no++;
        }
        $this->tpl_javascript.=$lists.");\n";

        $vals = "\tvals = new Array(";
        $no = 0;

        foreach($arrVal as $val) {
            $this->tpl_javascript.= $val;
            if ($no != 0) {
                $vals.= ",val".$no;
            } else {
                $vals.= "val".$no;
            }
            $no++;
        }
        $this->tpl_javascript.=$vals.");\n";

        // 選択されている規格2ID
        if (!isset($_POST['classcategory_id2'])) $_POST['classcategory_id2'] = "";
        $this->tpl_onload = "lnSetSelect('form1', 'classcategory_id1', 'classcategory_id2', '" . htmlspecialchars($_POST['classcategory_id2'], ENT_QUOTES) . "');";

        // 規格1が設定されている
        if($arrProductsClass[0]['classcategory_id1'] != '0') {
            $classcat_find1 = true;
        }

        // 規格2が設定されている
        if($arrProductsClass[0]['classcategory_id2'] != '0') {
            $classcat_find2 = true;
        }

        $this->tpl_classcat_find1 = $classcat_find1;
        $this->tpl_classcat_find2 = $classcat_find2;
        $this->tpl_stock_find = $stock_find;
    }
kazuma78
投稿日時: 2010/10/16 16:39
対応状況: −−−
新米
登録日: 2010/10/16
居住地:
投稿: 1
Re: 規格で分けられた商品の価格表示
>clicktx様


私も当スレッド主様と同様の内容でつまづき、良い方法はないかと検索してみたところ、こちらにたどり着きました。


clicktx様の貼り付けられたソースをそのままペーストしてみたところ、セレクトボックス内に税込価格を表示する部分は生成されたのですが、肝心の価格がどの規格も0円として表示されてしまいます。


これ以外にも手を加えるべき部分があるのでしょうか。

よろしかったらご指導願います。
fhon99
投稿日時: 2010/10/20 10:15
対応状況: −−−
新米
登録日: 2010/10/20
居住地:
投稿: 1
Re: 規格で分けられた商品の価格表示
似たような仕組みを入れおります。

規格の価格 price02 を取得する必要があります。

/* 商品規格情報の取得 */
function lfGetProductsClass

$col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited, price02";

ご参考までに。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,420名です
総投稿数は110,397件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1694
8
red
1571
9
mcontact
1371
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.