こんにちは、なかわけです。
今日はEC-CUBEの話。
タイトル通り、EC-CUBEで非公開の商品をランキングに表示しない方法。
/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Ranking.php
の74行目あたりのIfGetRanking()を編集します。
$col = "T1.product_id, T1.product_name as name, T3.main_list_image, COUNT(*) as order_count"; $from = "dtb_order_detail AS T1 INNER JOIN dtb_order AS T2 ON T1.order_id = T2.order_id INNER JOIN dtb_products AS T3 ON T1.product_id = T3.product_id"; $objQuery->setgroupby("T1.product_id, T1.product_name, T3.main_list_image"); $objQuery->setorder("order_count DESC");
を
$col = "T1.product_id, T1.product_name as name, T3.main_list_image, COUNT(*) as order_count"; $from = "dtb_order_detail AS T1 INNER JOIN dtb_order AS T2 ON T1.order_id = T2.order_id INNER JOIN dtb_products AS T3 ON T1.product_id = T3.product_id"; $objQuery->setwhere("T3.status = 1"); $objQuery->setgroupby("T1.product_id, T1.product_name, T3.main_list_image"); $objQuery->setorder("order_count DESC");
$objQuery->setgroupbyの前に$objQuery->setwhere(“T3.status = 1″);を追加します。
これで非公開商品はランキングにランクされません。
この件に関係してわかったことを箇条書き。
- ランキングは受注情報から作られる
- 売り切れまたは削除した商品もランキングされてしまう
- ランキングは販売個数ではなく注文回数をカウントされている
3.についての解説
例えば、1回の注文でボールペンが100本売れたのと、ノートが1冊の注文が2回(つまり2冊売れた)があったのでは、
ボールペンよりノートの方が上位にランキングされるということ。
へぇ~。
Tags: EC-CUBE