Hatena::ブログ(Diary)

EC-CUBEのカスタマイズならクロスキューブ!サイト制作メモ このページをアンテナに追加 RSSフィード Twitter

2015-07-28

xross-cube2015-07-28

ロックオン主催のEC-CUBE3の東京勉強会に参加してきました

毎度ご無沙汰しております。株式会社クロスキューブの佐々木です。

先日、EC-CUBE開発元の株式会社ロックオン東京オフィスでEC-CUBE3の勉強会が開催されたので、弊社デザイナー田原と共に参加してきました。

EC-CUBE3東京勉強会風景


先日リリースされたEC-CUBEの新バージョン、EC-CUBE3は、ぱっと見はあまり変わっていませんが裏は大きく変わっています。

PHPフレームワークとしてSilex採用し、PSRのいくつかに準拠した構造となっています。

DB周りはPEAR::DB2からPDOを使うDoctrineに、テンプレートエンジンSmartyからTwigに変わり、多くのSymfonyコンポーネントを利用し、車輪の再発明を極力少なくしました。

Doctrine採用した事により、アプリケーションが吐くSQLも2系よりも素直なものになり、MySQLでのパフォーマンスもだいぶ改善されています。

弊社、株式会社クロスキューブでも、極々微力ですがEC-CUBE3の開発にご協力させて頂きました。*1

今回の勉強会では、中身が大きく変わったEC-CUBE3の現状について、ロックオン足立さんとEC-CUBE責任者の金さんがお話しをされました。

EC-CUBE3のテンプレートファイルはどこいったの?

EC-CUBE2系では、テンプレートファイル

/data/Smarty/templates

にありましたが、EC-CUBE3では

/ec-cube/src/Eccube/Resource/template

にあります。

テンプレートエンジンSmartyからTwigに変わってるので、注意してください。

文法や細かいところは変わりましたが、大きく変わったのは、

<!--{$hoge}-->

が、

{{ hoge }}

<!--{if $hoge}-->

{% if hoge %}

の様に、囲み文字が変わった点ですw

また、2系では、PC用、スマホ用、ガラケー用にそれぞれテンプレートを作成しないといけませんでしたが、EC-CUBE3ではガラケーのサポートは切られ、スマホレスポンシブで対応となったので、フロントテーマファイルは1つで済みます。


オリジナルテーマを作りたい方は、デフォルトテーマを参考に作成されてみてはいかがでしょうか?

テーマ作ってみた方の記事もあります。

EC-CUBE3 用のプレーンな Bootstrap テンプレートをつくってる過程で分かったことなど - Qiita

EC-CUBE3はもう実戦投入して良いレベル?

さて、僕が一番気になったのがこの点です。過去バージョンの状況を見ると、EC-CUBE3も、バージョン3.1.3くらいで安定して使える様になるかなぁ?と思っていたので、現状を聞いてみました。

すると、既に株式会社ロックオンではEC-CUBE3を実案件に利用中との事で、もう大丈夫そうです。

とは言え初めての事バージョンだし、何かしら困ったりバグにハマったりしてんじゃないかな?と思って聞いてみたら、

Symfonyコンポーネントの使い方やPSRの方への対応が慣れていないので、そっち覚える方が大変だった」

との事でした。

やはり、レガシーPHPコードしか書けない人は置いてかれそうです。

しかし、EC-CUBE3は最初からテストありきで開発されていたので、2系に比べればテストが楽になっており、開発もだいぶ安心してできそうです。

セキュリティ大丈夫なの?

EC-CUBE過去にちょいちょい脆弱性が出ています。

クライアント企業の方もここを一番心配されるので、EC-CUBE3ではセキュリティテストは行ったのか?外部のセキュリティチェックは入れたのか?を聞きました。

チェックツール確認済み

ロックオンさん社内ではアプリセキュリティチェックツールを使ってテストしている様なので、とりあえずは大丈夫そうです。

でも、ツールが検出できない脆弱性もあるので、完全に安心しきってはダメですね。ちゃんと自分確認しましょう。

また、とあるセキュリティ会社の高名な方が開発コミュニティにいるらしく、その方が個人的に色々チェックしたりしてくれてるそうです。

これは心強いですね。

勉強会中に試そうとしてMySQLを使おうとしたらインストールコケ

勉強会中に、MySQLインストールしようとしたらコケました。PDOのMySQLドライバーのsocket周りの設定のアレです。*2

EC-CUBE3でMySQL使ってPDOのSQLSTATE[HY000] [2002]でエラーでインストールできない時 - Qiita

毎回忘れるので、メモっておきました。

具体的には、PDOの初期設定のMySQLのsocketのパスと実際のMySQLのsocketのパスが違っており、IPとかでMySQLサーバアドレスを設定しても、間違ったパスのsocketでDB接続しよとして接続できなくてエラーというヤツです。

後でインストーラとか直しておきます。

あと、現時点で同梱されているeccube_install.shにはMySQLインストールする際のバグがありますので、環境によってはこれ使ってコマンドラインインストールできません。

MySQLrootユーザパスワード必要で、MySQLユーザ名とかを指定しても強制的root接続しようとしてコケます。

その他インストールコケたら下記を参照するか開発コミュニティまで。

EC-CUBE3のインストールでこけたら見る記事 - Qiita

EC-CUBE3の機能カスタマイズ方法は?

基本的にEC-CUBE3では2系の様なカスタマイズではなく、全てをプラグインとして実装する設計です。

ちゃんとプラグインとして実装すれば、バージョンアップの際の手間が大幅に減ります。

プラグイン実装方法は次回にでも詳しく書きますが、とりあえず開発元のロックオン高橋さんが書いたQutiaの記事があります。

EC-CUBE3プラグイン機構 - Qiita

[Done]EC-CUBE3のプラグインを2日でつくる - 1日目 - Qiita

[Done]EC-CUBE3のプラグインを2日でつくる - 2日目 - Qiita

こちらを参考に始めてみるのが良いと思います。

EC-CUBE3の決済モジュールは?

既に、GMO-PGさんで作られたそうです。

