2007年7月 のアーカイブ

MySQL か PostgreSQL か

2007年7月24日 火曜日

EC-CUBE のシステム要件では、

 Postgres:PostgreSQL 7.4.x以降
 MySQL:MySQL4.1以上(MySQL5.x系を含む)

となっている。
Rapidsite や xbit はMySQL、Xrea や CPIで は MySQL と PostgreSQL の両方が使えるようだ。

注:ざっとサイトをチェックしただけなので、詳細はご確認ください
特に、MySQLのバージョンにはご注意

注:上記のサーバ会社のサービス全てで EC-CUBE を使えるかどうかは未確認
公式マニュアルサイト に記載されていたサーバを挙げてみました

で、果たしてどちらの DB が良いのか。

先日ロックオンの開発者に聞いてみたところ、EC-CUBEは元々 PostgreSQL で作成されていたので、細かなチューニングや動作検証は PostgreSQL の方が蓄積があるそうだ。
相性という意味では、PostgreSQLの方がやや上か?
ただ、MySQLの動作実績も十分溜まってきたので、こちらでも問題ないとのこと。

パフォーマンスに関しては、おそらく環境に依存すると思われる。

MySQL での構築経験の方が豊富なら、あえて PostgreSQL を選択する必要はなさそうだ。
どちらでも変わらないようなら…PostgreSQL の方が無難?

海外サイト制作 UTF-8化への道 その2

2007年7月23日 月曜日

海外のお客様向けに EC-CUBE を UTF-8化 する第二弾。

といっても、それほど難しくなくサイトの表示まで完了。

手順はこんな感じ。

【1】DBを UTF-8 で作成

> CREATE DATABASE eccube_db CHARACTER SET utf8;

【2】必要ファイルを全て UTF-8化

開発コミュニティに大河内さんが作成してくださった UTF-8化 のプログラムがあるけど、今回は windows のローカルで変更してしまいました。
私が使用したプログラムは一部の変換にミスったので、ここでは紹介しませんが… google などで「文字コード 変換 フリーソフト」などで EUC から UTF-8 に変換できるアプリを探してみてください。

次の拡張子のファイルを全部変換。
*.php;*.inc;*.tpl;*.css;*.sql;*.js

但し、

\data\module

以下はいじらない方が無難かも。

【3】conf.php の書き換え

data\conf\conf.php(118): define(”CHAR_CODE”, “EUC-JP”);

上記の EUC-JP を UTF-8 に変更。

campaignを使う予定はなく、海外用なのでモバイルも気にしないでいいので基本的にコレでOKです。
あとは通常にインストールするだけで、今のところ特に問題なし。
I.E.でちょろちょろと Javascript のエラーが出ていたのが目障りだったので、javascript の読み込み時に utf-8 を指定するようにしたところエラーが消えました(注:これが原因なのかどうかはわからないけど)。

例:
<script type=”text/javascript” src=”/js/site.js”></script>
                        ↓
<script type=”text/javascript” src=”/js/site.js” charset=”utf-8″></script>

これらの修正を行ったのは下記3ファイル

\data\Smarty\templates\site_frame.tpl
\data\Smarty\templates\admin\login_frame.tpl
\data\Smarty\templates\admin\main_frame.tpl

【4】EC-CUBEをインストール

あとは、ふつうにインストールするだけです。
むろん、インストール時にすでに UTF-8 になっているはずなので、ソースなどを開いて確認してみてください。

今のところはうまく行っているようなので、本格的なEC-CUBEのカスタマイズに入っていこうと思います。

EC-CUBEがインストールされているサイトを探す方法?

2007年7月20日 金曜日

とあるログを見ていると、「Copyright(C)2000-2007 EC-CUBE All rights reserved.」というワードで検索している人がけっこういるようだ。

ログの取得ミスかな?と思ったけど…

実際に検索してみると、500件ものヒットが。

で、大半が EC-CUBE をインストールしたけど、フッタの Copyright を変更せずそのまま「Copyright(C)2000-2007 EC-CUBE All rights reserved.」となっているサイトだった。

これって、EC-CUBEがインストールされているサイトを誰かが調べてるのかな?

海外サイト制作 UTF-8化への道 その1

2007年7月17日 火曜日

先週末は、EC-CUBEのセミナー&EC-CUBE制作パートナー様の懇親会に参加。

新しい発見もあったし、競合というより良きライバルといった感じで楽しくお酒が飲め、とっても良い刺激を受けました。

さてさて、今週からは EC-CUBE の UTF-8化。

ポイントは、

 【1】 ファイルの文字コードを全て UTF-8化
 【2】 mb_convert_encodingなど、内部的に文字コード変換をしている箇所の修正
 【3】 サーバ(特にDB)設定

の2つだろう。
といっても【1】はカンタンな話。

【2】の箇所を丁寧に追っかけてつぶしていけば完了すると思われる。
ロックオン様からのアドバイスで CSV周辺 の処理が要注意か?

【3】もけっこうハマる可能性がある。サーバによってはDBの文字コードを ujis から変更できない可能性もあるので、この場合に正しい挙動をしてくれるかは未知数だ。

苦労はするだろうが、UTF-8化はできそうな気がしている。で、できれば今後はUTF-8バージョンを標準にしたい。
問題は、先週のセミナーでも何度か話題に挙がっていたが、バージョン管理かな?

明日は第1回EC-CUBEセミナー@東京

2007年7月12日 木曜日

明日は、東京で「インテグレートパートナー様を対象としたセミナー及び懇親会」がある。

もちろん、私も参加する。
関西の方からもけっこう参加されるみたいなので、楽しみだ。

開発コミュニティサイトが、やや初心者向けの「FAQサイト」的な感じになっていて、機能拡張や新しい展開などの話題がなかなか盛り上がってこないのでこうした「EC-CUBE次の一手」のような話ができると面白そうだ。

先ほど、ロックオン様から

> くつろいだ雰囲気のセミナー・懇親会にしたいと思っております。

といったメールが届いた。
おお、それは良い ^-^

EC-CUBE はロリポップでは動かない…

2007年7月11日 水曜日

よくある質問:

Q:ロリポップのレンタルサーバでEC-CUBEを動かすにはどうしたらいいのですか?

A:残念ながら、ロリポップではEC-CUBEは動きません…

大半の格安レンタルサーバではEC-CUBEのインストールができないんです、残念ながら。
PHPはクリアしてるんだけど、ロリポップに代表される安価なサーバだとMySQLのバージョンが 4.0系 が多くEC-CUBEのシステム要件を満たしておりません。
さくらインターネットのレンタルサーバも同様です。

特に、EC-CUBEはサブクエリを多用しており、サブクエリに対応したのはMySQL4.1からなので、この部分はどうしようもない…
PostgreSQLを採用しているレンタルサーバは少ないので、やはりMySQL4.1以降が載っているところを探すことになりそうです。

それ以外にも、乗り越えるべき課題はいくつかあるのでレンタルサーバを借りるのであれば、開発コミュニティなどで動作事例のあるサーバを借りることをオススメします。
特に「あとでSSLが動かないことがわかった」などは致命的になったりもするので、要注意。

あ、もちろん弊社エスキュービズムにもお気軽にお問い合わせください、ね。

注文完了時に送られるメール

2007年7月10日 火曜日

今日は、EC-CUBEで注文完了時に送られるメールのカスタマイズ方法について書いておこう。

■メールテンプレート

(EC-CUBEをインストールした場所)\data\Smarty\templates\mail_templates\order_mail.tpl

メールの本文を修正したい場合は上記のファイルを編集すればOK

■メールのあて先などの設定

メールのあて先などの設定を変更したい場合は、PHPのファイルを修正する。
特に BCC で送るのを止めたい、Fromのアドレスを変えたいといった要望にはこの修正で対応が可能。

(EC-CUBEをインストールした場所)\data\lib\slib.php

1663行目(v1.3.2) sfSendOrderMail という関数

下のほうに降りていけば、

 // メール送信処理
 $objSendMail = new GC_SendMail();
 $bcc = $arrInfo['email01'];
 $from = $arrInfo['email03'];
 $error = $arrInfo['email04'];

といった記述が見つかるはず。

■メール送信処理そのもの

もっとシステム的に、メールヘッダなどを変更したい場合はこちらのファイル。

(EC-CUBEをインストールした場所)\data\class\GC_SendMail.php

メールヘッダに特殊な情報を付加したい場合などはこのファイルを変更すれば対応可能。

感謝:ゴールドパートナー認定

2007年7月6日 金曜日

弊社エスキュービズムが、ロックオン様にEC-CUBEインテグレートパートナーの「ゴールド」に認定して頂きました。

素晴らしいEC-CUBEを御提案し、お客様にも喜んで頂いております。
その結果、ゴールドに認定していただき、嬉しいと共に感謝感謝です。

お客様とお話していると、当たり前と言えば当たり前なのですが、EC-CUBEを使えるようにする(インストールする)のが目的ではなく、EC-CUBEを活用して商品を売るのが目的だと改めて思い知らされます。

なので、プロモーションやマーケティング面の機能強化をしていけないかと模索中。

まずは、アクセス解析やメルマガ配信、マイページの機能拡張といったところでしょうか?

うまくインストールできない3大要因

2007年7月4日 水曜日

EC-CUBEをインストールする際にうまく動かない要因は主に次の3つに集約される気がする。

【1】DBのバージョン

MySQLのバージョンが古く(特に多いのが4.0系)、インストール時にエラーが出るケース。
EC-CUBEはサブクエリを使用しており、MySQL4.1以降じゃないと対応していない。安価なレンタルサーバは MySQL4.0系 を採用している場合が多く、ほとんどが動かない。(PostgreSQLを採用している格安サービスは少ない)

【2】文字コード

EC-CUBEの文字コードは EUC-JP。最近は UTF-8 が普及してきており、DBの文字コードと一致しないままインストールするとうまく動かないことがある。
このケースは、インストールはうまく行ったように見えるけど、アクセスしてみると文字化けや白紙ページが表示されることが多い。

【3】ファイル所有者、権限

最後にもう1点、ファイルの書き込み権限がない(ファイルオーナーが違うなど)こともよくある。
インストール時には権限がないと次のステップに進めないのでわかりやすいが、何かの拍子に(例えばファイルのコピーなど)権限が変わってしまうとエラーが出たりする。
Smartyのキャッシュディレクトリや、画像のアップロード先などがこれに該当することが多い。

もしうまく行かなかったら、まずはこれらを疑ってみると良いと思う。で、EC-CUBE開発コミュニティサイトを調べて見ると、けっこう解決する。

■開発コミュニティサイト
http://xoops.ec-cube.net/

デザインのカスタマイズ

2007年7月3日 火曜日

EC-CUBE はプログラムはPHPで書かれている。
で、表示の部分は Smarty というテンプレートエンジンを採用しているわけだが、このファイルがいくつか点在しているため、プログラミングに不慣れな方はデザイン変更に必要なファイルを探すのに一苦労なようだ。

Smarty のテンプレートはファイル拡張子が .tpl となっている。

■基本3兄弟(トップ、一覧、詳細)

トップページ、カテゴリ一覧ページ、商品詳細ページの3つは

(EC-CUBEをインストールした場所)/html/user_data/templates

に [top.tpl] [list.tpl] [detail.tpl] というファイル名で存在する。

■ヘッダとフッタ

(EC-CUBEをインストールした場所)/html/user_data/include

[header.tpl] [footer.tpl]

■買い物カゴや新着情報など、トップページのブロック

(EC-CUBEをインストールした場所)/html/user_data/include/bloc

[cart.tpl] [news.tpl] など

    -------------------------

ここまでは多くの方が見つけられるようだ。

bodyやheadなど、全体に関するテンプレートは全く別のところにある。

■bodyタグなど

(EC-CUBEをインストールした場所)/data/Smarty/templates

[site_frame.tpl] [site_main.tpl]

metaタグを修正したい場合は上記ファイルを開けばわかる。

■その他、トップページなどに含まれないもの

買い物カゴの中身や問い合わせフォームなどを修正したい場合はURLを見ながら

(EC-CUBEをインストールした場所)/data/Smarty/templates

の下を探していけば、それっぽいファイルがあるはず。
これらを知っていれば、EC-CUBEのデザインを修正する際に必要なファイルはほとんどおさえられると思う。