バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soy_bean
投稿日時: 2012/8/14 15:59
対応状況: −−−
新米
登録日: 2012/8/14
居住地:
投稿: 5
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う
詳細のほうだけですが、
「カゴに入れる」を押したときに、まだpriceの情報がカートセッションに入っていないため、カートに金額が反映されていないと思います。
カートはセッションの情報を参照して金額や数量だしているみたい。

detail.tplに
<input type="hidden" name="price" value="<!--{$arrProduct.price02_min_inctax}-->" />
あたりを追加して

LC_Page_Products_Detail.phpの
case 'cart'内の$objCartSess->addProductにpriceを追加
$objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity'), $this->objFormParam->getValue('price'));

SC_CartSession.phpのfunction addProductを
function addProduct($product_class_id, $quantity, $price) {
にして

if (strlen($val) <= INT_LEN) { 内に
$this->cartSession[$productTypeId][$i]['price'] = $price;

if (!$find) { 内に
$this->cartSession[$productTypeId][$max+1]['price'] = $price;
を追加する感じで自分はごまかしました。

もっといいやり方あると思いますし、
他で使うかもしれないので元の関数は残して、
いじる関数は別名にした方がいいと思います。
by0448
投稿日時: 2012/6/28 16:49
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う
AMUAMU 様 ご返答ありがとうございました。

おっしゃる通りに
/data/class/SC_CartSession.phpをみました。

しかし、どこをいじればいいのか、見当がつきません。

宜しければ、修正個所をお教え願えないでしょうか?

宜しくお願い致します。
AMUAMU
投稿日時: 2012/6/28 16:32
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う
合計金額を算出する処理を呼び出すように修正しないと、計算されないと思います。
該当の部分はカゴの中画面で呼出処理をしていたと思うので確認してみると良いと思います(処理本体はSC_CartSessionです)。


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

[url=h

by0448
投稿日時: 2012/6/28 14:11
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う
いつもお世話になっております。

カート画面への遷移が煩わしく、以下のように変更しました。

LC_Page_Products_Detail.php 160行目付近
LC_Page_Products_List.php 195行目付近

SC_Response_Ex::sendRedirect(CART_URLPATH); 
SC_Response_Ex::actionExit();
↓

//カゴに入れた直後にカート画面に飛ばない。携帯とスマートフォンには適用しない。
if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) {
SC_Response_Ex::sendRedirect(CART_URLPATH);
exit;
} else {
//セッションに商品を買った事を保持する
$_SESSION['cart_buy_now'] = TRUE;
//リンク元のURLにリダイレクトさせる
SC_Response_Ex::sendRedirect($_SERVER['HTTP_REFERER']);
exit;
} 



確かに買い物はできているのですが、左カラムにつけたカートブロックの反応がおかしくなってしまっています。

商品数はちゃんと増えるのですが、商品金額と送料手数料無料の金額部分が計算されません。
ただし、一度更新ボタンを押せば、計算されるようになりますが、入れた瞬間に反応してくれないのは、不都合があります。


この場合、どこを修正すればいいのでしょうか?
お知恵をお貸し頂けますよう、宜しくお願い致します。



EC-CUBEバージョン 2.12.0
PHPバージョン PHP 5.1.6
DBバージョン MySQL 5.0.77

« 1 (2)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,263名です
総投稿数は110,059件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1299
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.