EC-CUBE2.115にcsvで顧客データを一括登録するめんどうな方法
そう言えば久しぶりにブログを書きます
スカパーが無料視聴中で、FOXチャンネルの「NCIS」を見るのに忙しかったからです♪(嘘)
ということで、あまり簡単ではではなく、もしかしたらもっと簡単な方法があるかもしれない、もっと簡単な方法は絶対ある!と思わずにはいられないEC-CUBEへの顧客データ一括登録方法です
他からECCUBEへの移管時、何がめんどうかというと、やはり顧客データ。2、3件なら手動で入力しちゃいますが(2、3件しか顧客データがないショップというのもどうかと思うのですが…)、ン百件ともなると、さすがにめんどうです
ポイントなんてからんでたあかつきには、きちんとデータを移行してくれないと、わたしが消費者なら、「今まで貯めてたポイントは???」なんて怒ってしまいます
で、ややめんどうな方法を考えてみました
ややめんどうなだけあって、以下の2つは必須です。要はデータをcsvで作ってphpMyAdminから手動でインポートするわけです
★phpが使えること
★phpMyAdminが使えること
ECCUBEで顧客データは、「dtb_customer」に、以下の内容で格納されています(「●」は必須です)
customer_id | ● | 会員NO※同じ値があったらダメ! |
name01 | ● | 苗字 |
name02 | ● | 名前 |
kana01 | ● | ミョウジフリガナ |
kana02 | ● | ナマエフリガナ |
zip01 | ● | 郵便番号最初の3ケタ |
zip02 | ● | 郵便番号後半4ケタ |
pref | ● | 県コード |
addr01 | ● | 住所1 |
addr02 | ● | 住所2 |
● | メールアドレス | |
email_mobile | 携帯アドレス | |
tel01 | 電話番号市外局番 | |
tel02 | 電話番号3ケタ(4ケタ) | |
tel03 | 電話番号後半4ケタ | |
fax01 | FAX番号市外局番 | |
fax02 | FAX番号3ケタ(5ケタ) | |
fax03 | FAX番号後半5ケタ | |
sex | ● | 性別 |
job | 仕事NO | |
birth | 誕生日 | |
password | ● | パスワード |
reminder | ● | パスワードを忘れた時用の問題NO |
reminder_answer | ● | パスワードを忘れた時用の答え |
salt | ● | (パスワード生成時に使用した文字列) |
secret_key | ● | シークレットキー |
first_buy_date | 0000-00-00 00:00:00 の形式で年月日時分秒 | |
last_buy_date | 0000-00-00 00:00:00 の形式で年月日時分秒 | |
buy_times | 数字 | |
buy_total | 数字 | |
point | 数字 | |
note | ||
status | ● | 会員か仮会員か |
create_date | ● | 0000-00-00 00:00:00 の形式で年月日時分秒 |
update_date | ● | 0000-00-00 00:00:00 の形式で年月日時分秒 |
del_flg | ● | 0 |
mobile_phone_id | ||
mailmaga_flg | ● | メルマガ希望か否か |
なので、Excelでもって、
customer_id | name01 | name02 | kana01 | kana02 | zip01 | ・・・ |
1 | 田中 | 幸子 | タナカ | サチコ | 733 | ・・・ |
2 | 山田 | 花子 | ヤマダ | ハナコ | 734 | ・・・ |
なんて風にまずはデータの並び替え版をがんばって作ります
でもがんばりようがないのは以下の5つで、これらは、AUTH_MAGIC値とsalt値となんやかんやをもとに、sha256で暗号化した文字列を入れないとECCUBEが認識してくれません
password |
reminder |
reminder_answer |
salt |
secret_key |
そこで、コレ(右クリックで名前をつけて保存してください)を使います
1.コレをエディタで開いて(文字コードUTF8N)、自分のECCUBEのAUTH_MAGICの値、平文のパスワードを書いたtxtファイルの名前、$saltに適当な英数字、を書き込みます(data/config/config.phpにUTH_MAGICの値が書いてあります)
2.コレと、平文のパスワードを書いたtxtファイルを一緒のフォルダに入れます
3.コレを実行
4.password.csvなるものが生成されますので、このcsvファイルの2行目をpassword、3行目をsecret_keyに。1でコレに書いた$saltの値をsaltに、作成中の顧客データに使用します(この作業で、移行前の顧客データのパスワードがECCUBEでも使えます)
reminderとreminder_answerについては、何かデフォルトで入れておいて、もう一度設定していただく方がいいかな、と…
最後に、作ったデータのタイトル行を削除します(customer_id云々の行)
こんなめんどうなことをもりもりクリアしたら、データをutf8で保存して、phpMyAdminからインポートします!
そして、dtb_customer_customer_id_seqの数値、顧客数の数値と同じになるよう書き換えます!
この方法…普通に考えたらやっぱりめんどうですねぇ
こちらを参考にさせていただきました:顧客情報 登録機能
追加:ちなみに、上記方法で顧客の一括登録後、通常の方法で新規会員登録時エラーが出る場合、phpMyAdminのdtb_customer_customer_id_seqでもってSQLを実行し、AUTO_INCREMENT(自動採番)のリセットを行うとエラーがでなくなるのですが、自動連番をやりなおすので、顧客NOなどが変更になります…う~ん…
ALTER TABLE? dtb_customer_customer_id_seq? AUTO_INCREMENT = 1;