バージョン選択

フォーラム

メニュー

オンライン状況

72 人のユーザが現在オンラインです。 (65 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 72
もっと...

サイト内検索

質問 > フロント機能 > 商品規格の選択項目がカートに反映されない

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mamano
投稿日時: 2011/8/8 8:13
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
商品規格の選択項目がカートに反映されない
ECCUBE 2.11.1
php 5.1.6-23.9v1
Mysql 5.0.77

以前にも質問したのですが記解決で・・・
何を調べても分からず、困り果ててしまいました。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8468&forum=2&post_id=41110#forumpost41110

商品詳細ページの規格1(サイズ)を選択し、
カゴに入れると、選択したサイズの商品が入ってません。
詳しくは、サイズ(S、M、L、 LL)の4種類のうち、
Sしか反映されないです。M、L、LLを選択しても、
カゴの中にはSしか入らないのです。

この現象は、携帯、スマートフォンではちゃんと反映されています。
PCのみの不具合です。

モバイルとPCのテンプレートを見比べましたが、
よく分かりませんでした・・・

どうか、どうかご教授いただけますようお願いいたします。
468
投稿日時: 2011/8/8 18:38
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品規格の選択項目がカートに反映されない
こんにちは。

問題が起きている箇所を確認する為に、
/data/class/pages/products/LC_Page_Products_Detail.php 148行目を以下のように変更していただけますか?

case 'cart':

case 'cart':
print_r($this->arrForm);
exit;

すると、商品詳細ページからサーバに送られてきたデータが画面に表示されます。
その中から以下の記述を探します。

Array ( [keyname] => classcategory_id1 [length] => 9 [value] => 1 )

「[value] => 1」の部分が顧客が選択した規格1の情報がセットされている箇所なのですが、
規格1を変更した場合、数値は変わりますか?

もし変わらないのであれば、テンプレートの記述に何か問題があると思います。

こちらが変わるようであれば、PHPに問題があると思います。

一度、ご確認ください。
mamano
投稿日時: 2011/8/10 11:28
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: 商品規格の選択項目がカートに反映されない
ご返信、ありがとうございます。

レス遅れて申し訳ありません。

case 'cart':

case 'cart':
print_r($this->arrForm);
exit;

上記の通り変更を加えてみました。

結果、
「[value] => 1」の部分、規格1の設定通り値は変わりました。

phpに問題があると判断できますでしょうか?
であればどこの部分か、ご教授願えますでしょうか。

大変申し訳ありませんが
何卒よろしくお願い申し上げます。
468
投稿日時: 2011/8/10 19:20
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品規格の選択項目がカートに反映されない
ご確認ありがとうございます。

PHPのほうですが、以下のファイルを確認していただけますか?
/data/class/pages/products/LC_Page_Products_Detail.php 153行目
$product_class_id = $this->objFormParam->getValue('product_class_id');

$product_class_id = $this->objFormParam->getValue('product_class_id');
print product_class_id;
exit;

上記のように書き換えると、カゴに入れようとしている商品のコードを画面に表示して確認する事ができると思います。
規格1を変更して、商品をカゴに入れた時、$product_class_idの中身が変わるか確認していただけますか?

このデータが変わらないようであれば、
商品詳細ページのテンプレートに、name属性に「product_class_id」がセットされたinputタグが2つ以上存在していないでしょうか?

変わるようであれば、カゴに入れる処理ではなく、
カゴの中身を表示する(カゴの中のページ)処理に問題があるかもしれません。

こうゆう問題は1つ1つ確認しないと原因がつかめないので、
お手数をおかけしますが、よろしくお願いします。
mamano
投稿日時: 2011/8/10 21:04
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: 商品規格の選択項目がカートに反映されない
ご丁寧にありがとうございます。

引用:

PHPのほうですが、以下のファイルを確認していただけますか?
/data/class/pages/products/LC_Page_Products_Detail.php 153行目
$product_class_id = $this->objFormParam->getValue('product_class_id');

$product_class_id = $this->objFormParam->getValue('product_class_id');
print product_class_id;
exit;


上記、
print product_class_id;
の部分、
print $product_class_id;
で良いですか?

こちらで確認をいたしましたが、
規格1の選択を変更してもproduct_class_idの値は
変わりませんでした。

しかし、
商品詳細ページのテンプレートに、name属性に「product_class_id」がセットされたinputタグが2つ以上存在することはありませんでした。。。

一つ一つ確認しないと原因がつかめないこと、
誠におっしゃる通りだと思います。
分からないことだらけで質問ばかりにも関わらず、
ご丁寧なご対応に大変感謝申し上げます。

何卒、引き続きご教授願えれば幸いに存じます。
mamano
投稿日時: 2011/8/11 8:44
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: 商品規格の選択項目がカートに反映されない
自分なりに色々と調べておりましたが頭がコンガラガッテきました。。。

LC_Page_Products_CategoryList.phpの
$product_class_id の値がカートに引き継がれない。

PCのみの現象
モバイル、スマートフォンではちゃんと引き継がれている。

ということは、LC_Page_Products_CategoryList.php
内の記述が問題ではなく、PC用のテンプレート
templates/default/products/default.tplの記述に問題あり?

こんな感じでしょうか・・・

しかし、スマートフォン用のdefault.tplと比較しましたが、記述の問題点が分からず。。。

何かヒントをいただければと切に願います。

よろしくお願いいたします。
468
投稿日時: 2011/8/11 20:14
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品規格の選択項目がカートに反映されない
こんばんわ。

PC用のテンプレートに問題がありそうだという事で、
/data/Smarty/templates/default/products/detail.tplに
以下のinputタグは存在していますでしょうか?

<input type="hidden" name="product_class_id" value="<!--{$tpl_product_class_id}-->" id="product_class_id" />

こちらのtype属性をtextに変更すると、
商品詳細ページにテキストボックスが表示されるようになります。
(デザインのカスタマイズなどによりますが、
 規格1プルダウンの近くに表示されます)

規格1、規格2を選択したタイミングで値がセットされると思いますが、
そちらは正しく変化しているでしょうか?
この値がPHPの$product_class_idに渡っているはずなのですが・・・。

値が変化しないようであれば、Javascriptのエラーが出ているかもしれません。
Javascriptのエラーが発生しているようであれば、
デフォルトのdetail.tplの先頭にあるscriptタグを削除してしまっている可能性があるかも知れません。

値が変化しているけど、PHPの$product_class_idは変化がないとすると、
今度は、LC_Page_Products_Detail.phpのどこで値が変化しているか調査する必要がありそうです。
mamano
投稿日時: 2011/8/12 6:18
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: 商品規格の選択項目がカートに反映されない
468様 誠にありがとうございます。

<input type="hidden" name="product_class_id" value="<!--{$tpl_product_class_id}-->" id="product_class_id" />
こちらのタグは間違いなく存在しておりました。

hiddenの部分をtextに変えて、表示されたテキストボックス内の値が
規格1の選択を変更することで変化するか試しましたが、表示されている値は固定されたまま変化しませんでした。

同様のことをスマートフォンのテンプレートでも試しましたが
こちらはテキストボックス内の値は変化しました。

そこで、ご指摘の通りjavascriptに原因があると絞り込み、
色々試しながら調べたところ、テンプレートファイルにcategory.jsの指定が記述されておらず、記述を付け足したことろ、ちゃんと動作しました!

何故抜けていたのか、原因は分かりませんが
ずっと悩んでいたので、やっと次の課題に移れます・

468様、こんな無知な私に色々ご教授いただき、
誠にありがとうございました。
matti
投稿日時: 2011/8/24 12:20
対応状況: −−−
新米
登録日: 2011/8/22
居住地:
投稿: 8
Re: 商品規格の選択項目がカートに反映されない
こんにちは。
私は同様の不具合がります。
PCで商品規格の選択項目がカートに反映されないです。


引用:

そこで、ご指摘の通りjavascriptに原因があると絞り込み、
色々試しながら調べたところ、テンプレートファイルにcategory.jsの指定が記述されておらず、記述を付け足したことろ、ちゃんと動作しました!

上記の解決方法を詳しく教えていただけませんか?
お願いします。
matti
投稿日時: 2011/9/17 11:10
対応状況: −−−
新米
登録日: 2011/8/22
居住地:
投稿: 8
Re: 商品規格の選択項目がカートに反映されない
こんにちは。
上記の不具合はまだ解決できていないので是非誰か助けていただけないでしょうか?

モバイルでは商品規格の選択項目がカートに反映されますが
PCのみ商品規格の選択項目がカートに反映されないという不具合ですが


...products/detail.tpl
に以下のタグが無かったので追加しました。
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/category.js"></script>

それでも商品規格はカートにされません。
調べたところで
Ec cube 2.11.1 と 2.11.2のhtml/jsにcategory.jsは存在していないことを気づきました。
category.jsはhtml/jsにあるはずでしょうか?

なぜないのかは謎ですが
ソースコードを教えていただけないでしょうか?

どうぞ宜しくお願いします。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,907名です
総投稿数は110,006件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.