EC-CUBEの郵便番号DB登録について | せっけん作り、アルカリ洗濯・・・ ちょっとだけ生活を楽しくしたい +10%ウキウキ生活

EC-CUBEの郵便番号DB登録について

たまには仕事のお話。

EC-CUBEでネットショップを作ったのですが、このシステム、何かと不具合や使い勝手が悪いところがある。
全体的にはそう悪くないシステムなのだけど、ちょっと不満なところが多い。

まあ、でもバグ等発生してた場合の解決方法がフォーラムによってディスカッションされて、解決方法が書いてあったりするので、無料としては十分なシステムではないでしょうか。
うーん、、あのフォーラムがなかったらこのシステムは終わってんねえ・・・。

今回題材にしたのは、あのシステムでもっとも頭を悩ませたところ「郵便番号DB登録」です。
まあ、他にも何個か困ったところはあったんだけど、一番目立ったところはコレですね。

何をやるかというと、日本郵便(元郵政公社・・・今、日本郵便って名前なんですねえ)より「郵便番号データのダウンロード」をして、それをEC-CUBEのDBに登録し、登録が完了すると、各所の住所登録フォームで郵便番号を入れただけで、自動的に住所をフォームに表示してくれるという便利なものなのです。

ダウンロードしたてのCSVファイルは、「ken_all.lzh」という名前で圧縮されており、解凍すると「KEN_ALL.CSV」というファイル名のファイルが1枚だけ出てくる。

中身を開くと、下記のようなテキストが入っています。郵便番号は全件で122535件。

郵便場号CSVの中身

ダウンロードしたばかりのファイルは「SJIS」で保存されています。
EC-CUBEで郵便番号DB登録を行うためには、文字コードを「EUC」に変更します。「SJIS」のままでは正しく登録されません。
文字コードを変更する際には、必ずテキストエディタで開きましょう。KEN_ALL.CSVダブルクリックするとおそらくエクセルで起動しちゃうのですが、エクセルで変更をすると「””」が外れてしまい、正しく登録されないので、住所入力フォームでが住所が自動入力されなくなります。
ちなみに私は愛用のテキストエディタ「otbedit」で開いて文字コードの変更をかけてます。このテキストエディタはとてもお勧め。
製作者さんがとてもアグレッシブにユーザーの要望を聞き入れてくれ、バグの修正もしっかり行ってくれます。
ウフフフ、私の要望も1件導入されているんですよっ。
なんかみんなで作るテキストエディタって感じがしてうれしいです。

余談ですが、「Namery」っていうお勧めなリネームソフトがあるのですが、ここも「otbedit」同様製作者さんが要望聞き入れてくれるので、うれしいです。
何を隠そう、ココにも私の要望が1件導入されています。フッフッフ、うれしいねえ。

余談は入りましたが・・・このファイルは「/admin/basis/KEN_ALL.CSV」にあるので、EC-CUBEをダウンロードしたばかりは既にこのデータが入っているのですが、EC-CUBEをインストール後は最新のCSVファイルを日本郵便からダウンロードしてきて、文字コードを変換し、上書きしておきます。
そうしてから郵便番号DB登録を行います。

さて、、一番の問題はこの後。

MySQLにDBの登録作業を行うわけですが、うちところではコレが簡単にはいかなかったのです。
「郵便番号DB登録」ボタンを押してもメーターがちょっと動いただけで「完了」とステータスバーに表示されてしまうのです。

サーバー(Apache)のタイムアウトなのかPHPのタイムアウトなのかMySQLのタイムアウトなのかちょっと原因はわからないのですが・・・。

当然この状態では「住所入力」ボタンを押してもほとんどが登録されません。

ちなみに「ほとんど」と書いたのには理由があります。
まったく登録されているわけではなく、CSVファイルの上から一定の件数は登録されているのです。
ざっと見たところ、1000件ちょっと登録された段階で「完了」が表示されています。
つまり、CSVファイルの上から1000件程度の住所ならば、1回登録ボタンを押しただけで自動入力可能になるのです。

CSVファイルの1件目は「北海道”,”札幌市中央区”」です。1000件目は「”北海道”,”小樽市”」です。
この間の住所ならば、郵便番号を入れて自動入力ボタンを押すと、自動で入力フォームに住所が書き込まれると思われます。

さて、この後どうするかというと・・・。

なんてことはない、また「郵便番号DB登録」を押すかF5を押すのです。
すると3メモリほど進んだ段階で「完了」がステータスバーに表示されます。

メモリが進んでいる
メモリが0%~100%まであります。
完了が表示されたらまた「郵便番号DB登録」かF5を押します。F5を押していくのが楽ですね。
上で1000件程度登録されたと書きました。全件で12万件ほどありあます。
つまり!100回「郵便番号DB登録」かF5を押すのです。

いや、冗談じゃないですよ。
1時間くらい画面に張り付いて延々と繰り返し続けるんですよ・・・・。
気の遠くなるような仕事ですが、これで最後には登録できるようになります。

住所自動入力
郵便番号DBの登録がうまくいかない方は参考にしてみてください。

まあ他にも色々有りましたので、またそのうち書こうと思います。