もうすぐEC-CUBE3向けオーナーズストアがオープンする(2015年9月予定)ので、その時にはいくつか揃っているのではないでしょうか?*3

弊社、株式会社クロスキューブにもEC-CUBE3対応決済モジュールのお問合せが来ていますね。

何はともあれEC-CUBE3を使ってみよう!

使ってみましょう。

使わないと細かいところはわかりませんし、使われる事によってプロダクトの品質は向上していきます。

早く使えば早く知見を得られる事になり、競合他社に対してリードを持てます。

今はすぐ使えませんが、多言語版作るのが楽とか、API実装するのが楽とか、ポテンシャル結構なものです。

EC-CUBE3では正式リリース版以外に、Weekly Buildというものがあり、毎週最新のコードのパッケージがダウンロードできます。

バグ修正もいち早く入っているので、興味がある方は使ってみてください。

EC-CUBEダウンロード / ECサイト構築・リニューアルは「ECオープンプラットフォームEC-CUBE」

弊社、株式会社クロスキューブでも今後はEC-CUBE3をメインに使っているつもりです。

新しいEC-CUBEネットショップ作ってみたい方は、ぜひお問合せください。

*1:実はアプリ構造concrete5と非常に近くなったんですよ

*2:何か毎度これにひっかかってる...

*3:EC-CUBE3の決済モジュール実装に関するドキュメントロックオンさんが決済代行会社に販売しているらしいんですが、それが結構なお値段するらしく、評判がよろしくない...でも、しょうがないんですよ、EC-CUBE無料で使えるから、そういうとこでしかお金稼げないんですよ...きっとちゃんと元取れるから決済代行会社の皆さん、気持ちよく払ってくださいな...

2014-07-08

ECサイトとお金

ECサイトの売上を上げるために必要な事

f:id:xross-cube:20140708055234j:image:w640

ご無沙汰しております。株式会社クロスキューブの佐々木です。

目の前の業務に追われている間にあっという間に前回の記事から3ヶ月が過ぎてしまいました...orz

頑張ります。


さて、今日ネットショップ運営されているオーナー様が一番知りたい事。

どうしたらECサイトの売上が上がるか?」です。

ECサイトの売上を上げるノウハウはたくさんありますが、今回はその中でも最も大切で最も難しい基本中の基本をご紹介します。


家族経営でずっと売上を上げ続けているネットショップお話

私たちはECサイトを作る事が専門で、ネットショップ運営が専門ではありません。

しかし、クライアントにとって価値があるECサイトとは売上が上がるECサイトであり、わたし達も常にその情報収集し、何が今求められているのかを勉強しています。

そういった中で、実際にネットショップ運営されているオーナー様からの生きた情報はとても有用重要です。


私たちのクライアントにある家族経営ショップさんがあります。

取り扱う商品は特異性のある物ではなく、ごくごく一般的趣味に使う商品です。

商品単価も様々で、数百円の物から数十万円の物まであり、総商品点数は10万点を越えます。

その会社組織構成は、

社長
お爺ちゃん(引退しているので実務には不参加)
専務
お父さん
経理その他庶務
お母さん
店舗店長
息子

という構成です。

初めてお話しを頂いた時は僕が独立してすぐの頃(今から6年程前)で、本当にお世話になったクライアントです。

当初から僕はお客さんに恵まれていましたが、このクライアントは特にお世話になっています。


最初お話しを聞いた際の売上は月商1千万円程でした。

これも驚いたのですが、ネットショップは月商500万円がひとつの区切りとされています。

クレジットカード等の決済代行会社さんも儲けが出るのは月商500万円以上のショップさんと言ってましたし、僕の実感でもそんな感じです。

家族経営でこの月商1千万円はすごい事です。


しかも、当時のネットショップは、お父さんの専務がどこからか調べて買ってきた外国製ホームページビルダーの様なソフトでひとりで作成して運用していました。

データベース管理画面もありません。注文はメールでそのソフトメーカーサーバから届く様になっていました。

正直、サイトのデザインも褒められた物ではなく、テンプレートちょっといじった今は懐かしいフレームを多用した物でした。

独学でそのソフトの使い方やWebの事を勉強し、そこまでサイトを育て上げるのは並大抵の努力ではなかったと思います。

でも、そのサイトで月商1千万円を売り上げていました。

つまり、月商1千万円売り上げるのにサイトシステムとかソフトとかは関係ないという事です。


なので、当時の要件

とにかく管理の手間が凄いので、もっと手間を減らしたい。

でした。

これ、僕一番得意です。


予算やその他もろもろを伺い検討した結果、デザイン等の見た目にはお金を使わずに、POS連携して業務の運用コストを減らしましょうという事になりました。

なのでEC-CUBEオーナーズストアからデザインテンプレートを買ってきて少し変えて作りました

その代わり、POSとの連携に関しては可能な限り人間の手間を減らしてほぼリアルタイムに近い形で自動連携させました。

予算のほとんどはここに使いました。

また、ただのHTMLサイトからデータベース連携したPHPの動的なWebサイトに変わるので、サイトのレスポンス等のパフォーマンスにも注意し、最初から専用サーバを使ってミドルウェアチューニングも行いました。

お客さんには、旧サイトコンテンツ内容の悪い点を伝え、商品説明、商品登録をとにかく頑張ってサイト上の商品数を増やしてください。とお願いしました。


その結果、東日本大震災があろうとリーマンショックがあろうと、着実に売上を伸ばし続け最近では月商2,500万円を超える程に成長しています。

でも、運用体制は変わっていません


さて、この事例からネットショップの売上を上げるためには何が必要だと読み取れるでしょうか?

かっこいいデザインのサイトでも人手でもありません。


ECサイトの売上を上げる為に必要なのは熱意

これです。一番重要なのはこれです。

「これからはネットだ!」という認識の元に、自分で調べて勉強してサイトを作って運営する。

この熱意です。

作るだけじゃないんです。その熱意を持ってサイト運営し続けています。

だから売上が上がっているんです。


自分たちにできる事をできる範囲で可能な限りやる。

これができれば専門的な知識やスキルが無くてもネットショップ成功します。

商売の基本を忠実に守る

  • 初心を忘れない
  • 基本を忠実に守る

どんな仕事でもこれが一番大切です。

僕は定期的にこのお客さんの事を思い出して自分の身を引き締めています。

当たり前の事をきちんとやり続ける。僕にはとても難しい事です。

安く仕入れる

どんな商売でも基本中の基本です。

このショップさんではメーカー問屋との関係性も合わせて上手くお付き合いをされています。

きっと、メーカー担当が困った時など多少高めに仕入れたりもしていると思います。

そういう、持ちつ持たれつ、三方良し精神で商売をされているお客様です。

可能な限り高く売る

これは高い値付けをするということではありません。

実際、このショップさんは他のショップに比べてかなり安い値付けをしており、激安の部類に入ります。

「儲かってますねー」と僕が言っても、「いや、薄利多売だからそんなに儲かってないんだよ...」と仰ってました。

ただ、そういった中で、販売数と利益率、競合の値付けとにらめっこして日に何度も販売価格を変更するなど、かなり価格設定には気をつかってます。

4PひとつでもあるPrice(価格)を非常に重視されているという事です。

ちゃんと納品する

これも当たり前の事です。

注文が来たらちゃんと約束した通りに納品する。

CS最初の一歩、基本中の基本です。

ただ、意外にこれがちゃんとできていないショップが多いんです。

宣伝をする

ネットだけではありません。

と言うか、このショップではネット広告をほぼ出していません。

それよりも専門雑誌への広告イベントへの賞品の提供など、ターゲットをよく分析し、コストパフォーマンスの高い宣伝を行っています。

ネットショップだからネット広告という安直な考えではなく、ちゃんと広告宣伝を考えて実行しています。

IT世界にいるとネット広告が一番費用対効果が高いと思いがちですが、リアル広告はかなり効きます。

これだけネット社会になっても尚、昔からある媒体存在し続ける理由がここにあります。

特に、宣伝効果だけを考えればテレビ最強です。

あと、新聞の折り込み広告費用対効果が意外と高いので僕は好きです。

特に日経


まとめ

こうやって見ると、このショップでは見事にマーケティングの基本の4P(Product.Price.Place.Promotion)が守られています。

そう、ECサイトが売上を上げるために必要な事、それは基本を守る事です。

これはどんなショップにも当てはまります。

そしてとても難しい事です。

この基本を実行した後に、モバイルファーストやらUIシステムがどうとかというIT世界の話になってきます。

じゃないと、一所懸命に良いECサイトを作っても売上が上がらないんです。
作る方としても残念でなりません。

このシステムを入れたら確実に売上が増えるとかそんなのありません。


この記事を読まれたショップオーナーの方には、ぜひこの商売の基本と初心を忘れない様にして頂きたいと思います。

そして利益を上げ、予算潤沢なお仕事をご依頼頂ける事を切に願いますw

2014-03-19

EC-CUBEのデータベース定義書

EC-CUBEのドキュメントはどこに?

昨日の記事、グロースハックってなに?の評判が良かったので、調子に乗って今日も書きます。


EC-CUBEを使ってネットショップを構築する場合、よくドキュメントの話になります。

こういったオープンソースのパッケージの場合、特に日本語ドキュメントが少ないのがよく問題になります。

DB定義書仕様書コーディングガイドラインなど、あると開発がスムーズに進みます。

さて、EC-CUBEのこれらのドキュメントはどこにあるのでしょうか?

公式サイトにも記載がなく、慣れていない方は探すのに苦労すると思うのでご紹介です。

実はソースコードに同梱されています。

EC-CUBEダウンロードして展開すると、docsというディレクトリができます。

実はこの中にドキュメントが入っています。

f:id:xross-cube:20140319110411p:image:w640

EC-CUBEのテーブルに独自のカラムを追加したり、新しいテーブルを追加する場合はこれらのドキュメントに追加して管理しておくと何かと便利です。

ソースコードに同梱されていないドキュメント

実はEC-CUBEには、カスタマイズする上で指標となるドキュメント存在しています。

これらはEC-CUBEの開発Trac( http://svn.ec-cube.net/open_trac/ )上にあります。

カスタマイズされる方はぜひ一度目を通してください。

技術情報

増えましたねー。

昔はこんな便利なドキュメントありませんでした...皆自分たちで一所懸命作っていました。

あと、EC-CUBEは専門の書籍が何冊か出版されています。

これらの書籍も役に立つと思いますが、本によっては内容が古くてあまり使い物にならない事が多いので注意が必要です。

以下に比較最近の本を挙げておきます。これらの本も一部内容が古くて最新版のEC-CUBEではそのまま適用できない点があるので注意してください。

 

余談ですが、最近EC-CUBEではテスト駆動開発ちっくな事もやっており、テストカバレッジを上げる事に尽力しています。

皆さんも、もし「EC-CUBEがあってよかったなー」と思って頂けたらテストを書いたりとか、EC-CUBE本体の開発にご協力をお願いします。

2014-03-18

魔法の杖

グロースハックってなに?

最近香ばしい感じで「グロースハック」という言葉をまわりで良く聞きます。

ハックという単語が入る言葉には「ライフハック」「ハッカソン」など色々ありますが、「グロース」をハックするとは初耳です。
そもそも「グロース」ってなんぞや?

新し物好きなので、調べてみました。

直訳すると「成長ハッキング

訳せてないじゃん!」というツッコミは置いといて、グロースハックの「グロース」とは英語で書くと

Growth

日本語に訳すと、

  • 成長
  • 育成
  • 発展

です。

いや困った、「成長をハック」ってどういう意味なんだろ?

ググると難しい単語が並んだ色々な事例の紹介などの記事がヒットします。

でもどれを読んでもいまいちスッキリしない。

よくわからない事をなんとなくで知ったかぶりしたくないので、専門家の方に聞いてみました。

イノーバの佐藤さーん!グロースハックって何か教えて!!

弊社でコミットしている汎用CMSconcrete5ユーザグループに、concrete5を使ってグロースハック!というお仕事をされている、最近イケイケな株式会社イノーバ佐藤さんという方がいまして、この疑問をスッキリさせてくれるだろうとfacebookで聞いてみました。

そしたら社長宗像さんまで解説してくれて非常に勉強になりました。

以下その時の会話(コメント)を記載します。

佐藤さん、グロースハックってわかりやすく言うと何ですか?

webマーケティングエンジニア担当することになりました

なんだいつものかw

そうなんですよw

想像ですが、アメリカだと職種の専門性が高いし、マーケティング概念実践も行われているので、エンジニアは口を出せなかったのかもしれません。(日本比較して)
なので注目されましたと。
日本フリーランスエンジニアとか、エンジニア社長からしてみれば、いつものやつです。

面白いので宗像さんにも聞いてみたいけど、見えるかな?
宗像さん、あってます?

うーん、合ってるといえば合ってますし、合ってないと言えば合ってない。

グロースハックは、横串の組織担当者)なのがポイントなんだと思います。

製品開発からマーケティングまで全部の領域に口を出す。定量的最適化と、定性的最適化のバランスを取りながら、ユーザー数の最大化を目指す。

エンジニア担当する事が多いのもまた事実ですが、テックに詳しい文系の人が担当するのも可なりです。(ただ、あまり後者が居ないので、エンジニアがやっているのだろうと理解しています)

えええと、わかりやすく言うと
製品の企画、開発段階から音頭取る人がいて、各部署の思惑や都合による妥協とかブレを無くして、目標のために最適な行動だけする様にする。
って事ですか?
で、そのためにはエンジニアリングマーケティングをよくわかってないといけなくて、マーケッターのほとんどがエンジニアリングわかんないから結局エンジニアがやってると

もう少し、視点ユーザーよりな気がします。

ユーザー視点で、そもそも、どういう経路でサービス存在を知って、サービスを使いながら定着して、友達を招待していって、

という一連のプロセス最適化していく事で、お金をかけずにユーザー数を伸ばしていこうっていう感じかと。

なるほど。
今までやってきた一連の流れに名前が付いた感じなんですね。

うーんと例えばですが、ユーザー獲得っていうのは、マーケティングに任せると、リスティングを大量に買ったり、SEOやったりとか、LP改善ぐらいしか出来ないのですが、開発面にも口を出すとすると、ソーシャルでの友人招待、ユーザーのアドレス帳連携、みたいな機能機能的な部分でのユーザー獲得も進められる感じです。

あー、そうです。名前が付いただけです。

ありがとうございます
スッキリしました!

名前がついたのと、全体が絵になって、フレームワーク化された感じでしょうか。

ありがとうございます
勉強になります!

あと、有名な例だと、airBnBが、craiglistっていう外部の掲示版サイト自動投稿する仕組みを作って、ユーザー獲得をしたりもしてまして、こういうtipsというか、ハッキング的なものも含むようです。

いえいえー。

いつもお世話になっておりますので!!

こちらこそです!
今後も何かと佐藤さんをお借りすると思いますが、よろしくお願いします!w

議論がすげー伸びてるw

これテックブログにした方がいいんじゃないか説w

宗像さん、ブログに書いていいですか?w

いいです!

ありがとうございます < イマココ


と言うわけで非常に貴重な事を教えてもらいました。

持つべき物はグロースハッカーの友人ですねw

「聞くは一時の恥、聞かぬは一生の恥」昔の人はいい事を言うもんです。

グロースハックをまとめると

ここまで読んで「なんだ名前が付いただけか」と思われた方もいるかもしれません。

でも名前が付くという事は、方法論が確立され、ぼんやりしていた物がはっきりとわかりやすい形になるという事です。

有名な「PDCAサイクル」も、ウォルター・シューハート提唱する前からあったハズです。こういうものはある日突然沸いてきたりしません。

大切な事はこういった言葉に踊らされずに本質を見極める事です。


最近思うのは、Webのプロフェッショナルな人達に求められるスキルセットの幅がどんどん広がってるなーという事です。

特に今まで「文系マーケッター」「理系=エンジニア」というなんとなくの区分けが無くなってきてると思います。

得手不得手はあると思いますが、目的を達成するために得意な事だけやっていれば良いという時代ではなくなってきたのを感じます。


グロースハックはこのPDCAWebサービスモバイルアプリなどのIT関連のプロダクトに特化したかたちで落とし込み、わかりやすく使いやすくした物だと言えると思います。

せっかくわかりやすくしてくれたんですから存分に学んで使い倒しましょう!

特に、目的目標が明確なECサイトでは応用が効き効果も確認しやすいと思います。

最後に本題ですがw ぜひ私たちと一緒にグロースハックしましょう!

レッツ!グロースハック!

2013-09-25

EC-CUBEの消費税率変更の対応について

EC-CUBE勉強会の録画

東京オリンピックも決まり、身の回りでもチラホラと景気の良い話が聞こえる様になってきました。*1

来年4月に予定されている、消費税率の5%から8%への増税もいよいよ現実味を増してきました。
もうほぼ確定でしょう。


先日、EC-CUBEも新バージョン、2.13.0がリリースされ、この税率変更に正式に対応しました。

今までも管理画面から消費税率は設定できたのですが、これではオープン後の税率変更に問題が出てしまいます。

その辺の事を、毎月下北沢オープンソースカフェで行っているEC-CUBE東京ユーザグループ勉強会でやってきたので、今日はこの消費税率変更について書きます。


バージョンだと、どのような不具合があるのか?

先日リリースされたEC-CUBEの新バージョン、2.13.0では税率変更対応がなされています。*2

ただ、受注メールテンプレート等に細かいバグがあり、その辺を修正した2.13.1が10月ごろにリリースされる見込みです。

では、2.13.0より前のバージョンでは税率変更をした場合にどの様な不具合が起きるのでしょう?


マイページでの過去の注文の金額表示がおかしくなる

f:id:xross-cube:20130925075048p:image

この画像マイページの注文履歴の詳細画面です。

5%の時に注文した情報ですが、管理画面から税率を8%に変更すると、商品単価と商品小計が新しい税率で計算されてしまっています。
合計金額は正しい金額で表示されています。


管理画面で受注情報編集すると、新しい税率で再計算されてしまう

f:id:xross-cube:20130925080020p:image

管理画面で税率変更前の受注情報詳細を見ると、マイページと同様に新しい税率で商品単価が計算されてしまっています。

このまま何も変えずに登録すると、新しい税率で再計算され、合計金額まで変わってしまいます。

f:id:xross-cube:20130925080041p:image


カード決済等の決済金額が変わる

これは2.13でも起こりうる事なのですが、決済モジュールによっては、翌日に決済の確定通知を送ってくる物があります。

売上をどのタイミングで計上するか?という会計上のルール関係してくるのですが、決済が確定した場合や発送時に売上を立てる場合、消費税率が5%で注文を受け8%の時に決済確定や発送をすると、3%分金額がおかしくなってしまいます。

決済モジュールの付加機能死ぬ

これは2.13で発生する不具合ですが、現在各決済代行会社さんから提供されている決済モジュールには、定期購入やワンクリック購入など、決済以外の追加機能付属している場合があります。

2.13.0以降では、消費税の計算方法が変わったため、この付属機能が軒並み使えなくなる様です。

これはもう決済代行会社さんに早急にモジュールを修正してもらうしかありません。


対応策は?

さて、色々問題があり頭が痛い問題ですが、どう対応すれば良いのでしょうか?

大きく分けて3つです。


2.13系にアップグレードする

まずコレが思いつきます。
最も確実で間違いのない方法です。

ただ、EC-CUBEを利用しているサイトは、機能的なカスタマイズをしていることが多いです。

また、バージョン毎にテンプレートの作りも細かく違ったりするので、結局ほとんど作り直すのと同様の費用と時間がかかるケースがあります。

サイトを構築してからある程度期間が経っているサイトであれば、これを機にリニューアルされても良いかもしれません。


2.13.0と同様の消費税率変更機能を独自に追加実装する

バージョンアップは大変だから...」と、今のサイトに2.13系と同様の消費税率変更機能を実装するというものです。

ただ、今回の問題になっている消費税計算関数は、EC-CUBE内のいたる所で使われているので、改修範囲が多岐にわたりこれもそれなりの費用がかかります。


税率を0%に設定してしまう

最もお手軽だと思われる方法がこれです。

改修作業はせずに、EC-CUBE内の消費税率を0%に設定し、商品単価を税抜きの金額から税込みの金額に変更します。

これならコードの変更は無いですし、商品単価の変更はSQL文一発で変更できるので時間もかかりません。

ただ、過去の受注データの金額も税込み金額に書き換える必要があるので、受注履歴が大量にあるサイトではその作業が大変そうです。


とにかく準備は早めに!!

消費税率変更時の切り替え時期は6ヶ月の猶予期間があり、また売上をどのタイミングで計上するか?などの会社ごとの会計ルールによって変わる部分も多くあります。

その為、会社の経理や税理士さんと相談し、社内でどういうルールで運営するか?を決め、それに沿って対応する必要があります。


改修やリニューアルであればそれなりの時間と費用必要になります。

変更までもう半年しかありませんし、年末年始も挟みます。

3月決算とかであれば、ちょうど期の切り替わりの時期なので、税率変更の時期はただでさえ忙しい時期です。

どういう方法対応するにせよ、早い段階からの準備が必要になってきます。


弊社クロスキューブでも集中的にご対応しようと思っていますので、ご興味のある方はぜひお問い合わせください。

*1:僕には来ませんが...

*2:それ以外にもMySQLでのセッション不具合や「決済処理中」の時のポイント在庫不具合など、いくつか不具合の修正がされているので、http://svn.ec-cube.net/open_trac/query?group=status&milestone=EC-CUBE2.13.0 をぜひご確認ください。

2013-06-02

ECサイトのセキュリティの原則 - 最近の情報漏洩に対して

f:id:xross-cube:20130602203828j:image:w360

どうもお久しぶりです。

今日は、最近多発しているECサイト情報漏洩についてです。

最近、いくつかのWebサイトでおきた情報漏洩ニュースを良く聞きます。

特に、ECサイトでの通常考えられない様な漏洩もあったりするので、発注者側、開発者側の人に対して強く言いたい事があります。


漏れたら危険情報は持たない

こう言ってしまうと余計な危機感をあおりそうで嫌ですが、基本的に全てのWebサーバ侵入可能です。

どれくらい難しいかという話で、時間や労力を考えなければインターネットに繋がっている全てのサーバは侵入可能なのです。

Webサイトセキュリティは、それを踏まえた上で、「侵入されても最悪の事態を防ぐ」「侵入させにくくする」という視点で対策を施す必要があります。

なんだか原発と似てますね。

事故が起きない事を前提に考えてはいけない」という事です。


その為には、基本的なログインIDパスワード管理接続IPの制限、ミドルウェア保守等も当然ですが、なによりかにより最強なのが「情報を持たない」という事です。

持っていない情報漏洩のしようがありません。コレが最強です。


では、ECサイト漏れたら致命的な情報とは何でしょうか?

実害が発生しうる可能性が最も高く、危険MAXなのが決済情報、それもクレジットカード情報です。

最近起きた情報漏洩の最悪なケースがコレです。

グローバルデータの情報流出に、深刻な三つの問題点

クレジットカード決済で必要情報は、カード番号と有効期限、カード名義人情報です。

それだけだとあまりにも危険なので、インターネットで決済する場合に追加で付与された情報セキュリティコードという、クレジットカード裏面に記載されている3桁の番号です。

この漏洩を起こしたグローバルデータサイト場合、なんとこの情報をセットでサーバ内に保持していたのす。

僕らECサイト制作する事を生業としている人間からは信じられない仕様です

原発に例えると、「燃料棒監視も施錠も無い庭の物置に積んどいた」くらいの危険度です。


通常、ECサイトクレジットカード決済を行う場合カード番号や有効期限などの決済に必要情報を、Webサイト上で入力してもらいますが、その情報ECサイト側では保持しません。

ECサイトでは受け取ったカード番号等を、保存せずにそのまま決済代行会社サーバ安全な通信で送信し、結果を受け取ります。

