バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 販売価格を複数設定したときのカートの計算

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
m-rei
投稿日時: 2011/8/16 17:39
対応状況: −−−
新米
登録日: 2011/8/16
居住地:
投稿: 3
販売価格を複数設定したときのカートの計算
初めまして。
現在ver.2.11.1をMAMPをインストールしたmacでカスタマイズをしております。

会員をデフォルトの仮会員、本会員の他に特別会員を増やしました。

また、商品の価格もprice03、price04を追加するところまでは出来たのですが、カート内での計算が上手くいきません。

カート内でのログイン判定を行い
<!--{$item.productsClass.price02|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}-->円
をprice03,price04に変更して対応しようと思いましたが値が入っていないようです。

$item.productsClass.はどこで設定するのでしょうか?

2.4系では確かSC_Helper_DB.phpで設定した記憶があるのですが・・・

また、他にもっとよい方法がありましたらご教示頂ければ幸いです。よろしくいお願い致します。
shutta
投稿日時: 2011/8/16 19:51
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: 販売価格を複数設定したときのカートの計算
/data/class/pages/cart/LC_Page_Cart.phpだと、

$this->cartItems =& $objCartSess->getAllCartList();

の部分でセットされています。

で、テンプレート部分(/data/Smarty/templates/default/cart/index.tpl)では、

<!--{foreach from=$cartItems[$key] item=item}-->

で、$itemに渡ってくるようになっていますね。

/data/class/SC_CartSession.php の getAllCartListとか、getCartListあたりを弄ってみるのが良いような気がします。


----------------

リゾート会員権(エクシブ等)の売買・仲介

m-rei
投稿日時: 2011/8/17 17:54
対応状況: −−−
新米
登録日: 2011/8/16
居住地:
投稿: 3
Re: 販売価格を複数設定したときのカートの計算
shutta様

ご返信頂きありがとうございます。
質問の件はカートページで会員のステータスを読み込めておらず、条件分岐が出来ていなかったのが原因のよう
getValue('status')をして会員ステータスを読み込むことで
<!--{$item.productsClass.price03|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}-->円
<!--{$item.productsClass.price04|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}-->円
ともに正常に表示されるようになりました。

shutta様のおっしゃる通り、/data/class/SC_CartSession.phpでカート内の計算を行っているようですが
L316辺りの$priceにデフォルトだとprice02が入ってしまうのですが、これをstatusが2のときはprice03を
stausが3のときにはprice04を入れたいのですがどのようにすればよろしいでしょうか?

PHP初心者で問い合わせフォームくらいしか作ったことがないレベルですが、ヒントだけでも頂ければ幸いです。

よろしくお願い致します。
shutta
投稿日時: 2011/8/17 18:25
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: 販売価格を複数設定したときのカートの計算
そのまんまかもしれませんが、SC_CartSession.phpのgetCartList中の


                $price = $this->cartSession[$productTypeId][$i]['productsClass']['price02'];
                $this->cartSession[$productTypeId][$i]['price'] = $price;


の部分をstatusに応じて、price03,price04に差し替えるようにすれば良いのではないでしょうか。


----------------

リゾート会員権(エクシブ等)の売買・仲介

m-rei
投稿日時: 2011/8/29 14:45
対応状況: −−−
新米
登録日: 2011/8/16
居住地:
投稿: 3
Re: 販売価格を複数設定したときのカートの計算
ご返信ありがとうございます。

ご指摘の箇所を

$objCustomer = new SC_Customer();
$objCustomer->isLoginSuccess();
$customerRank = $objCustomer->getValue('status');

if ($customerRank == "2") {
$rankprice = 'price03';
} else {
if ($customerRank == "3") {
$rankprice = 'price04';
} else {
$rankprice = 'price02';
}
}

$price = $this->cartSession[$productTypeId][$i]['productsClass'][$rankprice];
$this->cartSession[$productTypeId][$i]['price'] = $price;

とすることで上手く動くようになりました。

ありがとうございました。
ricarica
投稿日時: 2011/8/31 15:55
対応状況: −−−
常連
登録日: 2011/8/22
居住地:
投稿: 48
Re: 販売価格を複数設定したときのtplファイルでのstatus判定について
いろいろ探していたら見つけました。

そこで、質問させていただきます。
私も販売価格を増やしているのですが、detail.tplでstatusによって、表記を変えようとして奮闘してます。

ログイン判定に関しては、わかったのですが、以下の販売価格と会員価格を  IFを使って、status が"2" のときと"3"のときで
下記を切り替えたいのです。
どうか詳しく教えていただけないでしょうか。

========================================

<!--★販売価格★-->
<div class="sale_price"><!--{$smarty.const.SALE_PRICE_TITLE}-->(税込):
<span class="price">
<span id="price02_default">
<!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
<!--{$arrProduct.price02_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
<!--{else}-->
<!--{$arrProduct.price02_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->〜<!--{$arrProduct.price02_max|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
<!--{/if}-->
</span><span id="price02_dynamic"></span>

</span>
</div>

<!--★会員価格★-->
<div class="sale_price"><!--{$smarty.const.SALE_PRICE03_TITLE}-->(税込):
<span class="price">
<span id="price03_default">
<!--{if $arrProduct.price03_min == $arrProduct.price03_max}-->
<!--{$arrProduct.price03_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
<!--{else}-->
<!--{$arrProduct.price03_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->〜<!--{$arrProduct.price03_max|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
<!--{/if}-->
</span><span id="price03_dynamic"></span>

</span>
</div>
=======================================================
php勉強して間もないのですが、宜しくお願いします。
eccube ver2.11.1 MYSQLです
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1364
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.