EC-CUBEの小技:会員登録に会社名の項目を追加

ECサイトには、色々な使われ方がありますが、卸売りや、仕入れサイトもその一つです。
卸売りサイトや仕入れサイトは、法人登録が必須なところが主で、そうなれば、会員登録欄もそうなってくるでしょう、という話です。
そこで、ちょっとした工夫で会社名登録欄をつくります。
では、以下。
この記事は最終更新日から1年以上が経過しています。

ある項目を使って会社名項目に

この登録項目ですが、追加する事も可能ですが、データベースの面倒があるわけで、いざという時に怖いものがあります。

簡素化してできるものなら、そちらの方が絶対的に安全なので、今回はあるものを作りかえるやり方でいきます。

必須項目の解除
一応、個人の間口も欲しいでしょうので、必須を解除しましょう。
/data/class/helperのSC_Helper_Customer.php

370行目付近を以下のように変更
        $objFormParam->addParam('会社名', 'name01', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK'));
        $objFormParam->addParam('氏名', 'name02', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK'));
        $objFormParam->addParam('会社名(フリガナ)', 'kana01', STEXT_LEN, 'CKV', array('NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK', 'KANA_CHECK'));
        $objFormParam->addParam('氏名(フリガナ)', 'kana02', STEXT_LEN, 'CKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK', 'KANA_CHECK'));

単純に、EXIST_CHECKを外せばいいという事ですね。

会員登録画面の修正
/data/Smarty/templates/default/frontparts/form_personal_input.tpl
入力ページ:27行目付近を以下のように変更

<tr>
    <th>会社名</th>
    <td>
        <!--{assign var=key1 value="`$prefix`name01"}-->
        <!--{if $arrErr[$key1]}-->
            <div class="attention"><!--{$arrErr[$key1]}--></div>
        <!--{/if}-->
        <input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: active;" class="box120" />&nbsp;
    </td>
</tr>
<tr>
    <th>氏名<span class="attention">※</span></th>
    <td>
        <!--{assign var=key2 value="`$prefix`name02"}-->
        <!--{if $arrErr[$key2]}-->
            <div class="attention"><!--{$arrErr[$key2]}--></div>
        <!--{/if}-->
        <input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: active;" class="box120" />
    </td>
</tr>
<tr>
    <th>会社名(フリガナ)</th>
    <td>
        <!--{assign var=key1 value="`$prefix`kana01"}-->
        <!--{if $arrErr[$key1] }-->
            <div class="attention"><!--{$arrErr[$key1]}--></div>
        <!--{/if}-->
        <input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: active;" class="box120" />&nbsp;
    </td>
</tr>
<tr>
    <th>氏名(フリガナ)<span class="attention">※</span></th>
    <td>
        <!--{assign var=key2 value="`$prefix`kana02"}-->
        <!--{if $arrErr[$key2]}-->
            <div class="attention"><!--{$arrErr[$key2]}--></div>
        <!--{/if}-->
        <input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: active;" class="box120" />
    </td>
</tr>

/data/Smarty/templates/default/entry/confirm.tpl
確認ページ:38行目付近を以下に変更

             <tr>
                <th>会社名</th>
                <td>
                    <!--{$arrForm.name01|h}-->
                </td>
            </tr>
            <tr>
                <th>会社名(フリガナ)</th>
                <td>
                    <!--{$arrForm.kana01|h}-->
                </td>
            </tr>           <tr>
                <th>氏名<span class="attention">※</span></th>
                <td>
                    <!--{$arrForm.name02|h}-->
                </td>
            </tr>
            <tr>
                <th>氏名(フリガナ)<span class="attention">※</span></th>
                <td>
                    <!--{$arrForm.kana02|h}-->
                </td>
            </tr>

非会員(ゲスト購入)の修正
やる必要はないですね。
会員にしといたほうが良いですよ、購入者というのは。

メールテンプレートの修正
/data/Smarty/templates/default/mail_tamplates/contact_mail.tpl
/data/Smarty/templates/default/mail_tamplates/order_mail.tpl
の2ファイルの【お名前】部分を【会社名と氏名】に書き換え。

パスワード再発行ページの修正
/data/class/pages/forgot/LC_Page_Forgot.php
必須の解除:178行目付近を以下のように変更

        $objFormParam->addParam('会社名', 'name01', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK'));
        $objFormParam->addParam('氏名', 'name02', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK'));

/data/Smarty/templates/default/forgot/index.tpl
フォームを編集:48行目付近を以下のように変更

                    会社名と氏名:&nbsp;
                    会社名&nbsp;<input type="text" class="box120" name="name01" value="<!--{$arrForm.name01|default:''|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.name01|sfGetErrorColor}-->; ime-mode: active;" />
                    氏名&nbsp;<input type="text" class="box120" name="name02" value="<!--{$arrForm.name02|default:''|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.name02|sfGetErrorColor}-->; ime-mode: active;" />

データベースを修正
データベース操作は、phpMyAdminの場合で説明します。
アカウントにログイン>EC-CUBEのデータベース>dtb_customer
そこにある「name01」「kana01」のヌル(NULL)項目をnull

以上ですね。
他にも修正部分が探せばありますが、なんとなく気付いた時にやっていって下さい。

ブログ運営

株式会社ちょもらんま

https://qomolangma.jp