保存したとしても一時的にサーバメモリ上にその分だけ保存され、1/100秒くらいで消えてしまいます。

また、カード情報入力しないでも、1度カード決済をすれば2回目以降はカード番号の入力を省略できる機能があります。

これは、ECサイト内の顧客IDカードの決済情報決済代行会社側が結びつけておいて、顧客ID店舗契約情報を結びつけて決済ができるという仕組みです。

この場合店舗の決済ID暗号鍵、顧客IDが無いと決済できず、そのECサイトサーバからしか決済を受付ない様になっています。

つまり、カード情報なんかWebサーバで持っていなくても、正規の手順を踏めば正常な決済は可能なのです。


これは予想ですが、グローバルデータではレンタルした端末を返却した後に決済をするので、それまでカード情報を持っていないといけないと思ったのでしょう。

あまりにも決済についての知識が無さ過ぎる仕様です

考えられる理由としては、

のいずれかだと思います。

ECに詳しくない制作会社の方へお願いです。

決済については決済代行会社の方が聞いて無い事まで詳しく教えてくれます。ちゃんとサービス内容や仕様勉強してください。

ECサイト発注者の方へお願いです。

利便性を優先するあまりに、危険仕様を強制しないでください。概ね利便性セキュリティの強さは反比例します。

それにより事故が起きた場合の被害額を考えれば、おのずと正しい判断ができるはずです。


できれば、個人情報についても決済代行会社さんで持って頂きたい位ですね。

EC-CUBE脆弱性について

さて、お話し変わってEC-CUBEです。

先日、2.11系に危険度の高い脆弱性発見されました。

http://www.ec-cube.net/info/weakness/

まだパッチを当てていないサイトはすぐにでもバックドア等の確認をして、パッチを当ててください。バージョンアップ必要はありませんが、パッチを充てるだけでは不十分です!改ざんされていないか確認してください。*1

制作会社にお願いしても大した金額は取られません。

今回の脆弱性についての詳細は、EC-CUBE東京ユーザーグループで、EC-CUBEエバンジェリストでもある川口先生が詳しく解説もしてくれています。

これを機会に、東京近郊の方はぜひユーザグループへの参加もお願いします。「参加」ボタンクリックするだけです。


今回の脆弱性についてですが、SQLインジェクションXSSWebアプリ脆弱性のお手本の様な脆弱性オンパレードです。

でも、EC-CUBEクレジットカード決済モジュールは、サーバ内にカード情報を保持する様には作られていません。

なので、顧客カード情報漏洩する事はありません。

ある条件が揃った際に情報漏洩する危険性があるというもので、EC-CUBEでは会員のログインパスワード暗号鍵を混ぜた状態で暗号化されており、ショップ管理者でさえもパスワードを知る事はできません。*2

EC-CUBEオープンソースであり、株式会社ロックオン主導で開発が進められていますが、多くをボランティア開発者に支えられています。

その為、時にこういったバグが出てしまう事が稀にあります。

でも、川口先生をはじめ、主要メンバーはECサイト構築のプロなので、漏れても最悪の事態を招かない様に作られています。

また、公式のインテグレートパートナーコミッターには、一般公開前にこういった脆弱性情報が通知され、公開前にパッチを当てる事ができる様になっています。


コミッターのひとりとして、EC-CUBEのこういった「事故が起きる前提で考える」体制も評価のひとつに加えて頂きたいと思います。

*1:コメントにてご指摘頂いたので追記しました。

*2:まあ、破り方はありますが...

2013-02-15

海外向けショッピングサイトも制作可能! EC-CUBEに多言語対応版が登場!!

f:id:xross-cube:20130215031651p:image:w640

EC-CUBE英語サイト


ついにリリースされました!EC-CUBEの多言語対応版です。

過去中国語版がこそっとリリースされて無かった事にされたりと、EC-CUBE日本語以外の言語を扱う事は色々ありましたが、今回ついに正式にリリースされました!

今回僕は開発にはあまり関わっていませんが、concrete5ローカライズでの経験をふまえ、多言語化する際に翻訳のしかたなど色々口を出させて頂きました。


今回のEC-CUBEの多言語版ですが、残念ながらひとつサイト日本語英語など複数の言語を使えるものではありません。

英語ECサイトスペイン語ECサイトなど、ひとつサイトひとつ言語を使える様になるという物です。

それでも、使い慣れたEC-CUBE海外向けにECサイトを作る事ができるというのは、ショップオーナーさんにとっては嬉しいことなのではないでしょうか?

ついでに英語版のフォーラムもスタート!

f:id:xross-cube:20130215033233p:image:w640

言語版のEC-CUBEリリースされた事により、英語のサポートフォーラムオープンしました。

まだまだ書き込みは少ないですが今後どんどん書き込みが増えていくことでしょう。

僕も英語勉強がてらなるべく書き込む様にしたいと思っています。

余談ですが、このフォーラムには日本語版のフォーラムと同じ様にバッチ制度があるのですが、その名前ちょっと違和感を覚えますw

f:id:xross-cube:20130215033422p:image:w240

一番下のランクは「芸者」じゃないと思うんですよねw

あと一番上は「NINJYA」でしょ!富士山じゃない!!

今は英語版のみ

言語版といっても、現在英語言語ファイルのみリリースされています。

今後、他の言語ファイル順次追加されていくとの事で、予想ですがスペイン語とか早めに出るんじゃないかなー?と思ってます。

もちろん、オープンソースなので自分言語ファイルを作る事もできます。

言語ファイルの作り方

言語ファイルは、

/data/locales/

に格納されています。

ここのja.poというファイルpoeditというソフト編集し、言語ファイルを作ります。

EC-CUBE言語ファイルconcrete5等の言語ファイルと違って、メッセージID(msgid)に普通の英文ではなく、どんな文章、単語なのかをあ表す英語ベースIDを使っています。

これは、日本語では同じ表記でも英語など他の言語にした場合に表記が変わるものがあるためです。*1

一通り翻訳が終わったら言語ファイルを同じディレクトリに別名で保存すればOKです。

拡張子が.poファイルとは別に、拡張子が.moファイルができると思います。この.moファイルプログラム内で使われます。

プラグイン作者は大変

さて、こうなってくるとプラグインが大変です。

日本語だけでなく、英語や他の言語にも対応させた方が利用者は増えるのですが、言語ファイル作るのが面倒です。

また、日本語版と多言語版両方に対応させるとなると、また一苦労です。

将来的には多言語版1本にまとめて欲しいですね。

ロックオンさんに強く言っていきたいと思います。


海外向けECサイトをやってみよう!

せっかく多言語版が出たので海外向けECサイトをやってみましょう。

最初英語サイトだけで充分です。世界の多くの国で英語第二言語として利用されており、想像以上に自社の顧客絶対数を増やしてくれます。


ただ、何点か気をつけないといけない点があります。

税金

関税消費税など、国や販売主体をどこに置くかによって税金計算が変わってきます。

だいたい、関税計算する事が難しいので、「だいたいこれくらいだよ〜」という案内にだけとどめておき、あとはその国の税関でかかったのを大人しく払ってもらう感じです。

消費税も国によっては商品によって税率が変わったり、別途別の税金がかかったりと複雑になりがちなので、事前によく調査しましょう。

配送

日本配送業者は素晴らしいんです。

よく、「佐川は扱いが荒い」とか話を聞きますが、海外だと「届かない」「遅れれる」なんて結構ざらです。

お客さんの手元に届く前に商品が紛失してしまった場合や、配送中に破損があった場合など、「届ける」事に関しては国内常識が通用しません。

売れないもの

販売先の国や販売する商品によっては届け出が必要だったり、そもそも販売できないもの等があります。

これも事前にしっかり調査しておきましょう。


日本の商品って結構売れます。

さいごに、日本の商品って意外と海外に売れます。

商売柄、海外向けに日本の商品を販売されているオーナーさんとお話しする機会が何回かありましたが、皆さん口を揃えて言うのが

日本製はすごい!

という事です。

よく、「Made in Japanはもう終わった」みたいな話を聞きますが、水にはじまり生活雑貨(特に生理用品)などは日本のものダントツな様です。

「ウチの商品は外人には売れないよ〜」と思ってらっしゃる方、一度しらべてみてください。

本当に日本の商品って海外で人気なんです。

今後、日本少子化や色々な要因で国内需要は減少していきます。

需要の減っていく国内で、少ない利益率で奮闘していくよりも、広く世界に対して売っていく必要があるのではないでしょうか?

*1:複数系など

2013-01-15

古巣のエスキュービズムという会社で学んだ事

あけましておめでとうございます

クロスキューブの佐々木です。本年もよろしくお願いします。


今日は、古巣の噂話が耳に入ったので、株式会社エスキュービズムという会社について書こうかと思います。

確か今から5年くらい前の27才の頃、僕はこのエスキュービズムという会社で働いていました。

それまで働いていた会社では自社の社内システムの開発と保守が主な仕事だったのですが、自分たちのためではなく、お客様のためにシステムを作りたくてこの会社に入りました。

当時、エスキュービズムEC-CUBEゴールドパートナーで、ベンチャーキャピタルから出資を受けビジネスマッチンングの自社サービスの開発に集中しているときでした。

そんな時に

ECやりたい」と面接を受け、

じゃあ、やって」と採用されました。

この会社は、社長東大 > リクルート > 起業で、CTO早稲田理工学部の院とかを出てる、インテリ起業でした。

