質問 > フロント機能 > 条件により支払方法を変更する |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
hamachu |
投稿日時: 2009/3/17 1:40
対応状況: −−−
|
半人前 登録日: 2009/2/27 居住地: Tokyo 投稿: 11 |
条件により支払方法を変更する -----------------------------------------------------------
[EC-CUBE] 2.3.3正式版 [PHP] 4.4.9 [データベース] PostgreSQL 7.4.12 [WEBサーバ] Apache/2.0.63 ----------------------------------------------------------- 支払方法の選択画面で制御を行う必要があり、スレッドを立てさせていただきました。 例えば、"銀行振込"のみなど種類によって支払方法が限定される商品があります。 フラグを作成して(引用して)支払方法選択画面で"銀行振込"のみを表示させようとした場合どのようにすればよいか、どうぞお知恵をお貸しください。 実装したい具体的な機能としては、 『商品の「購入制限」の無制限にチェックが入っている商品』がカートに含まれない場合は ・銀行振込のみ 『商品の「購入制限」の無制限にチェックが入っている商品』がカートに含まれる場合は ・銀行振込 ・代金引換 と条件分岐で「お支払方法」の表示をきりかえる。 何とぞよろしくお願いいたします。 |
tao_s |
投稿日時: 2009/3/17 2:19
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: 条件により支払方法を変更する /data/class/pages/shopingのLC_Pages_Shopping_payment.phpのlfGetPaymentを変えないといけないと思います。
標準では支払い方法全部検索していますが、その前で、カート内商品に制限のかかった商品が含まれているか検索して、もしあれば、クエリに
を追加すれば良いと思います。 出来れば制限のかかる支払い方法をDBから取得して、その支払方法が指定されている商品がカート内にあるかどうかを検索した方がスマートですね。
|
hamachu |
投稿日時: 2009/3/17 3:00
対応状況: −−−
|
半人前 登録日: 2009/2/27 居住地: Tokyo 投稿: 11 |
Re: 条件により支払方法を変更する tao_sさん
早速のご返信ありがとうございます。 ご指導いただきましたとおり、
とすることで、"銀行振込"のみ表示することができました。 半日悩んでいたので、1歩前進といったところです。 ありがとうございます。 次に問題なのが、 引用: カート内商品に制限のかかった商品が含まれているか検索 をどのように実装するかで、カートページで購入制限のフラグ「sale_unlimited」は取得できているのですが、ここからどのように展開すればよいか頭を悩ませております。 何とぞご指導よろしくお願いいたします。 |
seasoft |
投稿日時: 2009/3/17 3:35
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 条件により支払方法を変更する 引用:
次に問題なのが、 「カート」ページではなく、「お支払方法・お届け時間等の指定」ページの処理では? どちらのページも同様の構造で「sale_unlimited」は取得できていますね。 $objView->assignobj($this); の直前で、当該変数を回して判定して、結果を Smarty に引き継げばイケそうです。
|
hamachu |
投稿日時: 2009/3/17 10:28
対応状況: −−−
|
半人前 登録日: 2009/2/27 居住地: Tokyo 投稿: 11 |
Re: 条件により支払方法を変更する seasoftさん
ご返信ありがとうございます。 ご指導いただきましたとおり、 引用:
確かに「お支払方法・お届け時間等の指定」ページでも「sale_unlimited」が取得できました!。 shopping>payment.tpl
payment.tplに記入することで「sale_unlimited」は取得できたのですが、 payment.phpでDEBUGしながら「sale_unlimited」を取得しようとしているのですが、つまづいております。 引用:
アドバイスいただきました内容で方向性は見えましたが、実力不足で足踏み状態です。 具体的にご指導いただけませんでしょうか。 何とぞよろしくお願いいたします。 |
seasoft |
投稿日時: 2009/3/17 11:41
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 条件により支払方法を変更する この辺りの関連値は、外部クラスで処理しているので、不透明で分かりづらいんですよね・・・ いずれ、改修したい部分の一つではありますが、現状の実装は、これはこれでページ側の処理はシンプルになって良い面もあるんですよね。
SQL をコントロールするのではなく、該当商品の有無によって、 ・配列の部分削除 ・Smarty での表示制御 のいずれかを行う方法でも対応できそうです。
|
hamachu |
投稿日時: 2009/3/17 17:14
対応状況: −−−
|
半人前 登録日: 2009/2/27 居住地: Tokyo 投稿: 11 |
Re: 条件により支払方法を変更する seasoftさん
ご丁寧なご返信ありがとうございます。 とりあえずはアドバイスを元に1つずつ進めたいと思います。 考え方としまして、まず、在庫無制限商品がカートにあった時と、無い時で分岐させました。 data>class>pages>shopping>LC_Page_Shopping_Payment.php の function lfGetPayment
あとは、カート内に在庫無制限の商品があった時に「$museigen_chk_flg ++;」でいけるかなと考えました。 そこで、data>class>SC_CartSession.php に「カートの中の売り切れチェック」 と、あったので参考にして以下を作成 data>class>SC_CartSession.php
data>class>pages>shopping>LC_Page_Shopping_Payment.php の function lfGetPayment
としてみましたが、うまく $museigen_chk_flg を取得できません。 どこが悪いか、ご指導いただけますでしょうか。 何とぞよろしくお願いいたします。 |
hamachu |
投稿日時: 2009/3/17 17:53
対応状況: −−−
|
半人前 登録日: 2009/2/27 居住地: Tokyo 投稿: 11 |
Re: 条件により支払方法を変更する 自己レスです。
data>class>pages>shopping>LC_Page_Shopping_Payment.php の function lfGetPayment
上記を変更することで、$museigen_chk_flg は取得できるようになりました。 ・・・がやたらforeachが回ってます。汗 もう一歩です。 |
hamachu |
投稿日時: 2009/3/17 22:47
対応状況: 解決済
|
半人前 登録日: 2009/2/27 居住地: Tokyo 投稿: 11 |
Re: 条件により支払方法を変更する 自己レスです。
解決いたしましたので手順を再度まとめておきたいと思います。 追加>青文字 data>class>helper>SC_Helper_DB.php の該当箇所に以下を追加する
data>class>SC_CartSession.php に 以下のクラスを追加
data>class>pages>shopping>LC_Page_Shopping_Payment.php の function lfGetPayment に以下を追加
以上で、目的の機能を実装することができました。 変更追加に関しまして、未熟者のソースです。 もっとこうした方がいいなど、今後の参考される方のためにご指摘願えればと思います。 アドバイスを頂きました、tao_sさん、seasoftさんには大変感謝しております。 誠にありがとうございました。 |
tao_s |
投稿日時: 2009/3/18 1:57
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: 条件により支払方法を変更する お疲れ様でした。これからも頑張ってください。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |