EC-CUBEで会員登録画面を改造する方法【2.13系】

(最終更新 2014年5月11日) EC-CUBEカスタマイズ EC商売繁盛講座

会員登録を対会社(B2B)用にカスタマイズする方法

EC-CUBEは対カスタマー向けのソフトですので会員登録には「誕生日」などの個人用の項目があるので、EC-CUBEをB2B用の卸サイト化するには個人用の項目を削除した後に、業者用の項目を増やしてやる必要があります

ec00005


増やしたい項目と減らしたい項目

増やしたい項目は以下のとおり

  1. 店舗名
  2. 店舗名フリガナ
  3. 会社名フリガナ
  4. 代表者名
  5. 代表者名(フリガナ)
  6. 担当者名
  7. 担当者名(フリガナ)
  8. ホームページURL

削除したい項目は以下のとおり

  1. お名前
  2. お名前(フリガナ)
  3. 性別
  4. 職業
  5. 生年月日

1.データベースに項目を追加

「お名前」「お名前(フリガナ)」と「代表者名」「代表者名(フリガナ)」は同じなので元のDBをそのまま利用しましょう。


SQL文にて以下を追加、ポスグレでもMySQLでもいけるはず

 
ALTER TABLE dtb_customer ADD shop_name text; -- 店舗名
ALTER TABLE dtb_customer ADD shop_kana text; -- 店舗名フリガナ
ALTER TABLE dtb_customer ADD company_kana text; -- 会社名フリガナ
ALTER TABLE dtb_customer ADD name03 text; -- 担当者名01
ALTER TABLE dtb_customer ADD name04 text; -- 担当者名02
ALTER TABLE dtb_customer ADD kana03 text; -- 担当者名(フリガナ)01
ALTER TABLE dtb_customer ADD kana04 text; -- 担当者名(フリガナ)02
ALTER TABLE dtb_customer ADD homepage text; -- ホームページURL
 

2.会員登録画面の編集

ファイルの編集

「data/Smarty/templates/[デザインテンプレ名:普通はdefault]/frontparts/form_personal_input.tpl」

私が編集しているのはデザインテンプレなのでHTMLソースは少し異なると思いますが、

以下の要領で増やしたい項目を追加していきます

 
 <dl class="tr">
    <dt>店舗名</dt>
    <dd>
        <!--{assign var=key1 value="`$prefix`shop_name"}-->
        <!--{$arrForm[$key1].value|h}-->
    </dd>
</dl>
 

逆に減らしたい項目は以下のとおりコメントアウトしておきましょう

EC-CUBEのコメントアウトは独特なので注意

 
<!--{if false}-->
~ここから非表示~
<dl class="tr">
    <dt>性別<span class="attention">※</span></dt>
    <dd>
        <!--{assign var=key1 value="`$prefix`sex"}-->
        <!--{foreach name=sex_loop from=$arrSex item=item key=key_sex}-->
        <!--{if !$smarty.foreach.sex_loop.first}-->&nbsp;&nbsp;<!--{/if}-->
        <input<!--{if $arrErr[$key1]}--> class="error"<!--{/if}--> type="radio" id="<!--{$key1}--><!--{$key_sex}-->" name="<!--{$key1}-->" value="<!--{$key_sex}-->"<!--{if $arrForm[$key1].value eq $key_sex}--> checked="checked"<!--{/if}--> />
        <label for="<!--{$key1}--><!--{$key_sex}-->"><!--{$item|h}--></label>
        <!--{/foreach}-->
        <!--{if $arrErr[$key1]}-->
            <div class="attention"><!--{$arrErr[$key1]}--></div>
        <!--{/if}-->
    </dd>
</dl>
~ここまで非表示~
<!--{/if}-->
 

3.会員登録システムの編集

EC-CUBEの2.13系からファイルの場所が変わりました

以下のSC_Helper_Customer.phpを編集します

「/data/class/helper/SC_Helper_Customer.php」


386行目付近の「function sfCustomerCommonParam」に以下のパラメータを追加します

 
$objFormParam->addParam('店舗名', $prefix . 'shop_name', STEXT_LEN, 'aKV', array('EXIST_CHECK','NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('店舗名フリガナ', $prefix . 'shop_kana', STEXT_LEN, 'aKV', array('EXIST_CHECK','NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'KANA_CHECK'));
$objFormParam->addParam('会社名フリガナ', $prefix . 'company_kana', STEXT_LEN, 'aKV', array('EXIST_CHECK','NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'KANA_CHECK'));
$objFormParam->addParam('担当者(姓)', $prefix . 'name03', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('担当者(名)', $prefix . 'name04', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('担当者名(フリガナ・姓)', $prefix . 'kana03', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'KANA_CHECK'));
$objFormParam->addParam('担当者名(フリガナ・名)', $prefix . 'kana04', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'KANA_CHECK'));
$objFormParam->addParam('ホームページURL', $prefix . 'homepage', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
 

パラメータのそれぞれの意味は以下の通り

パラメータ 意味
EXIST_CHECK 必須項目にする、空欄の場合はエラー
NO_SPTAB スペース、タブの判定、スペース、タブ、改行は含めた場合はエラー
SPTAB_CHECK スペース、タブの判定、スペース、タブ、改行のみの入力はエラー
MAX_LENGTH_CHECK 最大文字数制限の判定、○字を超えた入力でエラー
KANA_CHECK カタカナ以外を入力したらエラー

そのすぐ下、会員登録共通「function sfCustomerRegisterParam」のいらない項目をコメントアウトします

 
//$objFormParam->addParam('性別', $prefix . 'sex', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
//$objFormParam->addParam('職業', $prefix . 'job', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
// XXX: year,month,dayはprefix付けないのが今のところ共通
//$objFormParam->addParam('年', 'year', 4, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
//$objFormParam->addParam('月', 'month', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
//$objFormParam->addParam('日', 'day', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
 

ここでひとまず動くかテスト

ここまで編集すると、データベースへの登録までは出来るようになります

テストしてみましょう

ここまででちゃんと動けば後は各種ファイルを調整していくだけです

会員登録時確認画面

「data/Smarty/templates/[デザインテンプレ名:普通はdefault]/frontparts/form_personal_confirm.tpl」

マイページ編集画面

2.13系からここは自動で変換されます

マスタ管理画面

「/data/Smarty/templates/default/admin/customer/edit.tpl」

「/data/Smarty/templates/default/admin/customer/edit_confirm.tpl」

購入画面

「/data/Smarty/templates/[デザインテンプレ名:普通はdefault]/shopping/confirm.tpl」

いらない項目を非表示

<!--{if false}-->
~ここから非表示~
                        <dl class="tr">
                            <dt>性別</dt>
                            <dd><!--{$arrSex[$arrForm.order_sex]|h}--></dd>
                        </dl>
                        <dl class="tr">
                            <dt>職業</dt>
                            <dd><!--{$arrJob[$arrForm.order_job]|default:'(未登録)'|h}--></dd>
                        </dl>
                        <dl class="tr">
                            <dt>生年月日</dt>
                            <dd>
                                <!--{$arrForm.order_birth|regex_replace:"/ .+/":""|regex_replace:"/-/":"/"|default:'(未登録)'|h}-->
                            </dd>
                        </dl>
 
~ここまで非表示~
<!--{/if}-->
 

メール送信

「/data/Smarty/templates/default/mail_templates/order_mail.tpl」




次に、

B2Bの取引では会員に相応しいかどうかの審査をする必要があると思います

通常EC-CUBEでは会員登録と同時に会員になれますが、それを許可して始めて会員になれるように改造します。



EC-CUBEで会員登録を承認制に改造する方法【2.13系】

https://www.s-oj.com/ec-business/ec-cube-approval-membership/

関連する記事

EC商売繁盛講座

簡単出品王子の消費税増税・軽減税率対応

消費税増税・軽減税率に関してのお問い合わせ ・消費税に関するお問い合わせは国税庁 ・各モールへのデータの適用に関しましては各モールへお問い合わせをお願いいたします 消費税の軽減税率制度について(国税庁) https://www.nta.go…

EC商売繁盛講座

各モールの消費税増税・軽減税率対応

楽天市場 楽天市場はCSVに消費税率欄が追加されるパターン 楽天市場では「出荷日」が10/1を跨ぐ場合、消費税率は10%となります。ですので、予約商品などで9月中に購入をされたとしても、発送が10月を過ぎる場合は10%の消費税となり、のこり…

EC商売繁盛講座

越境ECを始める際に対応言語をどうすれば良いか

越境ECを始める際に対応言語をどうすれば良いか 越境ECを始める際に対応言語をどうすれば良いのか悩みますね 2017年度の世界の人口別の使用言語ランキングは以下の通りです 2017年度の世界の人口別の使用言語 1 中国語(北京語+広東語) …