EC-CUBEの会員登録画面で客を逃がさない為のカスタマイズ

2012年4月20日 14:20
あなたは、何故に会員登録しますか?

会員以外商品価格が見られないサイトを除いては、会員登録=買い物と考えていいでしょう。
しかし、それを阻むのが、会員登録時の無駄な作業。

この煩雑さは、なんとも言えないものがあります。
客の人柄は二の次で、買ってもらわなければ仕方がありません。
ということは、会員登録ごときで時間をかけさせている場合か、と。

というわけで、この会員登録画面をカスタマイズし、客の取りこぼしを減らしましょう。
この記事は最終更新日から1年以上が経過しています。

EC-CUBEでの買い物の仕方

実は、EC-CUBEでは、会員登録しないでも買い物が出来るようになっています。
これは便利、と思ってはいけません。

簡単入力で買い物まで一直線と思うでしょうが、運営者側には何の旨味もありません。
1.身元が安定しない
訳のわからないアドレスでも、買い物完了までは持っていけます。
会員登録時のように、承認メールをクリックさせるわけでもないので、イタズラし放題という訳です。

2.リピーターに取り込む要素が薄くなる
未登録による買い物をすると、ポイントがつきません。
運営者側では、「やった、節約できた」と思える話ではありません。
次回、買い物へ誘う武器が削がれている、というわけです。
登録してないので、メルマガも送信できませんしね。

3.客はなにも得していない
ポイントがつかない。
配送先住所登録は、入力している内容が会員登録と何ら変わりない。
唯一、メルマガが飛んでこないというのが考えられますが、アドレスは店に預けた状態なので、なんとでもできます。

以上の3点から、会員登録せずに買い物をするという機能は、外すべきだと思いました。

data/Smarty/templates/default/shopping/index.tpl
90行目から以下を削除

 <h4>会員登録をせずに購入手続きへ進む</h4>
 <p class="inputtext">会員登録をせずに購入手続きをされたい方は、下記よりお進みください。</p>
 <form name="member_form2" id="member_form2" method="post" action="?">
 <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
 <input type="hidden" name="mode" value="nonmember" />
 <div class="inputbox">
                <div class="btn_area">
                    <ul>
                        <li>
    <input type="image" onmouseover="chgImgImageSubmit('<!--{$TPL_URLPATH}-->img/button/btn_buystep_on.jpg',this)" onmouseout="chgImgImageSubmit('<!--{$TPL_URLPATH}-->img/button/btn_buystep.jpg',this)" src="<!--{$TPL_URLPATH}-->img/button/btn_buystep.jpg" alt="購入手続きへ" name="buystep" id="buystep" />
                        </li>
                    </ul>
                </div>
</div>
</form>

仮会員確認メールを送信する設定

この会員承認メール、Twitterなどの会員登録時にも承認の為に受け取らないといけないわけで、現在では当たり前になっています。

で、EC-CUBEはと言いますと、機能はあるが、インストール時の設定は、OFFとなっています。
会員承認メールが、最初から送信されるわけではないのです。

というわけで、以下に設定方法を。

管理画面>システム設定>パラメーター設定
CUSTOMER_CONFIRM_MAIL:会員登録時に仮会員確認メールを送信するか (true:仮会員、false:本会員)
これを true に変更。

これで、会員登録したら、承認メールが飛びます。

会員登録フォームの修正

続いて、登録フォームのいらないものを削除してしまいましょう。
いらないものは3つです。
性別職業生年月日のですね。

だいたい、性別が必須というのもよくわかりません。
本来、これが必須でなければ、tplファイルだけを修正して終わりだったのですが、そうも行きません。

仕方ないので2つのファイルを直していきましょう。
data/class/helper/SC_Helper_Customer.php
396行目付近を以下のようにコメントアウト

/*
$objFormParam->addParam("性別", 'sex', INT_LEN, 'n', array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
$objFormParam->addParam("職業", 'job', INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK"));
$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);
*/

もう使わないのなら、この部分を削除でもよかったんですけどね、どちらでも大丈夫です。
ちなみに、性別の必須項目を外したいだけなら、“EXIST_CHECK”, を削除するだけです。

data/Smarty/templates/default/frontparts/form_personal_input.tpl
141行目付近、以下の部分を削除。

    <tr>
        <th>性別<span class="attention">※</span></th>
        <td>
            <!--{assign var=key1 value="`$prefix`sex"}-->
            <!--{if $arrErr[$key1]}-->
                <div class="attention"><!--{$arrErr[$key1]}--></div>
            <!--{/if}-->
            <span style="<!--{$arrErr[$key1]|sfGetErrorColor}-->">
                <input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
                <input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>
            </span>
        </td>
    </tr>
    <tr>
        <th>職業</th>
        <td>
            <!--{assign var=key1 value="`$prefix`job"}-->
            <!--{if $arrErr[$key1]}-->
                <div class="attention"><!--{$arrErr[$key1]}--></div>
            <!--{/if}-->
            <select name="<!--{$key1}-->">
                <option value="" selected="selected">選択してください</option>
                <!--{html_options options=$arrJob selected=$arrForm[$key1]}-->
            </select>
        </td>
    </tr>
    <tr>
        <th>生年月日</th>
        <td>
            <!--{assign var=errBirth value="`$arrErr.year``$arrErr.month``$arrErr.day`"}-->
            <!--{if $errBirth}-->
                <div class="attention"><!--{$errBirth}--></div>
            <!--{/if}-->
            <select name="year" style="<!--{$errBirth|sfGetErrorColor}-->">
                <!--{html_options options=$arrYear selected=$arrForm.year|default:''}-->
            </select>年
            <select name="month" style="<!--{$errBirth|sfGetErrorColor}-->">
                <!--{html_options options=$arrMonth selected=$arrForm.month|default:''}-->
            </select>月
            <select name="day" style="<!--{$errBirth|sfGetErrorColor}-->">
                <!--{html_options options=$arrDay selected=$arrForm.day|default:''}-->
            </select>日
        </td>
    </tr>
 

以上です。
あとは、試しに会員登録をできるか、承認メールが届くかを確認して、完成です。

総括

会員登録が昔に比べて、抵抗感は薄れています。
ネットを通じて個人情報を教える事がそれほど危険とも思わなくなったのでしょうね。

そういう意味では、ECサイトの成長はこの先も続くことでしょう。
その成長の恩恵を授かる為に、客の取りこぼしを防ぐように、こうした細かいカスタマイズをしていくのも良いのではないでしょうか。

ブログ運営

株式会社ちょもらんま

https://qomolangma.jp