バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > [追記]新着商品自動表示プラグインの表示方法の変更について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
moge1203
投稿日時: 2018/10/29 9:51
対応状況: −−−
一人前
登録日: 2018/3/15
居住地:
投稿: 113
[追記]新着商品自動表示プラグインの表示方法の変更について
▼テンプレート
[EC-CUBE] 3.0.15 , 新規インストール
[レンタルサーバ] heteml
[OS] macOS High Sierra ver10.13.3
[PHP] 7,0
[ブラウザ] Google Chrome

▼質問内容

皆様いつもお世話になっております。
「新着商品自動表示プラグイン」についてご相談があり、投稿させていただきます。

現在、商品IDが新しく、かつ公開されているものが表示されているのですが、
こちらの並び替え方法を商品更新順にできないでしょうか?
理由としましては、新商品として先に商品情報を登録しているのですが、
運用している中で後に登録したものを先に公開することがあります。
その場合、新商品として先に登録したものを公開して、後に回ってしまうので、
どうにか対策ができればと感じております。

商品を更新順にした場合、どのようなカスタマイズが必要になるのでしょうか?
ご教授いただけますと幸いです。

よろしくお願いします。


===============追記===============


EC-CUBE3 商品一覧(list.twing)を五十音順に並べ替える
こちらのページを参考に手順3まで進めており、
下記記事を参考に、プラグイン内も任意の数字に変更しております。
新着商品自動表示プラグインの表示順カスタマイズ

また、「src/Eccube/Repository内にある、ProductRepository.php」につきましては、
下記のように追加しております。

            // 新着順
        } else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == $config['product_order_newer']) {
            // 在庫切れ商品非表示の設定が有効時対応
            // @see https://github.com/EC-CUBE/ec-cube/issues/1998
            if ($this->app['orm.em']->getFilters()->isEnabled('nostock_hidden') == true) {
                $qb->innerJoin('p.ProductClasses', 'pc');
            }
            $qb->orderBy('p.create_date', 'DESC');
            $qb->addOrderBy('p.id', 'DESC');

            // 更新日順を追加
        } else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == $config['product_order_update']) {
            // 在庫切れ商品非表示の設定が有効時対応
            // @see https://github.com/EC-CUBE/ec-cube/issues/1998
            if ($this->app['orm.em']->getFilters()->isEnabled('nostock_hidden') == true) {
                $qb->innerJoin('p.ProductClasses', 'pc');
            }
            $qb->orderBy('p.update_date', 'DESC');
            $qb->addOrderBy('p.id', 'DESC');

        } else {
            if ($categoryJoin === false) {
                $qb
                    ->leftJoin('p.ProductCategories', 'pct')
                    ->leftJoin('pct.Category', 'c');
            }
            $qb
                ->addOrderBy('p.id', 'DESC');



そもそもの記述が間違っているのでしょうか。
皆様どうかよろしくお願いします。




sw_tm
投稿日時: 2018/10/29 10:54
対応状況: −−−
常連
登録日: 2018/5/25
居住地:
投稿: 43
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
こちらの定義は、追加されていますか?
$config['product_order_update']
moge1203
投稿日時: 2018/10/29 10:57
対応状況: −−−
一人前
登録日: 2018/3/15
居住地:
投稿: 113
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
sw_tm様

申し訳ありません、こちら定義の追加しておりません。
どちらに記述する必要があるのでしょうか?
ご教授いただけますと幸いです。

よろしくお願いいたします。
sw_tm
投稿日時: 2018/10/29 11:04
対応状況: −−−
常連
登録日: 2018/5/25
居住地:
投稿: 43
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
引用:



EC-CUBE3 商品一覧(list.twing)を五十音順に並べ替える
こちらのページを参考に手順3まで進めており、
下記記事を参考に、プラグイン内も任意の数字に変更しております。
新着商品自動表示プラグインの表示順カスタマイズ




上記の手順で追加したレコードのIDが必要になります。



追加したレコードのIDが4の場合、以下のように修正してみてください。


} else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == $config['product_order_update']) {


↓修正


} else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == 4) {


moge1203
投稿日時: 2018/10/29 11:11
対応状況: −−−
一人前
登録日: 2018/3/15
居住地:
投稿: 113
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
ご教授いただいた内容で差替たのですが、やはり機能しておりません...

また、先の定義の件ですが、
src/Eccube/Resource/config内にあるconstant.yml.dist
への追加でしょうか?
もしそうであれば、「product_order_update: 5」で定義しております。

どちらにせよ機能しておりません...
sw_tm
投稿日時: 2018/10/29 11:17
対応状況: −−−
常連
登録日: 2018/5/25
居住地:
投稿: 43
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
>>$config['product_order_update']
こちら定義されていたようですね。
お力になれずすみません。

ちなみに新着順では動作していると思いますので、
新着順のif文内を一時的に変更した場合、
更新順になりますか?

$qb->orderBy('p.create_date', 'DESC');



$qb->orderBy('p.update_date', 'DESC');
moge1203
投稿日時: 2018/10/29 11:24
対応状況: −−−
一人前
登録日: 2018/3/15
居住地:
投稿: 113
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
sw_tm様

こちら盲点でした。
しかし、試しに変更してみたのですが、
動作していないようです。
そもそも記述する場所が異なっているのでしょうか...
また、キャッシュは都度クリアしております。
sw_tm
投稿日時: 2018/10/29 13:08
対応状況: −−−
常連
登録日: 2018/5/25
居住地:
投稿: 43
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
引用:

しかし、試しに変更してみたのですが、
動作していないようです。
そもそも記述する場所が異なっているのでしょうか...
また、キャッシュは都度クリアしております。


そうでしたか。

シロハチ様のブログで、「ProductRepository.php::getQueryBuilderBySearchData()」のメソッドが
紹介されていますので、間違いないと思うのですが、
これ以上追うことが難しく申し訳ございません。

新着商品自動表示プラグインの表示順カスタマイズ


moge1203
投稿日時: 2018/10/29 13:22
対応状況: −−−
一人前
登録日: 2018/3/15
居住地:
投稿: 113
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
sw_tm様

ご回答ありがとうございます。

私も該当の記事を確認しておりますので、
こちらの修正でいけると思ったのですが...

お忙しい中お時間を割いていただき、
ありがとうございました。
468
投稿日時: 2018/11/5 1:12
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: [追記]新着商品自動表示プラグインの表示方法の変更について
追記されている内容には問題は無いように見受けられますので、
ProductRepository.phpのfunction getQueryBuilderBySearchData()に
処理が通っていますでしょうか?
追記されたifに処理が到達されているのかどうか判断する為に
ifの分岐の中で、print($searchData['orderby']->getId());等を追記して、ブロック部分に何が表示されるのか確認されてみては如何でしょうか?


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

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,305名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.