今思うと「よく僕なんかを採用したなー」と思います(笑。

正直、ツライ事もたくさんありましたが、今日はこの会社で学んだ素晴らしいことについて書こうと思います。

続きを読む

2012-10-16

なぜWordPressではなくconcrete5なのか その2

前回、長くなってしまったの分けた記事の第2弾です。前回の記事はこちらからどうぞ。
なぜWordPressではなくconcrete5なのか その1

concrete5素人向けのCMS

concrete5素人向けCMSです。

こう言うと変な誤解を受けそうですが、concrete5MicrosoftWord普通に使えるレベルの人をターゲット設計されています。
つまり、Web素人です。

これはどういう事かと言うと、実際にコンテンツを作るべき人はWeb素人である事が殆どだという事です。

Webサイトは公開したら終わりではありません。
SEO的にも常に更新し続け、情報を発信し続ける事が必要です。

しかも最近は求められるそのスピードドンドン速くなっています。
昔の様に、制作会社に更新を依頼して、上がってきた物を確認して...ではチャンスを逃し、間に合わない事が多いのです。

管理画面を見て「ウッ!」とならない

EC-CUBEconcrete5に共通する所に「直感的に扱える」という点があります。

僕はEC-CUBE出会う前はosCommerceやZenCart等を利用していました。
EC-CUBE出会った時に感激したのが管理画面の出来の良さです。

正直、osCommerceやZenCartの管理画面は字やメニューが多く開いた瞬間に「ウッ!」となっていたのですが、EC-CUBE管理画面はごくごく自然に馴染めました。

これと同じ様にXoopsJoomla!等の汎用CMS管理画面には正直「ウッ!」となっていました。
concrete5にはそれを感じなかったのが興味を持つキッカケでした。


これはどういう事かと言うと、「迷わない」という事です。
僕は一般の人よりも多くのWebサイトを見て、CMSやツールをいじっています。そんな僕ですら「ウッ!」となる管理画面なら、一般の人にとっては、ただただ恐怖でしょう。

UX勉強をするとわかるのですが、ユーザにとってWebサイトを閲覧するという行為想像以上にストレスを与えています。
ボタン一つクリックするのも、画面をスクロールさせるのも嫌がり、如実に直帰率やCVRに結びつきます。

極端に言うと、ユーザは求めている情報を探す事が大嫌いです。
そこにある事を求めています。

これは管理画面でも一緒です。
使いにくい管理画面はユーザモチベーション効率を下げ、コンテンツの作成の足を引っ張り、結果としてサイト価値を下げてしまいます。

その点、concrete5管理画面を見ずとも、作っているページを直接見ながら編集出来るので非常に直感的にコンテンツを作る事ができます。

f:id:xross-cube:20121016040052j:image:w640

f:id:xross-cube:20121016040051j:image:w640

concrete5運用フローを作るCMS

concrete5はそのドラック&ドロップによる直感的なページレイアウトの作成機能ばかり目立ってしまいますが、一番重要機能は細かな権限設定機能にあります。

これがどういう事かと言うと、ユーザ、グループ毎に使えるメニューを制限し、運用フローを限定出来ると言う事です。

例えば、ニュースページだけ更新する業務の広報担当者がいたとします。
その人にとって製品情報ページは関係ありません。日々の業務で必要なのは正確な情報を「新着情報一覧」というページの下層に速やかに作っていく事だけです。

concrete5では広報担当者に「新着情報一覧」ページの下層にのみページを追加できる権限を設定する事ができます。
また、余計なヘッダーやサイドバーを設定する必要もありません。そういった要素はサイト管理者が事前に管理画面からテンプレートとして設定しておく事ができます。

また、コンポーザーという機能があり、Wordpressの様なフォームに上から順番に入力していけばサイト設計者の意図通のページができあがる機能もあります。(このフォームも管理画面から自由に設定できます。)

  1. 広報担当者concrete5ログインしたら、メニューバーからコンポーザーの「書き込み」というメニューを選択し、用意されたフォームに上から順番に入力していきます。
    f:id:xross-cube:20121016040802j:image:w640
  2. リリースに添付するPDFファイルを同じ画面でアップロードし、画像があれば画像アップロードし、同じ画面内で見出し画像用にクロップします。
    入力画面拡大
  3. その後、作成したページを保存し、上長に報告します。
  4. 上長承認前のページを閲覧し、内容に問題が無ければ「承認ボタンクリックしてページを公開します。
    f:id:xross-cube:20121016041641p:image:w640

この様に、concrete5ではそのユーザの業務に必要なメニュー、権限だけを付与し不要な物を表示してユーザを迷わせる事をしない様にWebサイトを構築することが出来ます。
ページを作れる作れないだけでなく、承認作業や、挿入出来るコンテンツの種類まで設定する事ができます。

concrete5サイトを構築する際は、実運用時の効率を考えた「業務に合わせた運用フローUIのデザイン」が最も重要な要素になってきます。

つまりCMSで「ユーザを迷わせない」事ができるわけです。
それも自由に細かく設定できます。

しかもHTML構造を崩される心配もありません。


次回は「カスタマイズ前提」の構造です。

2012-10-15

なぜWordPressではなくconcrete5なのか その1

どうも、お久しぶりです。

お仕事に追われている間に、あれよあれよと時間が過ぎ、あっと言う間に前回の更新から4ヶ月近く経ってしまいました。

実は先日、僕が参加しているconcrete5というCMS日本語コミュニティの主要メンバーで、コンクリート ファイブ ジャパン株式会社という新会社設立しました。*1

f:id:xross-cube:20121015154958p:image:w640

僕も一応CTOという肩書きを頂きました。
そのせいか最近ではEC-CUBEお仕事よりもconcrete5お仕事の方がずっと増えてきています。

今日は、なぜ今最も熱く、ノリにノっているWordPressではなくconcrete5という少しマイナーCMSなのか?という事を書きたいと思います。

(書いてたら随分と長くなってしまったので、何回かに分ける事にしました。)

concrete5ブログ

EC-CUBEのカスタマイズを主な事業としてきたクロスキューブですが、ECサイト以外のWebサイトも数多く制作してきました。ただ、クロスキューブでは単純なHTMLサイトを作った事は無く、私達に求められるのは何かしら機能的なWebサイトばかりで、WordPressJoomla!を使ったりもしてきましたが、どうもしっくりきませんでした。
そんな時に出会ったのがconcrete5という非常に直感的な汎用CMSでした。

WordPressは非常に優秀な素晴らしいプロダクトです。
長年、多くの有志によって開発が続けられ、熟成した非常に考えられた素晴らしいプロダクトになっています。

ただ、僕がWordPressを使った時に思ったのは
これはCMSじゃないな、ブログツールだ

という感想です。

CMSとは「コンテンツ マネジメント システム」略です。解りやすく言うと「コンテンツ管理システム」です。
ここで言うコンテンツには様々な種類がありますが、WordPressはその歴史から「記事」というものをベースに構成されているので、記事以外のコンテンツの扱いは少々苦手です。

ただ、WordPressの素晴らしい点にプラグイン豊富さがあります。
こういったプラグインを活用し、ページカスタムフィールドを活用する事によって汎用CMS的な使い方ができ、多種多様Webサイトを構築する事ができます。

しかし、それはconcrete5ブログを作る様な物です。
もっと解りやすく言うとフライパンケーキを焼く様な物です。

はたしてそれは最適解なのでしょうか?

これは何もWordPressに限った事ではありません。
EC-CUBEでもありますし、もっ身近なところでは何でもエクセルで作ってしまう「エクセル職人」という人々がいます。
多分、皆さんの会社にも1人2人はいると思うのですが、どんな物でもエクセルで作ってしまう人々です。

こういった場合、多くのケースで「一番慣れてるから」という理由でツールを決めてしまいます。
自分だけが使う物であればそれで問題ありません。きっと最も効率が良いと思います。


ただ、僕らの様なお客様の為にWebサイトを作る人間はそうはいきません。
僕らが求めないといけないのは、「クライアント提供する価値の最大化」です。

「一番得意だから」「慣れているから」「いつも使っているから」「他所もそうだから」という理由で採用するツールを決めてしまうのは、ある意味思考停止と言えます。
クライアントにとって何が最適なのか?という思考をすっ飛ばして、「○○で作るためにはどうすれば良いか?」という考えに移ってしまっています。

など、何となく考えている理由にもちゃんとした理由はあります。
ただ、制作会社もっと考える必要があると思っています。

等々です。


だから僕らはconcrete5ブログは作りません。
ブログを作る時はWordPressを使い、国内向けのECサイトを作る時はEC-CUBEを使います。*2


次回はconcrete5は素人向けのCMSです。

*1:実は役員の2人はWordPressも大好きでWordCampとかのWordPressのイベント常連ですw

*22012年10月現在は