質問 > フロント機能 > 商品詳細の機能追加について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ken-o |
投稿日時: 2012/1/11 17:06
対応状況: −−−
|
長老 登録日: 2011/9/22 居住地: 投稿: 222 |
商品詳細の機能追加について dtb_productに管理画面より一部商品に変動する値が存在するので、最大値と最小値を登録しました。
これを利用して規格からではなく、その商品詳細にプルダウンか、+-で最小値から最大値以内の値を操作して、結果をdtb_orderに入れたいのですが、LC_Page_Products_Detail.php と、SC_Product.php をどのように改良すればよろしいのでしょう。 または、なにか他にプログラム修正必要でしょうか。 よろしくお願い致します。 ------------------------------------------------------------------------------------------ [EC-CUBE] 2.11.2 [レンタルサーバ] CPI [OS] Windows XP SP3/Win 7 [PHP] PHP 5.2.8 [データベース] MySQL 5.0.45 [WEBサーバ] apache [ブラウザ] Firefox6.3/IE8/Chrome [現象] ------------------------------------------------------------------------------------------
|
AMUAMU |
投稿日時: 2012/1/11 18:58
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 商品詳細の機能追加について >または、なにか他にプログラム修正必要でしょうか。
ざっと思いつく限りですと SC_CartSession SC_Helper_Purchase あたりで、追加入力データの扱いに関する修正も必要かと思います
|
ken-o |
投稿日時: 2012/1/12 10:36
対応状況: −−−
|
長老 登録日: 2011/9/22 居住地: 投稿: 222 |
Re: 商品詳細の機能追加について AMUAMU 様
あ〜なるほど、SC_Helper_Purchaseのことを忘れてました。 dtb_orderへの登録はなんとなくわかりました。 ありがとうございました。一つ光が見えました。 dtb_productに設けたmaxとminの間の数値を顧客が選んだ際に保管する、numという新しいカラムをdtb_orderに用意しました。 あとは、商品詳細ページに、maxとminのデータを表示させるにはどのようにすればよいのでしょう。 すみません、どうぞよろしくお願い致します。 追記: LC_Page_Products_Detail.phpの#action内に、このようなコードを用意しました。規格部分を参考にしてみました。 $this->max_num = $objProduct->max[$product_id]; $this->min_num = $objProduct->min[$product_id]; SC_Product.phpにも var $max; var $min; を追加しました。 イメージでは、とりあえず、これでproduct_idと一致する商品のmaxとminをひっぱってきて、detail.tplに表示しようと思いましたが、うまくいきません。 これでmaxとminの値を取得できれば、for文などを使って差の数値を求めていこうと思っています。
|
ken-o |
投稿日時: 2012/1/12 18:57
対応状況: −−−
|
長老 登録日: 2011/9/22 居住地: 投稿: 222 |
Re: 商品詳細の機能追加について >自己レスです。
現在、なんとかこうにか LC_Page_Products_Detail.php にmaxとminの値を入れて、デバックで確認できるようになりました。 しかし肝心のdetail.tplに反映できません(><); 申し訳ございません。ここだけご教授お願い致します。 現在、maxを100、minを80として、その100〜80の値を$numという関数に入れている状態です。 理想像は商品詳細にて、$numを+-で値を決定し、それをdtb_orderにあげることです。 ちなみに$numは配列にしました。 訂正: とりあえず、プルダウンでdetail.tplに表示できました。 しかしまたまた問題が発生しました(汗 LC_Page_Products_Detail.phpの switch ($this->mode) { case 'cart': に選択した$numのvalueが反映されません! なので、SC_CartSession.php に遷移されません。 なにかやり忘れがありますか?
|
AMUAMU |
投稿日時: 2012/1/13 3:48
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 商品詳細の機能追加について その部分だけ断片的に見ても分からないことが多いのですが
とりあえず追加した入力データの取り扱い周りは一通り実装しているのでしょうか?
|
ken-o |
投稿日時: 2012/1/13 12:09
対応状況: −−−
|
長老 登録日: 2011/9/22 居住地: 投稿: 222 |
Re: 商品詳細の機能追加について AMUAMU 様
返信、ありがとうございます。 一通り実装しながら、悩み続けております(笑 現在、商品詳細で カートへ というボタンを押してもカートに入らない状況です。 もう少し調べてみます!
|
ken-o |
投稿日時: 2012/1/17 15:56
対応状況: −−−
|
長老 登録日: 2011/9/22 居住地: 投稿: 222 |
Re: 商品詳細の機能追加について >自己レスです。
商品詳細の「カゴに入れる」のボタンを押しても、 ※ 現在カート内に商品はございません。 と出力されるだけで、一切商品が入らなくなる現象が発生しましたが、SC_CartSession.phpに正しくデータが渡されているかを確認しようと var_dump を入れたら直りました・・・ 原因は不明ですが、今は問題なくカートに入っております。 お騒がせしました。 現在、やはり「現在のカートの中」に値が入りません。 まず、管理画面より任意の商品のmaxとminの値を入力します。 LC_Page_Products_Detail.phpの116行目の$objProduct = new SC_Product_Ex();に、これを足しました。 引用:
これで、numにmaxとminとその間の値が入りました。 次に、 引用:
をdetail.tplに加えました。 ここまでは問題なく動作しております。 カートへのデータ明け渡しは、 LC_Page_Products_Detail.php の190行目前後にある、switch ($this->mode) {case 'cart': のところに、 $objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity'), $this->num); を追加し、 SC_CartSession.php function addProduct($product_class_id, $quantity, $num) { var_dump($num); という風にしました。 しかし、詳細画面にてプルダウンで選択したnumのvalueがやはり、カート画面では出力されません。 ヒントか、なにかを頂ければ幸いです。 どうか、よろしくお願い致します。
|
AMUAMU |
投稿日時: 2012/1/17 16:55
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 商品詳細の機能追加について きちんとaddProductの中を実装しているのでしょうか?
addProductの元のコードはよく見ていますか? ただ変数の引数を増やしただけではプログラムは何もしてくれません
|
ken-o |
投稿日時: 2012/1/20 16:23
対応状況: −−−
|
長老 登録日: 2011/9/22 居住地: 投稿: 222 |
Re: 商品詳細の機能追加について AMUAMU 様
いつも助けて頂き、本当にありがとうございます。 なんとかできた?っぽいです。 addProductの一件は、変数の打ち間違えでした。 ご報告させて頂きます。 ショッピングカート周りは難しかったです(汗 23日の勉強会も参加させて頂きます〜
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |