質問 > その他 > 注文個数×使用ポイント数上限での設定方法 |
その他
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
toratora |
投稿日時: 2017/1/5 10:25
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 投稿: 19 |
Re: 注文個数×使用ポイント数上限での設定方法 468様
示していただいたとおりの記述にしましたところ、 思い通りの動きになりました! 助かりました、 ありがとうございました! |
468 |
投稿日時: 2017/1/5 2:42
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 注文個数×使用ポイント数上限での設定方法 返信ありがとうございます。
73行目の$objCartSessはfunction action() {}内で利用するスコープの変数の為、 エラーチェックを追加したfunction lfCheckError() {}内には何も引き継がれていないと思います。 多少メモリの無駄があるかもしれませんが、 if (($arrForm['use_point'] * POINT_VALUE) > 500 * $arrItem['quantity']) { の記述の上の行で、再度、変数にインスタンスを格納して判定の記述を変更するのが手っ取り早いと思います。
↑$arrItem['quantity']を$quantityに変更していますので、気を付けてください。
|
toratora |
投稿日時: 2017/1/5 0:19
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 投稿: 19 |
Re: 注文個数×使用ポイント数上限での設定方法 468様
すみません、ec-cube2.13.2でした。 309行付近の if (($arrForm['use_point'] * POINT_VALUE) > $subtotal) { $objErr->arrErr['use_point'] = '※ ご利用ポイントがご購入金額を超えています。<br>'; } の下に、 if (($arrForm['use_point'] * POINT_VALUE) > 500 * $arrItem['quantity']) { $objErr->arrErr['use_point'] = '※ ポイントは1点につき500ポイントまでです。<br>'; } と入れました。 ご指摘の通り 恐らく$arrItem['quantity']に数値が入っていないようです。 掛けると1ポイントでも使用不可になります。 $objCartSess = new SC_CartSession_Ex(); $quantity = $objCartSess->getTotalQuantity(1); 上記で取得できるとのこと、 教えて頂きありがとうございます。 $objCartSess = new SC_CartSession_Ex();は、 73行目付近に最初から入っていたようです。 その下辺りの、 // カートの情報を取得 のところに $quantity = $objCartSess->getTotalQuantity(1); を挿入してみましたが、状況変わらずでした。 入れる場所が間違っているのでしょうか。 |
468 |
投稿日時: 2017/1/4 14:06
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 注文個数×使用ポイント数上限での設定方法 ECCUBE2.13系でしょうか?
2.13系の場合、/data/class/pages/shopping/LC_Page_Shopping_Payment.php 316行目付近に if文を追記されたのではないかと思いますが、 $arrItem['quantity']にカート内の数量が入っていますか? 提示されているソース内の $arrItem['quantity']を直接「2」等の数値に書き換えた場合、 想定通りの判定が行われましたので、 $arrItem['quantity']が怪しいかと思いました。 LC_Page_Shopping_Payment.phpでカート内の通常商品の数量を取得する場合、以下の記述で取得できると思います。
ダウンロード商品の場合は、$quantity = $objCartSess->getTotalQuantity(2);で取得できます。 通常商品とダウンロード商品どちらも取扱いされる場合は、 お客様が購入しようとしている商品が通常商品か?ダウンロード商品か?判定が必要となります。
|
toratora |
投稿日時: 2017/1/2 1:50
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 投稿: 19 |
注文個数×使用ポイント数上限での設定方法 以下を参考に、注文毎の使用ポイント数上限の設定は出来たのですが、 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=4519&forum=2 注文個数×ポイント上限にというふうに するにはどうしたら良いでしょうか? 商品注文1点の上限が500ポイントとすれば、 注文商品合計点数が2点あれば1000ポイントまで、使用できる。 というふうにしたいです。 以下を参考に http://memo.koubousya.jp/contents/224 カート内点数の数値を取得して if (($arrForm['use_point'] * POINT_VALUE) > 500 * $arrItem['quantity'];) { $objErr->arrErr['use_point'] = '※ ポイントは1点につき500ポイントまでです。<br>'; } としてみましたが、 上手く機能しませんでした。 具体的な記述は、 どの部分をどのようにすればよいでしょうか。 宜しくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |