バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sakura0123
投稿日時: 2012/6/5 17:04
対応状況: −−−
常連
登録日: 2011/5/26
居住地:
投稿: 34
会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
いつもお世話になっております。

会員登録の際に

?会員区分(個人or法人)
?会社名
?会社名(フリガナ)

を登録フォームに上記を表示し、
取得することができました。


そして、ログインして買い物を行なう際、

商品をカゴに入れ、会員登録住所を選択し、
お支払方法・お届け時間等の指定の次に
「ご入力内容のご確認」に進みますが、

その際、

「お届け先」のところに

?会員区分(個人or法人)
?会社名
?会社名(フリガナ)

を表示し、注文メールにも上記内容を表示したいです。

以下、追加・改変した内容です。

■データベース
テーブル:dtb_customer に以下追加
company、company_kana、member_type

テーブル:dtb_order に以下追加
order_company、order_company_kana、order_member_type

テーブル:dtb_order_temp に以下追加
order_company、order_company_kana、order_member_type 

テーブル:dtb_shipping に以下追加
shipping_company、shipping_company_kana、shipping_member_type

■PHPファイル
data/class/pages/shopping/LC_Page_Shopping.php

■テンプレートファイル
/Smarty/templates/default/shopping/nonmember_input.tpl
/Smarty/templates/default/shopping/confirm.tpl

非会員の場合は「ご入力内容のご確認」と注文メールにも会員区分、会社名、フリガナを掲載できました。

しかし、会員ができません

/Smarty/templates/default/shopping/confirm.tpl
や、LC_Page_Shopping_Confirm.php、LC_Page_Shopping_Deliv.php

あたりが怪しいと思うのですが、どこをどう変えればよいかまったくわかりません


■/Smarty/templates/default/shopping/confirm.tpl
追加部分:
----------------------------------------------
<tr>
<th>会員区分<span class="attention">*</span></th>
<td>
<!--{if $shippingItem.shipping_member_type eq 1}-->
個人
<!--{else}-->
法人
<!--{/if}-->
</td>
</tr>
<tr>
<th>会社名<span class="attention">*</span></th>
<td>
<!--{$shippingItem.shipping_company|h}-->
</td>
</tr>
<tr>
<th>会社名(フリガナ)<span class="attention">*</span></th>
<td>
<!--{$shippingItem.shipping_company_kana|h}-->
</td>
</tr>
------------------------------------------------------

LC_Page_Shopping_Confirm.php、LC_Page_Shopping_Deliv.php
は触っておりません。。。

どうか、お力をおかしいただけましたら幸いです。

宜しくお願いいたします。


EC-CUBE 2.11.4
サーバーOS heteml.jp
DBサーバー MySQL 5.0.
WEBサーバー Apache
PHP 5.3.13
dimaggio
投稿日時: 2012/6/5 18:41
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
乱暴な方法かもしれませんが、

LC_Page_Shopping_Confirm.php

の、switch($this->getMode()) { という行の直前辺りに、

print_r ($this);

と入れてみると、shopping/confirm.php のページでその時点で保持している値がズラリと表示されると思います。

その中の [arrForm] => Array の要素に期待した値がセットされているか否かをまずは調べられたら如何でしょうか。

値がセットされていないならば、LC_Page_Shopping.php 辺りでDBから情報取得に失敗している可能性

値がセットされているならば、Smartyのshopping/confirm.tpl でのPHP変数への参照方法に問題がある可能性

という感じの切り分けが思いつきます。
uubb
投稿日時: 2012/6/6 2:54
対応状況: −−−
常連
登録日: 2012/5/29
居住地:
投稿: 53
Re: 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
引用:
注文メールにも会員区分、会社名、フリガナを掲載

させるには、まずデーターベースの中にちゃんとデーター書き込まれているかを確認した方がいい
uubb
投稿日時: 2012/6/6 4:46
対応状況: −−−
常連
登録日: 2012/5/29
居住地:
投稿: 53
Re: 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
data/Smarty/templates/default/shopping/confirm.tpl
の部分:

<tr>
<th>会員区分</th>
<td>
<!--{if $shippingItem.shipping_member_type eq 1}-->
個人
<!--{else}-->
法人
<!--{/if}-->
</td>
</tr>
<!--{if $shippingItem.shipping_member_type == 2}-->
<tr>
<th>会社名</th>
<td>
<!--{$shippingItem.shipping_company|h}-->
</td>
</tr>
<tr>
<th>会社名(フリガナ)</th>
<td>
<!--{$shippingItem.shipping_company_kana|h}-->
</td>
</tr>
<!--{/if}-->

に書き換えたら表示でますよ。
sakura0123
投稿日時: 2012/6/6 17:18
対応状況: −−−
常連
登録日: 2011/5/26
居住地:
投稿: 34
Re: 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
dimaggio 様 、uubb 様

早速のアドバイス誠にありがとうございます。

データベースを確認しましたところ、

会員登録した場合は
shipping_member_type、shipping_company、shipping_company_kana
にデータが書き込まれていませんでした。

会員登録せずに購入した場合(非会員)は 上記データベースに書き込まれていますので、
意図した通り表示されます。

会員登録した場合は dtb_customer の
company、company_kana、member_type には書き込まれています。

/templates/default/shopping/confirm.tpl

のソースはデータベースの

shipping_member_type、shipping_company、shipping_company_kana

を表示していますので、会員登録した場合は表示されないことが解りました。


そこで会員登録した場合にも

/templates/default/shopping/confirm.tpl

に dtb_customer の company、company_kana、member_type を表示するには、

?--------------------------------------------------------

非会員の場合は

dtb_shipping の shipping_company を

会員の場合は

dtb_customer の company を表示する。

(注文メールも同じく)

----------------------------------------------------------

もしくは

?--------------------------------------------------------

会員登録の際に

dtb_customerのcompany、company_kana、member_type



dtb_shippingのshipping_member_type、shipping_company、shipping_company_kana



両方に値を放り込む。

----------------------------------------------------------

という方法が考えられますが、力不足です

大変恐縮ですが、ご助言お願いいたします。

ゲスト
投稿日時: 2012/6/6 19:12
対応状況: −−−
Re: 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
SC_Helper_Purchaseは、どうされてますか? 

下記コード他は署名内を参照ください。。。

 ●パラメータ情報の初期化(主に入力値のチェック)
  会員情報を受注情報にコピーする。
  受注情報を配送情報にコピーする。  
  『data/class_extends/helper_extends/』
   SC_Helper_Purchase_Ex.php

    /**
     * 会員情報を受注情報にコピーする.
     *
     * ユーザーがログインしていない場合は何もしない.
     * 会員情報を $dest の order_* へコピーする.
     * customer_id は強制的にコピーされる.
     *
     * @param array $dest コピー先の配列
     * @param SC_Customer $objCustomer SC_Customer インスタンス
     * @param string $prefix コピー先の接頭辞. デフォルト order
     * @param array $keys コピー対象のキー
     * @return void
     */
    // hideki-s '11.05.16
    function copyFromCustomer(&$dest, &$objCustomer, $prefix = 'order',
                              $keys = array('name01', 'name02', 'kana01', 'kana02',
                                            'sex', 'zip01', 'zip02', 'pref',
                                            'addr01', 'addr02',
                                            'tel01', 'tel02', 'tel03', 'job',
                                            'birth', 'email', 'company_name', 'section_name')) {
        if ($objCustomer->isLoginSuccess(true)) {

            foreach ($keys as $key) {
                if (in_array($key, $keys)) {
                    $dest[$prefix . '_' . $key] = $objCustomer->getValue($key);
                }
            }

            if (Net_UserAgent_Mobile::isMobile()
                && in_array('email', $keys)) {
                $email_mobile = $objCustomer->getValue('email_mobile');
                if (empty($email_mobile)) {
                    $dest[$prefix . '_email'] = $objCustomer->getValue('email');
                } else {
                    $dest[$prefix . '_email'] = $email_mobile;
                }
            }

            $dest['customer_id'] = $objCustomer->getValue('customer_id');
            $dest['update_date'] = 'Now()';
        }
    }

    /**
     * 受注情報を配送情報にコピーする.
     *
     * 受注情報($src)を $dest の order_* へコピーする.
     *
     * TODO 汎用的にして SC_Utils へ移動
     *
     * @param array $dest コピー先の配列
     * @param array $src コピー元の配列
     * @param array $keys コピー対象のキー
     * @param string $prefix コピー先の接頭辞. デフォルト shipping
     * @param string $src_prefix コピー元の接頭辞. デフォルト order
     * @return void
     */
    // hideki-s '11.05.16
    function copyFromOrder(&$dest, $src,
                           $prefix = 'shipping', $src_prefix = 'order',
                           $keys = array('name01', 'name02', 'kana01', 'kana02',
                                         'sex', 'zip01', 'zip02', 'pref',
                                         'addr01', 'addr02',
                                         'tel01', 'tel02', 'tel03', 'company_name', 'section_name')) {
        if (!SC_Utils_Ex::isBlank($prefix)) {
            $prefix = $prefix . '_';
        }
        if (!SC_Utils_Ex::isBlank($src_prefix)) {
            $src_prefix = $src_prefix . '_';
        }
        foreach ($keys as $key) {
            if (in_array($key, $keys)) {
                $dest[$prefix . $key] = $src[$src_prefix . $key];
            }
        }
    }

sakura0123
投稿日時: 2012/6/6 20:57
対応状況: 解決済
常連
登録日: 2011/5/26
居住地:
投稿: 34
Re: 会員登録で取得した”会社名”を「ご入力内容のご確認」画面と、注文メールに記載したい。
Ringo 様

ありがとうございます!

SC_Helper_Purchase内のご指定の箇所を変更しましたところ、
無事、意図した表示になりました

会員情報を各情報にこのようにコピーできたのですね。。。

確認不足、かつ勉強不足でした。

本当にご迷惑おかけし、申し訳ございません。

そしてお忙しいところご対応いただいた皆様、このたびは誠にありがとうございました。

まだまだ至らないところが多いですが、自分なりに勉強いたします
ので今後とも宜しくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,719名です
総投稿数は109,952件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.