BlogCakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。MASA-PEC-CUBE導入は前途多難...仕事の都合でショッピングサイトを構築しなければならなくなり、いくつかあるオープンソースのシステムを物色しています。どれも一長一短で首を縦に振れない状況なのですが、納期の関係もあるため、仕方なく「EC-CUBE」にすることにしました。最新安定版の2.1.2を試していましたが、まずカテゴリのCSV登録が出来なくて躓き、苦戦しているところです(この件に関しては後述)。現在最もネックになっているのが、ポイントシステムの存在。システム上外すことが出来ないため、このままでは運営を変えるしかないのかもしれません。それから、税込・抜き・非課税を商品単位で決められないところも非常に困るところです。いってEC-CUBEを諦めるわけにもいかない訳でして...osCommerceもZenCartもPHP5では動かないため、将来的にごっそり入れ替えなければいけないことが予想されるシステムを導入することも出来ません。osCommerceは新バージョンでPHP5やテンプレートシステムに対応するようですが、まだalpha版で導入するのが怖いし、拡張モジュールもおそらく現状のものを使えないだろうから構築は大変だろうし。PostgreSQLが使えないのも困るんですけど。派生プロジェクトのOpenBazaarも考えたんですが、上記の問題は全て解決できそうなんですが、あまりメンテナンスされていないっぽいのと、検索してもスムーズに導入できた実績が無いようで、茨の道を進むつもりはないのでこれもパス。本当は自作したいのですが、まあこれも時間がないので...まああれこれ言っていても仕方がないので、とりあえずEC-CUBEを使えるものにしながら進んでいこうということで(これはこれで茨の道ですが)。そんなわけでとりあえず評価用サイトを作る必要があるので、インストールし、前述のカテゴリCSVが取り込めない不具合の解消に現在取り組んでいる次第です。この不具合...指定された項目の通りにCSVを作成してアップロードしても「既に同じ内容の登録が存在します」というエラーが出て先に進めない、というものなんですが、バグ情報にも具体的な解決方法が上がっていないし、ネット検索しても有力な情報を得られないため、仕方なくソースを解析しました。結局「記述ミス」によるバグが直接的な原因でした。次の箇所を修正すると「とりあえず」正しい動きをするようになります。同じ内容の登録が存在します。同じ内容の登録が存在します。<br>";}ところが、これ以外にも「仕様」の穴があり、サブカテゴリの設定が大変に困難です。CSVデータの1カラム目は「カテゴリID」がくるのですが、ここに想定したIDを書き込んでしまうと「更新」扱いになるのです。新規登録をしたい場合は、ここを空白にしなければならないのです。サブカテゴリを登録したい場合は、3カラム目に「親カテゴリのID」を指定しなければならないので、IDの無いものへの指定は出来ません。一度親カテゴリを全て登録し、カテゴリIDが確定した段階で子カテゴリに親カテゴリのIDを記述し、それを登録...という、とても面倒な手順を踏まなければなりません。カテゴリ分類のあまりいらない小規模なショップなら良いのですが、カテゴリ分けの複雑な大規模なショップをやりたい場合、これでは設定が面倒で仕方がありません。バックアップを想定した作りなのでしょうが、これでは使えない機能になってしまいますので、これに関しては仕様の変更をお願いしたいところです。追加目的もあるでしょうから、チェックボックスのフラグがあっても良いかもしれません。ソースを眺めてみても、このファイルだけでも大変に無駄が多く、なんで3回もCSVファイルをfopenして全検索する必要があるのだろう、みたいなところとか、fcloseしていないとか、恐ろしいところもいくつかあったりします。このクラス内で利用している別のクラスでは、チェックルーチンとコンバートルーチンを兼用しているところがあり、戻り値が一体どちらなのか分からないようなものもあります。オープンソースであるのだから、仮に同じ処理を通すことでソースコード量の無駄が減るにしても、可読性の落ちる書き方はいただけないです(個人的には、こんな書き方だからバグが多いのだと思ったりする)。ソースの中を覗いてから正式決定するつもりではいますけど、おそらくかなり苦戦することになりそうだと予想はしています。ああ~、ECシステムのプロジェクト立ち上げたいなーなんて思ったり。できればCakeベースで(笑)。BakesaleというCake用のカートもあるんですが、現状これも使い物にならないというのか...本当にECシステムの選定には頭を悩まされます。いうわけで、今後EC-CUBEの情報も発信していこうと思っています。なんか本題にちっともかかれない首締め状況に陥っていますけど、少しでも皆様のお役に立てれば。