ECサイト構築のカスタマイズのベースにはLive-CommerceよりEC-CUBEのほうがいい

PHP製のECサイトパッケージに、EC-CUBEとLive Commerceってのがあります。
http://www.ec-cube.net/
http://www.live-commerce.com/


機能はLive-Commerceのほうが断然豊富です。
でも、がっつりいじくることを前提にすると、EC-CUBEのほうがいいです。
いじくらずそのまま使うなら機能の豊富なLive Commerceもいいかもしれませんが、PHP5.2でしか動かずセキュリティの不安があるので、やめておいたほうが無難。
Live Commerceを使わない理由として、これひとつで十分な気がするのですが、他の点も含めてあげておきます。

カートが使いにくい

ログイン前とログイン後でカートが別管理になっていて、ログイン前にカートに商品を入れても、ログインするとカートが空になってしまうので使いにくいです。
この改修もめんどう。

高機能すぎてさわりにくい

Live Commerceはかなり高機能で、カスタマイズするときはそういう機能を実現するためのコードが非常に邪魔くさいです。
国際化など、使わない機能のためにめんどくさいコードが必要という部分が多いです。EC-CUBEも価格計算まわりがめんどうですが。
そのたくさんの機能が、あまりよいとは言えないコードで実装されているので、解析も面倒です。

ソースツリーにクセがある

管理側とユーザー側で、同じような機能のクラスが同じ名前で両方にあったりして、PHPUnitで全部のテストを一気に実行するのもやりにくいし、コードいじるのもめんどうです。
注文管理などのロジックがZendFrameworkのアクションヘルパーに書いてあるんだけど、これアクションヘルパーの本来の使い方じゃないような。

ソースコードがひどい

基本的にソースコードがひどいです。
トランザクションが適切に使われてなかったり、表示用データ取得の関数でJavaScriptやリンクも含んだHTMLを返してきたり、簡単な処理のはずなのにセッションとリンクでの値渡しを使って複雑な実装になってたり、コードのポリシーはかなりひどいです。
そこに上記の高機能がからんでくるので、単純な変更点から計算した見積りよりも大幅に工数かかります。実現してる機能の豊富さに、開発者の実力が追いついてなくて無理やり実装しているように見えます。

フル・オープンソースではない

オープンソースといいつつ、決済関係の部分が一部ZendOptimizerでコード化されてて、クローズドソースになっています。
おかげでカスタマイズは非常にやりにくい。

決済処理に不安

ソースコードが全体的にあまりよくなく、へんな挙動やバグがあるというのはしかたないとしても、決済部分がクローズドで中身が見えず本体と同じ質だとしたらイマイチ信用できません。問題に気づいた場合に手をいれることもできません。

メンテの切れたPHP5.2じゃないと動かない

前述したZendOptimizerが必要になるおかげで、PHP5.3では動かず、セキュリティパッチももうあたらないPHP5.2じゃないと動かないです。
なので、カスタマイズなしだとしても、セキュリティを考えるなら使うべきじゃないと思います。


ということで、EC-CUBEはバグが結構あるんですが、そういうのは潰していけばいいし、ソースコードも素直なのでいじりやすいです。