タグ別アーカイブ: 商品番号

EC CUBE 2.13.3カスタマイズ 商品検索で商品番号 product_codeを検索対象にする方法

こんにちは。nekonomoridesignのyoshyです。相変わらず、EC CUBEと闘っています。

慣れない言語と新しいバージョンで全然情報無くて、毎日試行錯誤しております。

カスタマイズも終盤に差し掛かり、枠組みらしきデザインも出来てきたのですが、(と言っても、既存のデフォルトテーマに毛が生えたくらいの些細なカスタマイズですが)デフォルトにあった商品検索が、なんかカテゴリーをプルダウンで選んだりするのが嫌だったので、プルダウン検索になっている部分を削除して、商品検索だけにしました。

その状態で、デバッグしようと思って、検索が動くかやってみたのですが……

EC CUBEエラー 再び。(もう何度目?)
EC CUBEの商品検索はデフォルトでは商品名でしか検索出来ない

……。

一般的な方々がどういう検索をするのかわからないですが、少なくとも自分は、型番商品なら、商品番号で検索すると思うのです。

特に、今回私が携わっている商材は、型番商品で、競合他社も比較的少ない商材なので、価格で見比べてもらうためにも商品番号検索は必至でした。

ですので、またまたカスタマイズしました……。

今回は検索結果にまつわるところなので、下手したらいっぱい弄らないとダメかと思ってたのですが、案外、1箇所1ファイルだけで大丈夫でした……w

———————————————————————————–
カスタマイズ箇所
/data/class/pages/products/LC_Page_Products_list.php
———————————————————————————–

【変更前】394行目~400行目
foreach ($names as $val) {
if (strlen($val) > 0) {
$searchCondition[‘where’] .= ‘ AND ( alldtl.name ILIKE ? OR alldtl.comment3 ILIKE ?) ‘;
$searchCondition[‘arrval’][] = “%$val%”;
$searchCondition[‘arrval’][] = “%$val%”;
}
}

———————————————————————————–
———————————————————————————–
【変更後】394行目~401行目
foreach ($names as $val) {
if (strlen($val) > 0) {
$searchCondition[‘where’] .= ‘ AND ( alldtl.name ILIKE ? OR alldtl.comment3 ILIKE ? OR product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? AND del_flg = 0) ) ‘;
$searchCondition[‘arrval’][] = “%$val%”;
$searchCondition[‘arrval’][] = “%$val%”;
$searchCondition[‘arrval’][] = “%$val%”;
}
}
——————————————————————————

こうするだけで、商品番号で検索できるようになりました!

いやー……意外。

あ。ちなみに、このカスタマイズであれば、デフォルトのプルダウンの検索残ってても大丈夫なので、デフォルトテーマの方でも、カスタマイズした方でも使えます。

もし。お困りの方が居たら、参考にしてみてくださいね。

それでは、今日はこのあたりで。

EC CUBE備忘録 yoshy