質問 > フロント機能 > 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seasoft |
投稿日時: 2013/4/3 23:22
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う 引用:
SC_CartSession#addProduct の末尾に下記コードを1行追加するだけで十分なようです。(2.12.2 で確認)
|
uubb |
投稿日時: 2012/9/11 12:55
対応状況: −−−
|
常連 登録日: 2012/5/29 居住地: 投稿: 53 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う hirokatoさんと同様に規格によって値段が違う場合は、うまく行きません。
<input type="hidden" name="price" value="<!--{$arrProduct.price02_min_inctax}-->" /> >内のvalueの値を<!--{$arrProduct.price02_min}-->にすれば規格内最安値(税込)の数値が入ります。 規格選択された際の数値が必要なので、<!--{$arrProduct.price02_min|number_format}-->にすればエラーがでます。 number_formatの数値どこで渡せばいいのかうまく検討できません。 |
hirokato |
投稿日時: 2012/8/24 12:34
対応状況: −−−
|
新米 登録日: 2012/8/22 居住地: 投稿: 2 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う 返答ありがとうございます
値段がおかしいのは税込み値段にまた税をかけているんですね… ><input type="hidden" name="price" value="<!--{$arrProduct.price02_min_inctax}-->" /> >内のvalueの値を適切なものに変更してください。 の「適切なもの」がわかりませんが、いろいろ試して頑張ってみます 規格によって値段が違う場合の解決案についても 何をどうすれば良いのかさっぱりですが、、、 手がかりをいただけたのでこちらも頑張ってみます どうしても進めなかったらまた質問させていただこうと思います |
soy_bean |
投稿日時: 2012/8/23 9:45
対応状況: −−−
|
新米 登録日: 2012/8/14 居住地: 投稿: 5 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う ちょっと忙しく、実装してプログラム変更を教える余裕はなさそうです。
まず値段がおかしくなるのは、 商品値段+5%税になってるようですね。 /data/Smarty/templates/default/products/detail.tpl の <input type="hidden" name="price" value="<!--{$arrProduct.price02_min_inctax}-->" /> 内のvalueの値を適切なものに変更してください。 自分の場合規格によらず値段統一でしたので規格は考慮してませんでした。 解決案として思いついたのは ?tpl側を主に修正する方法 上記valueの値を選択している規格によって、smartyを使い条件分岐変更する方法。 ?LC_Page_Products_Detail.php側を主に修正する方法 得られる規格と商品の情報を使い、データベースの商品情報部分からpriceを作成する方法。 あたりでしょうか。 |
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になるようにしています どこかに問題があるのか どういう改善方法が考えられるのか お知恵をお貸しいただけますでしょうか。。。 よろしくお願い致します |
by0448 |
投稿日時: 2012/8/17 17:31
対応状況: 解決済
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う soy_bean 様
ご返答ありがとうございます。 お陰様で、修正が出来ました。
この一行を追加しましたら、ちゃんとかごの料金が変更されるようになりました。 本当にありがとうございます。 この情報を参考に、商品一覧ページの方でも、同じようにかごに入れた瞬間に料金が加算された表示になる様に修正してみます。 色々とご教授いただき、ありがとうございました。 |
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 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 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/16 20:12
対応状況: −−−
|
長老 登録日: 2011/9/12 居住地: 横浜市 投稿: 186 |
Re: 【2.12】カゴに入れた直後にカート画面に飛ばないようにすると、カートブロックの計算が狂う soy_bean 様
ご返答ありがとうございます。 自分では何もわからず、半ばあきらめていましたが、このようにお助けいただいたことに感謝致します。 しかしながら、どうにも上手くいかないので、以下のやり方で宜しいのか確認して頂けないでしょうか。
soy_bean 様助言では、このように書かれていますが、自分も同じようにやってみたところ、どうにも上手くいきません。 関数を変更をした方が良いという事で、priceを他の文字に変えましたが、これも上手くいかないようでした。 どこが間違えているのか、ご教授いただけますでしょうか。 宜しくお願い致します。 |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |