質問 > フロント機能 > 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kanaryo |
投稿日時: 2014/3/6 18:43
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい 会員登録画面へチェックボックスで入力する項目を追加し、
管理画面の会員マスターで表示、マイページからの変更削除も出来るように完了しました。 追加した項目の値はdtb_customerに格納されています。 会員がログイン状態で買い物する時は、追加した項目をdeliv.php画面でも表示させる様にtplには下記の記述を追加しています。 その後payment.php画面を経てconfirm.phpへ遷移するのですが、 confirm.php画面で追加した項目が表示されません。 そのまま買い物を完了させることは出来ますが、 dtb_orderへ値が格納されないため、管理画面の受注管理で表示させることが出来ません。 deliv.tpl側 <!--{if $arrAddr[cnt].tuika == 1}-->赤<!--{/if}--> confirm.tpl側 <!--{if $arrForm.tuika == 1}-->赤<!--{/if}--> 非会員の状態で買い物する時にも追加した項目ですので、 dtb_orderにはカラムが存在し、非会員の状態で購入すれば値は格納されます。 LC_Page_Shopping_Deliv.phpは何も触っておらず、 どうすればログイン時の買い物でdtb_orderへ値を飛ばすことが出来るのでしょうか? 希望の挙動は下記です。 dtb_customerに格納されているカラム「tuika」の値を、 ログイン時の買い物でconfirm.tpl画面で表示させ、dtb_orderへ格納させたい。 どなたか御教示お願いいたします。 ********************************* EC-CUBEバージョン 2.11.4 PHPバージョン PHP 5.2.17p3 DBバージョン PostgreSQL 9.0.1 |
yuh |
投稿日時: 2014/3/6 22:37
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい 一旦dtb_order_tempに値を格納するといいんじゃないかと思います。
dtb_order_tempにそのフィールドを追加して、dtb_customerに値が入っているのであれば、SC_Helper_Purchase.phpのcopyFromCustomerでその値を読み出すように追加してやれば大丈夫と思います。 |
kanaryo |
投稿日時: 2014/3/7 9:27
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい yuh様
前回のステータスアイコンの際は大変お世話になりました! この度もアドバイスいただき感謝いたします。m(__)m dtb_order_tempにtuikaのフィールド追加し、 SC_Helper_Purchase.phpのcopyFromCustomerへ'tuika'を追加記述したところ、 システムエラーが出たのでlogを見たら「order_tuika」が無い、みたいなことが書いていたので、 dtb_order_tempのフィールドをorder_tuikaに変更。 しかし、dtb_order_tempのorder_tuikaに値は入りますが、dtb_orderには値が格納されませんので、 confirm.php画面でも管理画面でも表示されません。 これから以降の作業はどのようにすればよいのでしょうか? 根本を理解していなくて申し訳ございません。 何卒宜しくお願い申し上げます。 ***************************************************** ※追記 confirm.php画面で表示されるようになりました。 deliv.tpl記述 <!--{if $arrAddr[cnt].tuika == 1}-->赤<!--{/if}--> confirm.tpl記述 <!--{if $arrForm.order_tuika == 1}-->赤<!--{/if}--> 上記記述でdeliv.php、confirm.php画面で表示されます。 しかし、管理画面側で表示されません。 |
yuh |
投稿日時: 2014/3/7 10:49
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい dtb_orderにorder_tuikaというフィールドはありますか?
あとできればorder_tuikaのフィールド名をtuikaとかに変更した方がいいかもしれないです。 |
kanaryo |
投稿日時: 2014/3/7 11:14
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい yuh様
現在はdtb_orderのフィールドにorder_tuikaは無く、tuikaのみです。 非ログイン時はtuikaに格納され、管理画面でもtuikaの値を参照して表示していると思います。 yuh様の最初のアドバイス通り、SC_Helper_Purchase.phpのcopyFromCustomerへ'tuika'記述、 dtb_order_tempへtuikaフィールドを追加すると、買い物時にシステムエラーが出るのです。 それで、dtb_order_tempのtuikaフィールドの名前をorder_tuikaにしたら、 エラーが出ずに買い物は出来るようになりました。 しかしdtb_order_tempに値は入りますがdtb_orderには値が入りません。 現在の状況は下記の通りです。 @非ログイン時 買い物時に申込みフォームへ追加したtuikaの値をdtb_orderへ格納し、管理画面(受注管理)でも表示OK @ログイン時 買い物をするとdtb_order_tempのorder_tuikaに値が格納され、dtb_orderのtuikaには値が入らず。 管理画面(受注管理)で表示されず。 ゴチャゴチャして申し訳ありませんが、宜しくお願いいたします。 |
yuh |
投稿日時: 2014/3/7 11:27
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい dtb_orderにもorder_tuikaを追加してみてください。
あと、
の時のエラーログをお願いします。 |
kanaryo |
投稿日時: 2014/3/7 11:59
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい yuh様
dtb_order_tempにおいて、 tuikaのフィールド有 order_tuikaのフィールド無し、 の状態で買い物をしますと・・・ 2014/01/23 10:30:06 [/virtual/www/eccube/html/test/data/class/SC_Query.php] FATAL Error(256) /virtual/www/eccube/html/test/data/class/SC_Query.php:876 https://www.@@@/test/html/resize_image.php?image=noimage_main_list.jpg&width=80&height=80 USER_AGENT: Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0 SQL: INSERT INTO dtb_order_temp(customer_id,update_date,device_type_id,session,order_name01,order_name02,order_kana01,order_kana02,order_sex,order_zip01,order_zip02,order_pref,order_addr01,order_addr02,order_tuika,order_tel01,order_tel02,order_tel03,order_job,order_birth,order_email,order_temp_id,create_date) VALUES (?,CURRENT_TIMESTAMP,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP) MDB2 Error: no such field prepare: [Error message: Unable to create prepared statement handle] [Last executed query: SELECT email FROM dtb_customer WHERE customer_id = $1 ] [Native message: ERROR: column "order_tuika" of relation "dtb_order_temp" does not exist LINE 1: ...,order_zip02,order_pref,order_addr01,order_addr02,order_tuik... ^] /virtual/www/eccube/html/test/html/shopping/deliv.php 34:LC_Page_Shopping_Deliv_Ex->process /virtual/www/eccube/html/test/data/class_extends/page_extends/shopping/LC_Page_Shopping_Deliv_Ex.php 56:LC_Page_Shopping_Deliv->process /virtual/www/eccube/html/test/data/class/pages/shopping/LC_Page_Shopping_Deliv.php 59:LC_Page_Shopping_Deliv->action /virtual/www/eccube/html/test/data/class/pages/shopping/LC_Page_Shopping_Deliv.php 122:LC_Page_Shopping_Deliv->registerDeliv /virtual/www/eccube/html/test/data/class/pages/shopping/LC_Page_Shopping_Deliv.php 203:SC_Helper_Purchase->saveOrderTemp /virtual/www/eccube/html/test/data/class/helper/SC_Helper_Purchase.php 284:SC_Query->insert /virtual/www/eccube/html/test/data/class/SC_Query.php 484:SC_Query->query /virtual/www/eccube/html/test/data/class/SC_Query.php 736:SC_Query->prepare /virtual/www/eccube/html/test/data/class/SC_Query.php 873:MDB2_Driver_pgsql->prepare /virtual/www/eccube/html/test/data/module/MDB2/Driver/pgsql.php 967:MDB2_Driver_Common->raiseError /virtual/www/eccube/html/test/data/module/MDB2.php 1497:PEAR->raiseError /virtual/www/eccube/html/test/data/module/PEAR.php 557:MDB2_Error->MDB2_Error /virtual/www/eccube/html/test/data/module/MDB2.php 1009:PEAR_Error->PEAR_Error というようなエラーが出たため、dtb_order_tempへtuikaフィールドに加えて order_tuikaを追加したところシステムエラーは無くなりました。 そのうえで、先ほどdtb_orderにもorder_tuikaフィールドを追加すると、 ログイン時の買い物はorder_tuikaへ値が入るようになりました。 この状態ですと、非ログイン時はtuikaフィールドへ値が入り、 ログイン時はorder_tuikaへ値が入るようになるのですが・・・。 別件のエラーもあるようですが無視して下さい(~_~;) よろしくお願いします。 |
yuh |
投稿日時: 2014/3/7 13:53
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい 多分
dtb_order,dtb_order_temp両方にtuikaフィールドを追加するか、 dtb_order,dtb_order_temp両方にorder_tuikaフィールドを追加するかのどちらかに合わせた方がいいと思います。 dtb_order,dtb_order_temp両方にtuikaフィールドを追加する場合、 ログイン時の配送先もしくは支払方法の部分に入力フィールドを追加して、会員情報からそのフィールドにデータを入れる感じで、 dtb_order,dtb_order_temp両方にorder_tuikaフィールドを追加する場合、tuikaという名前をorder_tuikaに変更して、パラメータをorder_tempに保存できるようにする感じです。 現状仕様がログイン時と非ログイン時で別れている為、どちらかに合わせた方がいいと思います。 手っ取り早いのは両方admin/order/edit.phpに表示させてしまうのが簡単と思いますが。 |
kanaryo |
投稿日時: 2014/3/7 14:32
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい yuh様
dtb_order、dtb_order_temp両方をtuikaフィールド名で統一し、 ログイン時に買い物を試みましたが、deliv.php画面から次の画面へ遷移する時点でシステムエラーになりました。 ログは先ほどと同じだと思いますが一応下記の通りです。 SQL: INSERT INTO dtb_order_temp(customer_id,update_date,device_type_id,session,order_name01,order_name02,order_kana01,order_kana02,order_sex,order_zip01,order_zip02,order_pref,order_addr01,order_addr02,order_tuika,order_tel01,order_tel02,order_tel03,order_job,order_birth,order_email,order_temp_id,create_date) VALUES (?,CURRENT_TIMESTAMP,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP) MDB2 Error: no such field prepare: [Error message: Unable to create prepared statement handle] [Last executed query: SELECT email FROM dtb_customer WHERE customer_id = $1 ] [Native message: ERROR: column "order_tuika" of relation "dtb_order_temp" does not exist LINE 1: ...,order_zip02,order_pref,order_addr01,order_addr02,order_tuik... ※SC_Helper_Purchase.phpのcopyFromCustomerには 'tuika' を追記しています。 ※deliv.tplには<!--{if $arrAddr[cnt].tuika == 1}-->赤<!--{/if}--> で記述しているので、/@@@/deliv.php画面ではdtb_customerに値があれば表示されます。 お手数ですが、よろしくお願いいたします。 |
yuh |
投稿日時: 2014/3/7 15:12
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録画面で追加した項目を、買い物時にdtb_orderへ格納させたい copyFromCustomerに追加した部分を削除して、
SC_Helper_Purchase.phpのsaveOrderTempの
の部分を
に変更でどうでしょうか? 家に帰ったら仮で構築して作れるんですが、今の所は多分こんな感じでとしか答えられずすみません。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |