EC-CUBE2.11系のカスタマイズ方法は見当たらなくて苦労したのでメモしておきます。
EC-CUBE(イーシーキューブ)は、オープンソースのEC向けコンテンツマネージメントシステムである。(引用元)
ようは、ネットショッピング構築の為のシステムです。
EC=CUBE は初期状態では商品検索で全角英数字で検索しても商品がヒットしません。例えば、「AB-1001」という商品に対して「AB-1001」と検索しても検索結果に出ないという事です。
最も単純な方法として思いつくのが商品マスタの検索キーワード欄にに全角の「AB-1001」を入れ込めばいいじゃないかと思いましたが、実はこれはダメ。商品更新の際に半角に変更されてしまうのです。たとえこれが成功していても、全商品対応するにはとんでもない作業量になるので現実的ではありません。
ネット上でも2.11系の情報はないようなので、EC-CUBE の php コードと格闘する事にしました。
たった1行で済むカスタマイズ
理屈を考えてみると意外に単純な事で解決出来ました。
EC-CUBE のシステムファイルの中で検索を司るものはどれかと探してみると「LC_Page_Products_List.php」でした。「data/class/pages/products」にあります。
たとえユーザーが全角英数字で検索しても、システム上では半角英数字で検索する事にしたらいいと考えました。つまり、検索処理に入るまでに半角英数字に変換してやればいいわけです。
だいたい400行目あたりに「lfGetSearchCondition」関数があります。427行目くらいにユーザーが入力した検索ワードの処理が見受けられます。このあたりに入れ込めばよさそうです。
427行目くらいの「$name = $arrSearchData['name'];」の次に1行入れ込みます。
$name = mb_convert_kana($name, 'a', 'UTF-8');
$name には検索キーワードが入っていて、全角英数字であれば半角に変更するのが「mb_convert_kana」です。a というのは全角英数字を半角英数字に変更するコマンドです。
注意事項
※カスタマイズは自己責任のもとおこなってください。
※カスタマイズする前に元ファイルは必ず残しておきましょう。
[amazonjs asin="4798125652" locale="JP" title="EC-CUBE公式完全ガイドver 2.12/2.11対応 ECサイト構築・カスタマイズ・運用のすべて"]