バージョン選択

フォーラム

メニュー

オンライン状況

61 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 61
もっと...

サイト内検索

質問 > フロント機能 > 商品一覧→在庫0を後ろへ

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yn2978
投稿日時: 2016/1/22 18:53
対応状況: −−−
新米
登録日: 2016/1/22
居住地:
投稿: 9
商品一覧→在庫0を後ろへ
現在、商品一覧ページのデフォルトを更新順かつ在庫0を後ろへという表示にしようと思っています。
更新順にという部分に関しては、
$objProduct->setProductsOrder('update_date', 'dtb_products', 'DESC');

を追加することでできたのですが、
常に在庫0を後ろに回す方法がさっぱりです。在庫順ソートで後ろに回すことはできるのですが、そうではなく在庫0のみをどのソート状態でも一番後ろにしたいのです。
LC_Page_Products_List.phpの現在の中身は以下の通りです。

public function lfGetProductsList($searchCondition, $disp_number, $startno, &$objProduct)
{
$arrOrderVal = array();

$objQuery =& SC_Query_Ex::getSingletonInstance();
// 表示順序
switch ($this->orderby) {
// 販売価格が安い順
case 'price':
$objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC');
break;

// 新着順
case 'date':
$objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC');
break;

default:
$objProduct->setProductsOrder('update_date', 'dtb_products', 'DESC');
break;
if (strlen($searchCondition['where_category']) >= 1) {
$dtb_product_categories = '(SELECT * FROM dtb_product_categories WHERE '.$searchCondition['where_category'].')';
$arrOrderVal = $searchCondition['arrvalCategory'];
} else {
$dtb_product_categories = 'dtb_product_categories';
}
$order = <<< __EOS__
(
SELECT
T3.rank * 2147483648 + T2.rank
FROM
$dtb_product_categories T2
JOIN dtb_category T3
ON T2.category_id = T3.category_id
WHERE T2.product_id = alldtl.product_id
ORDER BY T3.rank DESC, T2.rank DESC
LIMIT 1
) DESC
,product_id DESC
__EOS__;
$objQuery->setOrder($order);
break;
}
// 取得範囲の指定(開始行番号、行数のセット)
$objQuery->setLimitOffset($disp_number, $startno);
$objQuery->setWhere($searchCondition['where']);

// 表示すべきIDとそのIDの並び順を一気に取得
$arrProductId = $objProduct->findProductIdsOrder($objQuery, array_merge($searchCondition['arrval'], $arrOrderVal));
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId);

// 規格を設定
$objProduct->setProductsClassByProductIds($arrProductId);
$arrProducts['productStatus'] = $objProduct->getProductStatus($arrProductId);

return $arrProducts;
}

どうか、よろしくお願い致します。
tsuji
投稿日時: 2016/1/22 19:06
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 商品一覧→在庫0を後ろへ
yn2978 様

これは、アイディアですが、データの取得を2回に分けて、
最初に在庫有りを取得し、あとで在庫なしを取得し、
在庫有りのデータのあとに在庫なしを追加したらできると思います


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

yn2978
投稿日時: 2016/1/22 19:30
対応状況: −−−
新米
登録日: 2016/1/22
居住地:
投稿: 9
Re: 商品一覧→在庫0を後ろへ
さっそくのレス大変感謝します。
たしかに仰る通りで、そうしたいと思いました。
ですが、私はECCUBEはこのたび初めて触りまして、DB関連の記述も初めてなのです・・。
読むことはできるのですが、DB関連の記述を複製&調整というところまではまだ出来ません。

今回だけ、どうか教えて頂けないでしょうかm(_ _)m
tsuji
投稿日時: 2016/1/25 13:21
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 商品一覧→在庫0を後ろへ
yn2978 様


> 今回だけ、どうか教えて頂けないでしょうかm(_ _)m

もし、コピペでカスタマイズされるということになりますと
今後、不具合が起きたときに対処ができなくなりますので、
アイディアだけにとどめさせていただけたらと思います。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

yn2978
投稿日時: 2016/1/25 17:42
対応状況: −−−
新米
登録日: 2016/1/22
居住地:
投稿: 9
Re: 商品一覧→在庫0を後ろへ
ありがとうございましたm(_ _)m

諦めてJQueryでページ毎に後ろに飛ばすようにしました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,886名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.