質問 > フロント機能 > 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
by0448 |
投稿日時: 2012/6/28 14:11
対応状況: −−−
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う いつもお世話になっております。
カート画面への遷移が煩わしく、以下のように変更しました。
確かに買い物はできているのですが、左カラムにつけたカートブロックの反応がおかしくなってしまっています。 商品数はちゃんと増えるのですが、商品金額と送料手数料無料の金額部分が計算されません。 ただし、一度更新ボタンを押せば、計算されるようになりますが、入れた瞬間に反応してくれないのは、不都合があります。 この場合、どこを修正すればいいのでしょうか? お知恵をお貸し頂けますよう、宜しくお願い致します。 EC-CUBEバージョン 2.12.0 PHPバージョン PHP 5.1.6 DBバージョン MySQL 5.0.77 |
AMUAMU |
投稿日時: 2012/6/28 16:32
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う 合計金額を算出する処理を呼び出すように修正しないと、計算されないと思います。
該当の部分はカゴの中画面で呼出処理をしていたと思うので確認してみると良いと思います(処理本体はSC_CartSessionです)。
|
by0448 |
投稿日時: 2012/6/28 16:49
対応状況: −−−
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う AMUAMU 様 ご返答ありがとうございました。
おっしゃる通りに /data/class/SC_CartSession.phpをみました。 しかし、どこをいじればいいのか、見当がつきません。 宜しければ、修正個所をお教え願えないでしょうか? 宜しくお願い致します。 |
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/8/16 20:12
対応状況: −−−
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う soy_bean 様
ご返答ありがとうございます。 自分では何もわからず、半ばあきらめていましたが、このようにお助けいただいたことに感謝致します。 しかしながら、どうにも上手くいかないので、以下のやり方で宜しいのか確認して頂けないでしょうか。
soy_bean 様助言では、このように書かれていますが、自分も同じようにやってみたところ、どうにも上手くいきません。 関数を変更をした方が良いという事で、priceを他の文字に変えましたが、これも上手くいかないようでした。 どこが間違えているのか、ご教授いただけますでしょうか。 宜しくお願い致します。 |
soy_bean |
投稿日時: 2012/8/17 12:16
対応状況: −−−
|
新米 登録日: 2012/8/14 居住地: 投稿: 5 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う /data/class/pages/products/LC_Page_Products_Detail.php
159行目 $objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity')); を $objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity'), $this->objFormParam->getValue('price')); に変更でどうでしょう? やってることは、 カートセッションの値段を参照してカートの値段を計算してるのに、 商品詳細のとこでは数量と商品IDしか入れてないことがわかるので、 カートセッションの構造を見て、値段を入れる場所に、 上記と同じタイミングで値段を入れておこうてことです。 でpriceは変えちゃまずいと思う。 変えた方がいいというのはaddProductをaddProduct_priceとかにして、 元のaddProduct参考に別に作ったほうがいいかもということです。 |
by0448 |
投稿日時: 2012/8/17 14:15
対応状況: −−−
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う soy_bean 様
ご返答ありがとうございます。 おっしゃる通り、やってみましたが、やはり上手くいきません。 /data/Smarty/templates/default/products/detail.tpl こちらのファイルの追加個所がまずいのでしょうか。 <input type="hidden" が4つ並んでいるところに追加したのですが、間違えているという事はありませんか? ただ、色んな箇所に張り付けたりしてますが、やはり反応しません。 priceの書き換えは違うのですね、あまりに無知でずれた質問をしてしまい、申しわけないです。 引き続き、ご教授いただけますよう、宜しくお願い致します。 |
soy_bean |
投稿日時: 2012/8/17 15:39
対応状況: −−−
|
新米 登録日: 2012/8/14 居住地: 投稿: 5 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う すみません書き忘れてました
/data/class/pages/products/LC_Page_Products_Detail.php の434行目付近の function lfInitParam(&$objFormParam) に $objFormParam->addParam('販売価格', 'price', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 追加でどうでしょう? ちょっと新しく環境作り直してチェックする余裕がないので、 詳しい原因は教えられないかもしれません。 またカート遷移させない方法とか他機能の実装のために変更した個所が有効になってるせいかもしれません。 あとエラー出ていますか、それとも「かご内の値段」が変わらないですか? |
by0448 |
投稿日時: 2012/8/17 17:31
対応状況: 解決済
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う soy_bean 様
ご返答ありがとうございます。 お陰様で、修正が出来ました。
この一行を追加しましたら、ちゃんとかごの料金が変更されるようになりました。 本当にありがとうございます。 この情報を参考に、商品一覧ページの方でも、同じようにかごに入れた瞬間に料金が加算された表示になる様に修正してみます。 色々とご教授いただき、ありがとうございました。 |
hirokato |
投稿日時: 2012/8/22 23:45
対応状況: −−−
|
新米 登録日: 2012/8/22 居住地: 投稿: 2 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う スレッド主のby0448様
解決済みのスレッドですが横からコメントを失礼致します soy_bean様がお詳しいようなので こちらへの返信と言う形でコメントさせていただきました この問題に関わる内容について質問をさせてください (2.12.1で作成しています) 前述にあります通りに 各ファイルの所定の箇所に追記・変更し 「カゴに入れる」をクリックすると「現在のカゴ」の金額が変わるようになりました しかしよくよく見てみるとどうも動作がおかしいのです 具体的にどのようにおかしいのかと言いますと… 商品詳細ページで 商品の規格を S 525円(税込) M 1525円(税込) L 2625円(税込) と3サイズ用意しているのですが MやLを選択して「カゴにいれる」をクリックしても なぜかSの金額が「現在のカゴ」に反映されてしまうようで しかもなぜか525円が追加されるのではなく 551円という、26円余分に価格が追加されてしまうのです ただ、カートのページへ移動すると 本来選択したサイズと価格はきちんと反映されていて そのページ移動に伴って「現在のカゴ」の価格もその正しい金額に表示し直されます ほかに参考になりそうなこととしては… ・ポイントは1%付くようにしています ・データ商品販売のため、いくつも購入することはないので 数量選択はコメントアウトして自動的に1になるようにしています どこかに問題があるのか どういう改善方法が考えられるのか お知恵をお貸しいただけますでしょうか。。。 よろしくお願い致します |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |