バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tonton
投稿日時: 2009/5/19 18:07
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
>seasoft様

いつもありがとうございます。
いただいた情報もヒントになりました。

>ちょっと興味があるのが、
>> 商品詳細ページで、ユーザーのカスタム入力欄を儲け
>の部分です。
>「カスタム入力欄」は、どの商品でも常に表示する仕様でしょうか?

そうです。
今回作成しているサイトの場合は、基本縦横のサイズが必要になるので、そのようにしました。(というより、実装でいっぱいいっぱいになってしまい、色んな場合を検討するだけの余力がありませんでした;;;)
ただ、追加した入力フィールドは、独立しているので、登録商品が増えた場合、カテゴリーによって表示非表示を切り替える、とか、規格のIDや名称によって、表示非表示を切り替えるとか、そういうことも可能じゃないかな、と思います。こちらについては、現状、未検討なのですが・・・

seasoft
投稿日時: 2009/5/19 16:50
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
まずは、実装成功おめでとうございます。


ちょっと興味があるのが、

> 商品詳細ページで、ユーザーのカスタム入力欄を儲け

の部分です。
「カスタム入力欄」は、どの商品でも常に表示する仕様でしょうか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

tonton
投稿日時: 2009/5/19 12:09
対応状況: 解決済
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
自己レス続きで失礼します。

とりあえず・・・

できました!

かなりややこしく、変更するページもたくさんありましたので、苦心しましたが、PHPのマニュアルと首っ引きで何とかやれました。


商品詳細ページで、ユーザーのカスタム入力欄を儲け、そこから、カートの注文確認ページでも、入力情報の確認を表示し、ショッピングの確認ページでも、商品の入力情報の確認を表示し、DBの商品詳細情報テーブルとオーダーの一時情報保存テーブルのセッション情報にも、該当項目を登録し、さらに管理画面で編集できるように&お客様への確認メールにも項目記載、以上です。


1つ1つの作業はかなりトライアル&エラーでやったので、ちょっとまだ整理が付いていないのですが、とりあえず、修正が必要だったファイル名とDBのテーブル名を挙げておきます。
参考になれば幸いです。(抜けがあったらごめんなさい)

〔ファイル〕
detail.tpl
cart/index.tpl
LC_Page_Products_Detail.php
LC_Page_Cart.php
SC_CartSession.php
SC_Helper_DB.php
LC_Page_Shopping_Complete.php
LC_Page_Mypage_History.php
LC_Page_Admin_Order_Edit.php
mypage/history.tpl
shopping/confirm.tpl
mail_teplate/order_mail.tpl
admin/order/edit.tpl
admin/order/disp.tpl
〔DB〕
dtb_order_detail →カスタム入力欄を保存するカラムを追加。
tonton
投稿日時: 2009/5/18 13:29
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
とりあえず現状報告だけですが。。。

詳細情報ページに設けた入力欄のユーザー入力データ(オーダーのサイズ情報)をカートのセッションに登録し、dtb_order_detailに追加したユーザーのカスタム入力欄用のカラムに登録するところまではできました。
一旦DBに登録さえできれば、管理画面などは、何とかなりそうな予感ですね;


1つクリアできていないのが、詳細ページから購入ボタンをクリックしてカートのページに遷移したときに、そのカスタム入力情報を読み出すことができない点です。

数量や規格は、<!--{$arrProductsClass[cnt].quantity}-->といった形で、$arrProductsClassに格納されているのですが、新しく追加したこの入力欄の値をどうやってcartのページで読み出せばいいのかが、色々テストしてみても見つけられていない状態です。

$arrProductsClassに、この入力欄を追加して、カートのページで値を読み出せれば、大体やりたかったことはできそうです。


tonton
投稿日時: 2009/5/14 13:07
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
>seasoft様

>私どもでは、こちらでの投稿は、アイディア程度の内容に留めさせていただいております。有償提供のお客様との兼ね合いもございますので何卒ご了承ください。

了解しました。

お手数をかけてすみません。


力不足を嘆くばかりですが、こちらで勉強させていただきながら少しずつレベルアップしているとは思うものの、私自身の実力が、具体的なヒントや内容が得られないと解決できないレベルです。

他に、お力を貸していただける方がいらっしゃいましたら、小さなことでもかまいませんので、どうかお力添え、アドバイスをお願いします。
seasoft
投稿日時: 2009/5/14 11:04
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
私どもでは、こちらでの投稿は、アイディア程度の内容に留めさせていただいております。有償提供のお客様との兼ね合いもございますので何卒ご了承ください。
個別案件の具体的な作業は有償で承っております。ご入用の折にはご連絡ください。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

tonton
投稿日時: 2009/5/14 11:01
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
色々教えていただいているのに、自身の力が付いていかず、恐縮です。
ほとほと、困ってしまいました;
seasoftさんからのアドバイスを元に、
再度ソースを見直し、やってみたことを記します。
下記の部分の変更を行いましたが、商品詳細ページから追加入力したフォーム情報のカートのページへの持越しができません。

間で何か抜けているのか、記述位置内容が悪いのか、原因が分からず詰まっています。


1)detai.tplに
フォームの規格入力を参考に、サイズ指定用のinputを追加。
<input type="text" name="size_width" style="<!--{$arrErr.size_width|sfGetErrorColor}-->" class="box54" />
<input type="text" name="size_height" style="<!--{$arrErr.size_height|sfGetErrorColor}-->" class="box54" />

2)LC_Page_Products_detail.php L182あたり
case 'cart':
// 入力値の変換
$this->objFormParam->convParam();
$this->arrErr = $this->lfCheckError();
if(count($this->arrErr) == 0) {
$objCartSess = new SC_CartSession();
$classcategory_id1 = $_POST['classcategory_id1'];
$classcategory_id2 = $_POST['classcategory_id2'];

この下に、
$size_width = $_POST['size_width'];
$size_height = $_POST['size_height'];
2行追加。その6行ほどしたの、L202あたり、
$objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $this->objFormParam->getValue('quantity'));
に$size_width, $size_heightを追加。

$objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2, $size_width, $size_height), $this->objFormParam->getValue('quantity'));


3)SC_Helper_DB.php L339あたり
$objPage->arrProductsClass[$cnt] = $arrData;
$objPage->arrProductsClass[$cnt]['quantity'] = $quantity;
この下に、
$objPage->arrProductsClass[$cnt]['size_width'] = $size_width;
$objPage->arrProductsClass[$cnt]['size_height'] = $size_height;

を追加。

4)cart/indec.tplには、
表示用にL65あたりに、

<td><!--{$arrProductsClass[cnt].size_width}--><br /><!--{$arrProductsClass[cnt].size_height}--></td>

を追加。(THなどは、あとで調整予定)

$_POSTを追いかけて、この4点を追加・変更してみたのですが、何か間違いor抜けがありますでしょうか?
seasoft
投稿日時: 2009/5/13 14:39
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
> モバイル対応です。

なるほど。なかなか大変そうですね。


私は、SC_CartSession#addProduct の第一引数 $id の次元数を拡張する方法で実装しました。

属性のような形で、ぶら下げるのも考えたのですが、それだと商品の追加処理に支障がありました。

重要なのは、セッション変数を意識することだと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

tonton
投稿日時: 2009/5/13 14:31
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
seasoft様

>ちなみに、モバイル対応ですか?
モバイル対応です。
規格でやるには現実的ではないので、再度フォームに挑戦しています。

ですが、

1)
/data/class/pages/products/LC_Page_Products_Detail.php


$objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $this->objFormParam->getValue('quantity'));

ここへ、detail.tplにinputで設けたフォームのテキスト入力欄に設定した変数($size)をセットして、

2)
/data/class/SC_CartSession.php


// カートへの商品追加
function addProduct($id, $quantity, $campaign_id = "") {
(省略)
}
ここへ、その変数($size)

を追加してみました。また、そのあと、cart/index.tplに、quantityと同じように、値がカートの一覧で表示されるように<!--{$arrProductsClass[cnt].size}-->と記載してみましたが、cart/index.phpを読み出しても、追加したフォームの値は読み出されておらず、cart/index.phpでは、var_dump($size);としても、nullが返されてきてしまいました。

この間で、フォームの値がどうやって引き継いで持ってこれるのかが、色々試してみてもわかりません。

何か良い方法はありませんでしょうか・・・?
お力をお貸しいただけると本当に助かります。

いつもお世話ばかりお掛けして恐縮ですが、よろしくお願いします。
seasoft
投稿日時: 2009/5/13 1:42
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページの注文フォームに入力欄を追加するにはどうしたらいいでしょうか?
> クラスが2、クラスカテゴリーが198です。

思ったより少ないなぁ・・・
と一瞬思いましたが、ちがう。
掛け合わせだから、約1万通りですね。

たしかに、キツイかも。

管理画面は隠しフィールドを使って誤魔化すことは出来そうですが、いずれフロントの読み込み時間に影響がありそうです。

ちなみに、モバイル対応ですか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
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.