バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > フロント機能 > 特定カテゴリだけ在庫なしの物を表示

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
koba2017
投稿日時: 2017/9/6 16:13
対応状況: 解決済
新米
登録日: 2017/9/5
居住地:
投稿: 9
特定カテゴリだけ在庫なしの物を表示
お世話になります。初めて投稿します。
商品の「在庫なし」の物は非表示にしているのですが、
特定のカテゴリの場合だけ「在庫なし」の物も表示にしたいと思っていますが可能でしょうか?

このあたりで何か設定すればいいのかと思うのですが
src/Eccube/Doctrine/Filter/NoStockHiddenFilter.php
ここだと現在のカテゴリを参照するのが困難のようですし

src/Eccube/Repository/ProductRepository.php
こちらだと在庫ありなしの設定が出来なさそうなので…

お分かりの方がいましたら、よろしくお願いします。

▼テンプレート
[EC-CUBE]3.0.14
[レンタルサーバ]ロリポップ
[OS]Linux
[PHP]5.6.21
[データベース]MySQL 5.6.23
[WEBサーバ]Apache
[ブラウザ]GooglrChrome
468
投稿日時: 2017/9/7 17:14
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 796
Re: 特定カテゴリだけ在庫なしの物を表示
特定のカテゴリというのは、検索条件では無くて、
そのカテゴリに属している商品という意味ですか?

一旦、在庫無し商品の非表示設定を表示に変えて、
特定のカテゴリ以外は、在庫商品を判定するようにしてみては如何でしょうか?

src/Eccube/Repository/ProductRepository.phpのソースで
カテゴリを判定し、在庫判定を行う事はできるとは思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

koba2017
投稿日時: 2017/9/12 10:11
対応状況: 確認中
新米
登録日: 2017/9/5
居住地:
投稿: 9
Re: 特定カテゴリだけ在庫なしの物を表示
ご相談ありがとうございます!

ご指定の通り、この部分で分岐を入れたら動きそうでした。
シッカリ入れ込み終わったら
後学のためにも詳細をUPさせていただきます。
ありがとうございました。


追伸:御社のプラグイン「新着表示」を使わせていただいております!
便利でわかりやすく大変重宝しております。
ありがとうございます。
koba2017
投稿日時: 2017/9/12 11:30
対応状況: 解決済
新米
登録日: 2017/9/5
居住地:
投稿: 9
解決しましたのでまとめです
ありがとうございました。
解決しました
参考までに詳細を書いておきます。

【やりたかったこと】
「販売済み」カテゴリを作って在庫の無い物はそちらでギャラリーとして一覧表示したかった
「花の絵(カテゴリID=5)」「販売済み(カテゴリID=10)」
・在庫ありの商品 カテゴリID=5…「花の絵」一覧で表示
・在庫なしの商品 カテゴリID=5,10…「花の絵」一覧で非表示・「販売済み」で表示


1.管理画面から「設定」「基本情報」「ショップマスター」で
「在庫切れ商品を非表示にする」⇒「無効」
(こうしないと、商品も表示されません)


2.src/Eccube/Repository/ProductRepository.php
107行あたりに分岐の追加

// category
$categoryJoin = false;
if (!empty($searchData['category_id']) && $searchData['category_id']) {
$Categories = $searchData['category_id']->getSelfAndDescendants();
if ($Categories) {
$qb
->innerJoin('p.ProductCategories', 'pct')
->innerJoin('pct.Category', 'c')
->andWhere($qb->expr()->in('pct.Category', ':Categories'))
->setParameter('Categories', $Categories);
$categoryJoin = true;


//-----------------------
// 「販売済み」系カテゴリ以外では完売商品を表示させない
$cat_id = $_GET['category_id'];
if($cat_id == '10'){
$qb->andWhere('pc.stock = 0');
}else{
$qb->andWhere('pc.stock = 1');
}
//-----------------------

}
}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は20,539名です
総投稿数は83,571件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1662
4
yuh
1430
5
red
1076
6
fukap
907
7
shutta
827
8
468
796
9 ramrun 789
10
tsuji
784
11
umebius
721
12
tao_s
651
13 karin 641
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.