バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 在庫ありのみ表示したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mini777
投稿日時: 2012/1/5 12:47
対応状況: −−−
一人前
登録日: 2011/11/16
居住地:
投稿: 71
在庫ありのみ表示したい
いつもお世話になっております。

商品一覧の表示をデフォルトで在庫ありのみに変更したいのですが
初心者のためどこを変更してよいのかわかりません。
あと、リンクで全て表示(在庫がない商品も)を追加したいと思っています。

バージョンは2.11.2を使用しております。

お分かりの方居ましたら何卒よろしくお願いします。
mini777
投稿日時: 2012/1/5 15:47
対応状況: −−−
一人前
登録日: 2011/11/16
居住地:
投稿: 71
Re: 在庫ありのみ表示したい
ちなみにパラメータの「NOSTOCK_HIDDEN」はfalse(表示)の状態で表示の変更をしたいと思っています。
yukikaze
投稿日時: 2012/1/5 15:50
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 在庫ありのみ表示したい
ど素人です。

LC_Page_Products_List.php の 293行目 の前で、$where に stock の条件を追加すればOK…のハズ。
これで SC_Product.php の alldtlSQL[Function] のSQLに条件が追加されます。
全表示の有無は この $where を制御してあげればできます。

少しでも参考になれば。
mini777
投稿日時: 2012/1/5 15:57
対応状況: −−−
一人前
登録日: 2011/11/16
居住地:
投稿: 71
Re: 在庫ありのみ表示したい
場所は分かったのですがどのように記述すればいいのか・・・
すみません・・・
yukikaze
投稿日時: 2012/1/5 16:52
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 在庫ありのみ表示したい
一例です。

LC_Page_Products_List.php の 293行目 の前に
 if($_REQUEST['flg'] != 'on'){
  $where .= '(stock > 0 OR stock_unlimited = 1)';
 }
 $objQuery->setWhere($where);
を追記。


全表示は、LINKのパラメータに flg=on を設定。

伝わりますか?
mini777
投稿日時: 2012/1/6 10:31
対応状況: −−−
一人前
登録日: 2011/11/16
居住地:
投稿: 71
Re: 在庫ありのみ表示したい
丁寧な説明ありがとうございます。

在庫ありのみ表示はうまくできました。
全て表示の切り替えがうまくいっていないみたいです
yukikaze
投稿日時: 2012/1/6 11:05
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 在庫ありのみ表示したい
if文の前辺りで $_REQUEST['flg'] を表示。
全表示の場合(Link押下?)、flgに'on'が渡ってますか?
Linkをどぅ記載しているか分からないのですが…POST,GET両方OKのハズなんですが…。
ちなみに保持し続けるなら_SESSIONなどで持っていた方がいいと思います。
mini777
投稿日時: 2012/1/12 10:24
対応状況: −−−
一人前
登録日: 2011/11/16
居住地:
投稿: 71
Re: 在庫ありのみ表示したい
返信遅くなってしまい申し訳ありません。
verを2.11.2から2.11.4にアップし
引用:

yukikazeさんは書きました:
LC_Page_Products_List.php の 293行目 の前で、$where に stock の条件を追加すればOK…のハズ。


LC_Page_Products_List.php
$order = <<< __EOS__
    (
        SELECT
            T3.rank
        FROM
            $dtb_product_categories T2
            JOIN dtb_category T3
                USING (category_id)
            WHERE T2.product_id = alldtl.product_id
            ORDER BY T3.rank DESC, T2.rank DESC
            LIMIT 1
    ) DESC
   ,(
        SELECT
            T2.rank
        FROM
            $dtb_product_categories T2
            JOIN dtb_category T3
293行目→       USING (category_id)
            WHERE T2.product_id = alldtl.product_id
            ORDER BY T3.rank DESC, T2.rank DESC
            LIMIT 1
    ) DESC
    ,product_id
__EOS__;

どこで条件を追加してあげれば良いのでしょうか?
アドバイスよろしくお願いします。
yukikaze
投稿日時: 2012/1/13 13:20
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 在庫ありのみ表示したい
返答遅れてスミマセン。最近見てなかったので…。

LC_Page_Products_List.php の lfGetSearchCondition[Function] で、$searchCondition['where'] に追加すればOKかと…。
書き方は他の $searchCondition['where'] に追記してるIF文などを参考に。
mini777
投稿日時: 2012/1/13 14:42
対応状況: −−−
一人前
登録日: 2011/11/16
居住地:
投稿: 71
Re: 在庫ありのみ表示したい

    $searchCondition['where'] .= ' AND (stock > 0 OR stock_unlimited = 1)';

と追加しました。
在庫の無しの表示は出来ているのですが検索結果の商品該当数は在庫無しの商品も含んだ数のままなのですがこれはどこを変更すれば良いのでしょうか?
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
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.