EC-CUBEで会員登録画面を改造する方法【2.13系】
会員登録を対会社(B2B)用にカスタマイズする方法
EC-CUBEは対カスタマー向けのソフトですので会員登録には「誕生日」などの個人用の項目があるので、EC-CUBEをB2B用の卸サイト化するには個人用の項目を削除した後に、業者用の項目を増やしてやる必要があります
増やしたい項目と減らしたい項目
増やしたい項目は以下のとおり
- 店舗名
- 店舗名フリガナ
- 会社名フリガナ
- 代表者名
- 代表者名(フリガナ)
- 担当者名
- 担当者名(フリガナ)
- ホームページURL
削除したい項目は以下のとおり
- お名前
- お名前(フリガナ)
- 性別
- 職業
- 生年月日
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}--> <!--{/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/
関連する記事
楽天市場SKUプロジェクトの商品登録注意点
商品ページの種類 商品ページの種類は以下の二つです 商品種別 シングルSKU マルチSKU 商品ページ内のSKU数 1個 2個以上 購入できるSKU数 1個 1個 価格 SKU別 SKU別 画像 特徴 •従来の「通常在庫」ページと同様に、1…
【2023年2月更新版】Shopify(ショピファイ)のCSVの仕様
Shopify(ショピファイ)のCSVの仕様は以下の通りです 各商品について、それが単一の商品か、バリエーションのある商品かを判断する必要があります。 単一の商品: 単一の商品にはバリエーションが含まれていません。バリエーションのない商品を…
簡単出品王子の消費税増税・軽減税率対応
消費税増税・軽減税率に関してのお問い合わせ ・消費税に関するお問い合わせは国税庁 ・各モールへのデータの適用に関しましては各モールへお問い合わせをお願いいたします 消費税の軽減税率制度について(国税庁) https://www.nta.go…
各モールの消費税増税・軽減税率対応
楽天市場 楽天市場はCSVに消費税率欄が追加されるパターン 楽天市場では「出荷日」が10/1を跨ぐ場合、消費税率は10%となります。ですので、予約商品などで9月中に購入をされたとしても、発送が10月を過ぎる場合は10%の消費税となり、のこり…
越境ECを始める際に対応言語をどうすれば良いか
越境ECを始める際に対応言語をどうすれば良いか 越境ECを始める際に対応言語をどうすれば良いのか悩みますね 2017年度の世界の人口別の使用言語ランキングは以下の通りです 2017年度の世界の人口別の使用言語 1 中国語(北京語+広東語) …
ECサイトは一歩踏み込んだSEO対策「schema.org」対応をしよう
schema.orgとは? 標準化団体というのを聞いたことがありますでしょうか?WEBデザイナーなどパソコン系の職種の人にはなじみ深いワードなのですが、ザックリと説明すると「いままでバラバラだった文章を標準に合わせようよ!」という団体です。…
