EC Cubeを最近触る機会の多いunificです、こんにちは。
EC Cube2.13でECサイトを構築。EC Cubeは最初からスマートフォン用サイト(テンプレート)が用意されているので簡単!
と思いきや、スマホ判定をユーザーエージェントで判断しているため(当たり前だけど)ここ3年くらいに追加された新しいスマホのユーザーエージェントが入っていない。
自分はBlackBerry Passportを利用しているため、BlackBerry OS7とBlackBerry OS10とではユーザーエージェントで全然異なり、BlackBerry OS10でもスマートフォン版を表示される様に判定するユーザーエージェントを追加しました。
UA判定をしているのは
data/module/Net/UserAgent/Mobile.php
の400行目辺りにある以下の箇所。
function isSmartphone($userAgent = null) { if (is_null($userAgent)) { $userAgent = @$_SERVER['HTTP_USER_AGENT']; } $useragents = array( 'iPhone', // Apple iPhone 'iPod', // Apple iPod touch 'Android', // 1.5+ Android 'dream', // Pre 1.5 Android 'CUPCAKE', // 1.5+ Android 'blackberry9500', // Storm 'blackberry9530', // Storm 'blackberry9520', // Storm v2 'blackberry9550', // Storm v2 'blackberry9800', // Torch 'webOS', // Palm Pre Experimental 'incognito', // Other iPhone browser 'webmate' // Other iPhone browser ); $pattern = implode("|", $useragents); return preg_match('/'.$pattern.'/', $userAgent); }
見事にBlackBerry OS7以前のUAしか入っていません。っていうかTouchとかStormがあってBoldがないのは何故なんだ・・・
ここに
- BlackBerry
- BB10
を追記して無事でもスマートフォン版が表示される様になりました!
ついでにWindowsPhoneにもスマートフォン版を表示させたい場合は、
- Windows Phone OS
と追記。
最近BlackBerry PassportとBlackBerry Classicも日本で販売されたし、WindowsPhoneもマウスコンピュータから販売されているので、iOSやAndroid以外にもスマートフォン版を表示させるのはメリットだと思います。
むしろPC版そのまま表示するよりは全然良いと思います。
数秒でできる作業なので、EC CubeでECサイトを運用している方は是非!