質問 > フロント機能 > ショップでの最低購入金額を設定したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
TamaDongu |
投稿日時: 2014/5/29 1:55
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2014/5/29 居住地: 投稿: 5 |
ショップでの最低購入金額を設定したい こんにちは。
EC-CUBE初心者の者です。 お客様が購入手続きをする時に、カートの合計金額が1000円以下の場合は、購入手続きへと移れないように設定したいのです。 あとその時に、「最低購入金額は1000円です」という注意書きも表示したいです。 (具体的には、このようなシステムですhttp://www.ocnk.net/faq/index.php?action=artikel&cat=281582&id=576&artlang=ja) しかし今はその方法が分からず、 基本情報管理>支払方法設定の利用条件を[下限1000円]に設定することで、強制的に購入できないようにしています。 しかしこの方法だと、お客様も混乱すると思うので、上記の方法をEC-CUBEで行う術をどなたかご教授いただけないでしょうか。 お願いします<m(__)m> |
ゲスト |
投稿日時: 2014/5/29 9:06
対応状況: −−−
|
Re: ショップでの最低購入金額を設定したい EC-CUBEデフォルトの設定ではご要望の対応はできないと思います。
EC-CUBE2.12系以上であれば、バージョンに合ったプラグインを探すか、あるいは、カートのプログラムをカスタマイズするしかないと思います。 |
|
tshino |
投稿日時: 2014/5/29 9:41
対応状況: −−−
|
一人前 ![]() ![]() 登録日: 2013/4/9 居住地: 投稿: 76 |
Re: ショップでの最低購入金額を設定したい デフォルトの機能でないと実現はできないです。
もし、カスタマイズするならカート表示の際に料金を計算し、 カートから先に進めないようにする形式になると思います。 どうしてもカスタマイズができないのであれば、 金額によって使用できる支払い方法を減らすとかでしょうか・・・ |
piropiro |
投稿日時: 2014/5/29 11:34
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2014/4/25 居住地: 投稿: 56 |
Re: ショップでの最低購入金額を設定したい カスタマイズ場所は、
data/class/pages/cart/LC_Page_Cart.phpです。 modeで検索してください。 ボタンクリック時にどのモードかを振り分けてます。 (120~130行目だった気がします。) この中でconfilm モードで(購入ボタンクリック時) もし商品が1件以上ならば、 購入ページへ飛ばすような処理が施されてます。 この中のif文「もし商品が1件以上ならば」に加えて 「もし合計金額が1000円以上なら」という処理を 加えると実装可能だと思います。 |
TamaDongu |
投稿日時: 2014/5/29 13:15
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2014/5/29 居住地: 投稿: 5 |
Re: ショップでの最低購入金額を設定したい 返信ありがとうございます<m(__)m>
デフォルトの設定で出来ない事が分かり、非常に参考になりました。 EC-CUBEサイト内の有料/無料プラグインを探してみましたが、そのような物はなかったので、残念です。 |
TamaDongu |
投稿日時: 2014/5/29 13:33
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2014/5/29 居住地: 投稿: 5 |
Re: ショップでの最低購入金額を設定したい カスタマイズについての言及、ありがとうございます<m(__)m>
piropiro様のおっしゃる通りに探すと、data/class/pages/cart/LC_Page_Cart.phpを見つける事が出来ました。 しかし何分、PHPについては全くの初心者ですので、四苦八苦しております。 130行目あたりに ----------------------------------------- // カート商品が1件以上存在する場合 if (count($cartList) > 0) ----------------------------------------- を見つけたのですが、これを ----------------------------------------------- // カート商品が1件以上存在する場合 $total = $cart->getTotalPrice(); if (count($cartList) > 0 and $total > 1000) ----------------------------------------------- に変更したら、値段がどのような場合であっても、[購入手続きページへ]のボタンをクリックすると、システムエラーになってしまうので、上記のやり方では間違っているんだと思いました。 PHP初心者なので、「もし合計金額が1000円以上なら」の処理の仕方が分からず、上記の[$total = $cart->getTotalPrice();]は、http://www.soycms.net/blog/article/SOY_Shop%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E8%A7%A3%E8%AA%AC_%E3%82%AB%E3%83%BC%E3%83%88%E3%81%A7%E8%B3%BC%E5%85%A5%E3%81%AE%E6%9D%A1%E4%BB%B6%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B のサイトを参考にしました。 しかし↑のサイトはSOY SHOP CMS用なので、EC-CUBEとは仕様が違うのかな、とも思います。 [PHP カート] [php EC-CUBE]等で調べてもよく分からなかったので、どなたかpiropiro様のおっしゃった ----------------------------------------------- 「もし合計金額が1000円以上なら」という処理を 加えると実装可能だと思います。 -------------------------------------------- のPHPの記述の仕方をご教授願えたら幸いです。 よろしくお願いします<m(__)m> |
piropiro |
投稿日時: 2014/5/29 14:23
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2014/4/25 居住地: 投稿: 56 |
Re: ショップでの最低購入金額を設定したい お疲れ様です。 ECCUBEなのでやり方や関数が異なります。 SC_Cartsession.phpに登録してある getAllProductsTotalという関数が使えそうです。 case 'confirm': // カート内情報の取得 $cartList = $objCartSess->getCartList($cartKey); $cartTotal = $objCartSess->getAllProductsTotal($cartKey); // カート商品が1件以上存在する場合 if (count($cartList) > 0 && $cartTotal >1000) { // カートを購入モードに設定 $this->lfSetCurrentCart($objSiteSess, $objCartSess, $cartKey); // 購入ページへ SC_Response_Ex::sendRedirect(SHOPPING_URL); SC_Response_Ex::actionExit(); } break; こんな感じでできそうです。(できました) $cartTotalで合計金額を求める関数を呼び出して、 その金額が1000円以上ならという処理を if文に加えました。引用: |
TamaDongu |
投稿日時: 2014/5/29 20:24
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2014/5/29 居住地: 投稿: 5 |
Re: ショップでの最低購入金額を設定したい piropiro様、できました!
アドバイスありがとうございました<m(__)m> また、他にも方法を見つけたので、今後同じようなことで悩んでいる人の為にも、記述しておきます。 =============================================== 1. 1000円未満の時に[購入手続きへ]をクリックすると、赤文字で[ご注文は1000円以上からとなっています]を表示する方法。 =============================================== data/class/pages/cart/LC_Page_Cart.phpの130行目あたりにあるcase'confirm'からbreakまでの部分を下のコードと入れ替えます。 ----------------------------------------------- case 'confirm': // カート内情報の取得 $cartList = $objCartSess->getCartList($cartKey); // カート商品が1件以上存在する場合&カート最低金額1000円以上 $cartTotal = $objCartSess->getAllProductsTotal($cartKey); if (count($cartList) > 0 && $cartTotal > 1000) { // カートを購入モードに設定 $this->lfSetCurrentCart($objSiteSess, $objCartSess, $cartKey); // 購入ページへ SC_Response_Ex::sendRedirect(SHOPPING_URL); SC_Response_Ex::actionExit(); } else { $this->tpl_message .= "ご注文は1000円以上からの受付となっています。\n"; } break; --------------------------------------------------- これはpiropiro様の方法に、else { $this->tpl_message .= "ご注文は1000円以上からの受付となっています。\n";}を追加しています。 ===================================================== 2, 1000円未満の場合は、購入手続きボタンを表示されないようにし、「ご注文は1000円以上からの受付となっています。」と赤文字で表示する方法。 ===================================================== data/Smarty/templates/default/cart/index.tplを変更します。 まず160行目くらいにある ----------------------------------------------- <!--{if strlen($tpl_error) == 0}--> <p class="alignC">上記内容でよろしければ「購入手続きへ」ボタンをクリックしてください。</p> <!--{/if}--> -------------------------------------------------- を以下のように変更します。 ($item.total_inctax) > 1000の部分で[もし1000円以上なら..]と条件をつけ、else文を追加する事により、1000円未満の場合は[ご注文は1000円以上からの受付となっています。]という文を出すようにしています。 -------------------------------------------------- <!--{if strlen($tpl_error) == 0 && ($item.total_inctax) > 1000}--> <p class="alignC">上記内容でよろしければ「購入手続きへ」ボタンをクリックしてください。</p> <!--{else}--><p class="alignC"><font color="#FF0000">ご注文は1000円以上からの受付となっています。</font></p> <!--{/if}--> ----------------------------------------------------- 次に、180行目くらいにある ---------------------------------------------------- <!--{if strlen($tpl_error) == 0}--> <input type="image" class="hover_change_image" src="<!--{$TPL_URLPATH|h}-->img/button/btn_buystep.jpg" alt="購入手続きへ" name="confirm" /> <!--{/if}--> ------------------------------------------------------- を下記のように変更します。 また($item.total_inctax) > 1000で条件付けをし、elseを追加することによって、購入手続きボタンを表示しないようにしています。 ----------------------------------------------------- <!--{if strlen($tpl_error) == 0 && ($item.total_inctax) > 1000}--> <input type="image" class="hover_change_image" src="<!--{$TPL_URLPATH|h}-->img/button/btn_buystep.jpg" alt="購入手続きへ" name="confirm" /> <!--{else}--> <!--{/if}--> ------------------------------------------------- 返信してくださった皆様、本当にありがとうございました! |
TamaDongu |
投稿日時: 2015/1/23 16:52
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2014/5/29 居住地: 投稿: 5 |
Re: ショップでの最低購入金額を設定したい 上記のコードにミスがあったので、備忘録も兼ねて記載しておきます。
($item.total_inctax) > 1000 の部分は ($arrData[$key].total-$arrData[$key].deliv_fee) > 1000 のように直さないと、動作が上手く行きません。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |