在后台修改:

如果想增加排序的属性:


在分类页面添加自定义商品排序 Custom Product Sorting In Category Page如果我们想要添加自定义的商品排序, 例如: 以上架日期或更新日期排序, 为了达到该效果,
我们就需要自己进行编写了这里我们先来拿上架日期来做简单的举例, 首先要在我们的下拉框里添加这个选项
找到 Mage_Catalog_Model_Config 文件, 对其 getAttributeUsedForSortByArray() 进行修改
public function getAttributeUsedForSortByArray()
{$options = array('position'    => Mage::helper('catalog')->__('Position'),'created_at'  => Mage::helper('catalog')->__('Product Creation Date'));foreach ($this->getAttributesUsedForSortBy() as $attribute) {/* @var $attribute Mage_Eav_Model_Entity_Attribute_Abstract */$options[$attribute->getAttributeCode()] = $attribute->getStoreLabel();}return $options;
}
你最好重写这个类来对其进行修改接下来对我们的集合(Collection)进行修改, 这样就可以根据我们自定义下拉框的内容进行排序了,不过 “created_at” 已经是一个产品自带的属性, 所以对于这个我们不需要做任何额外的操作如果我们想通过评论来进行排序 Sort Products By Number Of Reviews因为评论不是一个产品自带的属性, 所以这次我们就需要对产品集合(Product Collection)进行修改,这里就不重提如何在排序下拉框中添加选项了, 和前面的操作一样打开文件 Mage_Catalog_Block_Product_List_Toolbar, 在大概 221 行的位置找到 setCollection() 方法,
同样的你最好在你自己的模块重写这个类, 然后复写 setCollection() 方法, 如下:
public function setCollection($collection)
{$this->_collection = $collection;$this->_collection->setCurPage($this->getCurrentPage());// we need to set pagination only if passed value integer and more that 0$limit = (int)$this->getLimit();if ($limit) {$this->_collection->setPageSize($limit);}if($this->getCurrentOrder() == 'review'){$this->_collection->sortByReview($this->getCurrentDirection());} else if ($this->getCurrentOrder()) {$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());}return $this;
}
从这里你可以看出我们在 Collection 里添加了一个新的方法 sortByReview(),
所以我们要重写产品集合类 Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
来添加该方法
public function sortByReview($dir)
{$table = $this->getTable('review/review');$entity_code_id = Mage::getModel('review/review')->getEntityIdByCode(Mage_Rating_Model_Rating::ENTITY_PRODUCT_CODE);$cond = $this->getConnection()->quoteInto('t2.entity_pk_value = e.entity_id and ', ''). $this->getConnection()->quoteInto('t2.entity_id = ? ', $entity_code_id);$this->getSelect()->joinLeft(array('t2'=>$table), $cond,array('review' => new Zend_Db_Expr('count(review_id)')))->group('e.entity_id')->order("review $dir");
}

http://www.sunzhenghua.com/magento-category-page-product-sorting

61. Catalog 分类页面商品排序相关推荐

  1. 商城微信小程序(二)——完成分类页面及商品列表页

    分类页面预览图: 分类页面主要代码 index.js // pages/category/index.js import {request } from "../../request/ind ...

  2. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  3. 美团搜索推荐多业务商品排序探索与实践

    猜你喜欢 0.2021年10月热门报告盘点:<2021年轻人性生活报告>稳居榜首! 1.多目标排序在快手短视频推荐中的实践 2.内容推荐策略产品经理的方法与实践 3.京东推荐算法精排技术实 ...

  4. Django 学习小组:博客开发实战第二周教程 —— 实现博客详情页面和分类页面

    本教程内容已过时,更新版教程请访问: django 博客开发入门教程. 上周我们完成了博客的 Model 部分,以及 Blog 的首页视图 IndexView. 本节接上周的文档 Django 学习小 ...

  5. 在Magento产品分类页面创建推荐产品(Featured Products)

    在进行Magento的相关操作的时候,你可能都想在产品分类页面添加上这一类产品的推荐产品(FeaturedProducts),这类产品一般是销售比较好的,或者是你的利润比较大的产品,那我们应该怎么样添 ...

  6. mysql电商产品排序_电商平台商品排序

    电商平台的商品排序一般由四类元素影响: 第一类:按照百分比计算,如商品转化率.好评率.回购率: 第二类:按照状态计算,如上下架: 第三类:按照数值计算,如销量和人气是数值的积累: 第四类:按照配比计算 ...

  7. 微信小程序开发--分类页面实现

    微信小程序开发–分类页面实现 之前在详情页面利用Vant Weapp的UI库构建出了GoodsAction 商品导航功能,接着需要在分类页面(kind.wxml)实现商品分类. 1.引入第三方组件 用 ...

  8. 仿京东APP分类页面(mvp模式+OkHttp封装工具类+拦截器+弱引用回收)

    仿京东APP分类页面: 添加依赖 compile 'com.android.support:recyclerview-v7:24.0.0' compile 'com.google.code.gson: ...

  9. 京东电商搜索中的语义检索与商品排序

    导读:本文将介绍京东搜索场景中的两块技术,语义检索与商品排序.在业界检索算法基础上,我们提出一系列更适用于电商场景的检索排序算法,在业务上取得了显著收益.其中的多篇论文已被 KDD/SIGIR 等收录 ...

  10. pandas使用Categorical函数将object数据数据列转化为categorical数据列并基于categorical的因子(分类)水平排序dataframe

    pandas使用Categorical函数将object数据数据列转化为categorical数据列并基于categorical的因子(分类)水平排序dataframe 目录

最新文章

  1. Android studio更新后出现警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has
  2. SpringMVC的数据响应
  3. AIX命令参考大全,卷 4,n - r
  4. eShopOnContainers 看微服务 ①:总体概览
  5. 博客文章列表(一)——JAVA
  6. php 按钮的属性值,HTML button标签的属性有哪些
  7. Matlab的parfor并行编程
  8. 数据结构笔记(二)--- 顺序实现线性表
  9. 思科模拟器叫什么_宇宙无敌上帝视角无所不能之星球生成模拟器。
  10. Linux网络收发包流程
  11. c:forEach无法显示信息的可能原因以及需要注意的地方
  12. php 扫描器源代码,php端口扫描器代码
  13. c语言常见关键字汇总
  14. QQ农场外挂、QQ牧场外挂专偷QQ号
  15. 使用IIS实现域名跳转
  16. java.util.concurrent.ExecutionException 错误解决。
  17. 菜孔孔学python--字典
  18. Linux 基础入门
  19. 最新中文linux系统,veket linux系统下载
  20. Node.js + Express 接口请求(GET、POST、PUT)事例

热门文章

  1. html php插入百度地图定位
  2. jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现
  3. 总结---BOM浏览器对象模型
  4. C#远程连接Oracle数据库(不安装客户端)
  5. 《锋利的jQuery》随笔(一)
  6. 团队文化中的害群之马
  7. Silverligth API for ArcGIS应用程序IIS发布
  8. 个人生活的量化分析(二):Apple健康数据分析
  9. html 图片分散,纯js和CSS3分散式宝丽来图片画廊
  10. pycharm中文乱码