EC-CUBEにはデフォルトで顧客データを流し込む機能が存在しないため自前で構築してみることにしてみました。
まずは管理者画面に顧客アップロードメニューを追加する修正を行います。
画面イメージ
まずは管理者機能にメニューを追加する。(”顧客アップロード”のサブメニューを追加)

これは以下ファイルを修正します。
data/Smarty/templates/default/admin/customer/
subnavi.tpl
このファイルの<tr> ~</tr> をコピーしてそのまま
下に張り付けします。
そして、”index”となっているところをすべて”upload”に変換。
サブメニューのタイトルを”顧客マスタ”から”顧客アップロード”に変更します。
以上でOKです。
<ul class="level1">
<li
<!--{if $tpl_subno == 'index'}--> class="on"<!--{/if}--> id="navi-customer-index"><a
href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->customer/<!--{$smarty.const.DIR_INDEX_PATH}-->"><span>顧客マスター</span></a></li>
<li
<!--{if $tpl_subno == 'customer'}--> class="on"<!--{/if}--> id="navi-customer-customer"><a
href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->customer/edit.php"><span>顧客登録</span></a></li>
<li
<!--{if $tpl_subno == 'upload_csv'}--> class="on"<!--{/if}--> id="navi-customer-uploadcsv"><a
href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->customer/upload_csv.php"><span>顧客一括アップロード</span></a></li>
</ul>
つづいてアップロード機能のプログラムを作成していきます。
まずは、upload.phpを作成します。
作成する場所は、html/admin/customer/
ここで、同ディレクトリのindex.phpをコピーして、下のように書き換える。
// {{{ requires
require_once(“../require.php”);
require_once(CLASS_EX_PATH . “page_extends/admin/customer/LC_Page_Admin_Customer_Upload_Ex.php“);
// }}}
// {{{ generate page
$objPage = new LC_Page_Admin_Customer_Upload_Ex();
register_shutdown_function(array($objPage, “destroy”));
$objPage->init();
$objPage->process();
続いて、LC_Page_Admin_Customer_Upload_Ex.phpを作成します。
作成する場所は、data/class_extends/page_extends/admin/customer/
ここでも同様に、LC_Page_Admin_Customer_Exをまるっとコピーして作成します。
// {{{ requires
require_once(CLASS_PATH . “pages/admin/customer/LC_Page_Admin_Customer_Upload.php“);
/**
* 顧客アップロード のページクラス(拡張).
*
* LC_Page_Admin_Customer_Upload をカスタマイズする場合はこのクラスを編集する.*
* @package Page
* @author LOCKON CO.,LTD.
* @version $Id$
*/
class LC_Page_Admin_Customer_Upload_Ex extends LC_Page_Admin_Customer_Upload {
// }}}
// {{{ functions
/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
parent::process();
}
その2へ続きます。
EC-CUBE 顧客データ一括アップロード機能を実装する その2
