EC-CUBEのカスタマイズ、ネットショップ制作メモ

主にEC-CUBEを利用したネットショップの制作、カスタマイズや独自機能の開発について

スマホに対応していない古いEC-CUBEをレスポンシブにする方法

EC-CUBE 2.4系のレスポンシブ対応

今日は、スマホに対応していないバージョン2.4系のEC-CUBEスマホ対応させるやり方をご紹介。

EC-CUBEの古いバージョンはスマホ対応していない

そのカスタマイズのしやすさと、モール等ではなく独自ECサイト構築が盛り上がった時期と重なり、旧バージョンである2系のEC-CUBEは今日でも数多く利用されています。

その多くが各ショップごとに商材や運用に合わせて独自カスタマイズがされており、なかなか他に切り替えられないバージョンアップが難しいといった状況になっているショップも数多くあります。

そういったサイトで、レスポンシブ対応していないバージョンを今でもメンテしつつ使用しており、もういい加減スマホ対応しないとマズイ状況になっています。

でも、
もうすぐフルリニューアルする予定だし...*1

ウチのサイトではスマホで買うお客さんはまだ少ないから平気*2

とか、なんやかんや後延ばしになっているショップさんも多い様です。

実はCSSだけでシステムに手を入れずにレスポンシブ対応できる

あまり知られていない事ですが、実は2.4系など古いバージョンのEC-CUBEは、テンプレートファイルやPHPファイルに手を加えずに、ほぼCSSだけスマホ対応できるのです。

もちろん、そんな古いバージョンをこの先もずっと使い続ける事はセキュリティ的にも良くないですし、近々でリニューアルが必要だと思いますが。

でも、それまでの「一時しのぎ」的な対応として、この簡易スマホ対応はとってもオススメのカスタマイズです。

おおまかなレイアウトの変更

元のPCの表示のこれを

EC-CUBE Ver. 2.4 ショップフロント

こんな感じに組み替えます。

レスポンシブ化イメージ

スマホ用のCSSファイルを追加する

まず、スマホCSSファイルを作り、head内で読み込みます。また、head要素内にviewportの指定を追加します。
CSSファイルはどこに置いても良いのですが、/html/user_data/packages配下に置いておく事をオススメします。

gist.github.com

こんな感じです。

linkタグのmedia属性は、別にallでも良いのですが横幅指定しておくとPCの時はダウンロードされないのでPCで表示した時にサイトが遅くなったりするのを防げます。

スマホCSSファイルである、sp.cssではメディアクエリを使ってスマホ用の設定を書いていき、元のPC用のスタイルを上書きしていきます。

基本的なbodyの設定

横幅を画面幅に指定し、横スクロールが出ない様にはみ出した部分を非表示にします。

 

gist.github.com

 

サイドバーなどの各カラムやヘッダーフッターの設定

「width: 980px」などの様に固定値で設定されている横幅を上書きで100%にします。

gist.github.com

ドロワーメニューの設定

左サイドバーをドロワーメニューにした際のアニメーションを設定します。
開閉に関してはjQueryなど使ってjavascriptで制御します。

gist.github.com

javascriptではハンバーガーメニューをクリックされた時にサイドバーに「open」というクラスを追加したり削除したりするだけにします。

gist.github.com

あと、

*{ max-width: 100%; }

を入れると、あんまり良くないのですが楽できます。

 

スマホCSSと少しのjavascriptでレガシーなEC-CUBEもレスポンシブ!

他にも各画面で画像サイズの調整など、細かい調整が必要になりますが、以上がざっくりとした対応方法になります。

上記の様に、Smartyのテンプレートの変更は極小(viewportの設定とCSSの読み込み追加のみ)でCSSと少しのjavascriptだけでレガシーなEC-CUBEスマホ対応できます。

しかし、これはあくまでも一時凌ぎの時間稼ぎなだけなので、この作業が必要なECサイト早急にリニューアルしましょう!


最新のEC-CUBE4でのリニューアルはこちら

*1:リニューアルまでの機会損失はバカにならないと思います

*2:単純にスマホでアクセスされない、アクセスされても使いにくいからコンバージョンしないだけです