magento -- 按某个属性排序上的一个尝试

简介:

Magento的属性可以用来放在产品列表页给产品进行排序,要用来排序的属性只需要在后台属性管理的地方选择应用于排序,默认情况下是name和price这两个属性可以在前台用来排序(Position是例外)。

那么现在有个简单的尝试,就是新增一个属性,只允许填写数字,然后前台的产品可以按照数字的大小来对产品进行排序。看起来很合理的需求,尝试起来却遇到了麻烦。

首先要决定这个属性的输入类型,magento允许的输入类型如下图所示,看上去既能手动输入又能限制输数字的就只能是文本框了。

所以先尝试了用文本框输入类型,然后限制只能输入整数,如下图

    

新增这个属性后,选择将这个属性应用于列表页的排序,然后给几个产品的这个属性分别赋不同的值(数字),现在前台就可以尝试用这个属性来排序了。

      

问题来了,当我按序号降序排列时,序号为96的产品确实排在序号为97的产品的后面,但却同时发现原本应该排在最前面的序号为198的产品却排在了后面,甚至序号为20的产品都在它的前面,这是怎么回事?

检查数据库后发现,凡是文本框类型的属性,在数据库中保存的都是varchar类型的数据,限制输入整数也只是在填写该属性时多了一层整数的验证,也就是说前台用这个属性进行排序时,实际上是一些字符串进行对比之后在排序,字符串排序会优先检查首字母,这也就是为什么降序时序号为20的产品会排在序号为198的产品的前面。

那么Magento就没有办法用某个属性的数值大小来对产品进行排序了吗?也不尽然,检查数据库的时候会发现价格属性在数据库里是按数字类型保存的(这个好像是理所当然的),前台自带的按价格排序也验证了价格类型的属性排序是确实是按数字的大小来排的,而不是比较字符串。

所以现在尝试新增一个属性,输入类型选择价格型,应用于前台排序,用来管理商品时填写某种需要用到的数字(虽然是价格型属性,但不是拿来填价格的)。同预料的一样,这样前台按这个新属性排序是就是完全按数字的大小来排了。

不知道以这种方式来实现需求是不是最合理的方式,对Magento来说,至少我自己先这么用着了。

 

目录
相关文章
|
数据可视化 数据挖掘
跟着 Cancer Discovery 学作图 | 复杂小提琴图
跟着 Cancer Discovery 学作图 | 复杂小提琴图
210 0
|
缓存 算法 应用服务中间件
nginx 反向代理 与缓存功能
nginx 反向代理 与缓存功能
|
11月前
|
机器学习/深度学习 算法 API
量子计算编程语言:面向未来的开发工具
量子计算编程语言是面向未来的开发工具,基于量子力学原理,能够突破经典计算的瓶颈。本文介绍了量子计算编程语言的发展历程、主要特点、应用前景及学习方法,涵盖了QCL、Q#、Quipper等代表性语言,以及Qiskit、ProjectQ等主流工具,为开发者提供了全面的学习路径。
|
11月前
|
人工智能 安全 搜索推荐
AI与能源管理:智能电网的未来
本文探讨了AI与智能电网的融合及其对能源管理的深远影响。智能电网利用先进的信息、通信和AI技术,实现电力的自主、智能化、高效管理。AI在精准预测电力需求、实时监测与故障诊断、智能能源调度、个性化能源服务和优化可再生能源利用等方面发挥关键作用,推动能源管理的高效、智能和可持续发展。
|
监控 安全 数据挖掘
Python自动化交易
【8月更文挑战第7天】随着科技发展,自动化交易成为高效智能的投资方式。Python因其实用性和灵活性,在此领域大放异彩。本文介绍使用Python进行自动化交易的流程,包括获取市场数据、制定交易策略、执行交易、风险管理、监控与优化、实时监控及通知、心态管理、安全与隐私保护以及持续学习与优化等方面,并提供了具体的代码示例。通过这些步骤,读者可以构建自己的自动化交易系统,实现稳健的投资回报。
|
存储 Cloud Native Go
云原生之使用docker部署Dochub文库系统
云原生之使用docker部署Dochub文库系统
1029 0
云原生之使用docker部署Dochub文库系统
|
消息中间件 运维 监控
阿里云中间件、aPaaS 产品与解决方案介绍|学习笔记
快速学习阿里云中间件、aPaaS 产品与解决方案介绍
1169 101
阿里云中间件、aPaaS 产品与解决方案介绍|学习笔记
|
机器学习/深度学习 人工智能 自然语言处理
谷歌开源最精确自然语言解析器SyntaxNet的深度解读:一次关键进步以及一个重要工具
自然语言理解研究中,如何处理语言歧义是个难题。 SyntaxNet 将神经网络和搜索技术结合起来,在解决歧义问题上取得显著进展:SyntaxNet 能像训练有素的语言学家一样分析简单句法。今天,谷歌开源了SyntaxNet,也发布了针对英语的预训练解析程序 Parsey McParseface。除了让更多人使用到最先进的分析技术之外,这次开源举措也有利于公司借助社区力量加快解决自然语言理解难题的步伐,惠及谷歌业务。
1030 0
谷歌开源最精确自然语言解析器SyntaxNet的深度解读:一次关键进步以及一个重要工具
|
小程序 安全 API
微信支付-全面详解(学习总结---从入门到深化)(上)
微信支付(https://pay.weixin.qq.com)是腾讯集团旗下中国领先 的第三方支付平台,一直致力于为用户和企业提供安全、便捷、专业的在线支付服务。
1085 0
微信支付-全面详解(学习总结---从入门到深化)(上)
|
机器学习/深度学习 人工智能 达摩院
EMNLP 2022论文解读 | SOND:基于显式语音重叠建模的说话人日志模型
Empirical Methods in Natural Language Processing (EMNLP)是由国际计算语言学协会(Association for Computational Linguistics, ACL)举办的自然语言处理和人工智能方面的重量级国际会议,历届会议都会受到全球各地人工智能领域人士的广泛关注。
830 0
EMNLP 2022论文解读 | SOND:基于显式语音重叠建模的说话人日志模型