EC-CUBE4で商品一覧を更新日時順で並べ替える方法

EC-CUBE4で商品一覧を更新日時順で並べ替える方法です。

最初に、管理画面>設定>システム設定>マスターデータ管理の「mtb_product_list_order_by」に更新日時順を追加してください。IDは4としてください。

次にCusotomizeディレクトリ内にRepositoryディレクトリを設置してください。

そして以下のようにProductOrderByUpdate.phpを作成してRepository内に設置してください。

<?php

namespace Customize\Repository;

use Eccube\Doctrine\Query\QueryCustomizer;
use Eccube\Repository\QueryKey;
use Doctrine\ORM\QueryBuilder;

/**
 * Description of ProductOrderByUpdated
 *
 * @author Akira Kurozumi <info@a-zumi.net>
 */
class ProductOrderByUpdate implements QueryCustomizer {

    public function customize(QueryBuilder $builder, $params, $queryKey)
    {
        if(!empty($params["orderby"]) && $params["orderby"]->getId() == 4) {
            $builder->orderBy('p.update_date', 'DESC');
        }
        
    }

    public function getQueryKey(): string
    {
        return QueryKey::PRODUCT_SEARCH;
    }

}

以上で完成です。

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください