我在Magento的产品上有一些自定义属性,可以在Magento的搜索页面中搜索到它们;问题是字段在搜索页面上以错误的顺序列出;
例如:
Title _____ Author _____ SKU _____ ISBN _____
应该是:
Author _____ Title _____ ISBN _____ SKU _____
我看了一下模板文件,似乎是从它的内部排序中输出一个数组(或对象)。我想知道如何更改此顺序:)。
任何(相对直接的)想法?
答案 0 :(得分:6)
如果您打开与您的模板匹配的广告代码(catalogsearch\advanced\form.phtml
- > Mage_CatalogSearch_Block_Advanced_Form
),您会看到它正在调用getAttributes
的{{1}}方法正在执行:
Mage_CatalogSearch_Model_Advanced
所有这些意味着它按$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
...
->setOrder('main_table.attribute_id', 'asc')
->load();
表中的attribute_id
字段排序,而不是特定的有用字段。
但是,实际查询在eav_attribute
表上执行catalog_eav_attribute
的连接,这意味着您可以将代码的排序部分更改为additional_table
,然后更改值通过phpMyAdmin在该表中的“position”字段。
为了以面向未来的方式进行此更改,请复制->setOrder('additional_table.position', 'asc')
文件并将其复制到Mage_CatalogSearch_Model_Advanced
,然后再进行任何更改。
要调试SQL查询,请在app/code/local/Mage/CatalogSearch/Model
中启用$_debug
和$_logAllQueries
。不要忘记在生产中关闭它!!
希望这有帮助, JD
答案 1 :(得分:2)
在Magento 1.7x中,这可以通过管理产品属性集来完成。
转到目录 - >属性 - >管理属性集---选择属性集
从那里,您可以重新排序,添加和删除集合的属性。
答案 2 :(得分:0)
尝试在这些属性上设置位置属性?
目录 - >属性 - >管理属性 - >属性 - >前端属性 - >位置
编辑:
实际上,您可能需要将手动排序应用于搜索结果块/模板。
从这里开始了解如何做这类事情的详细信息:http://alanstorm.com/category/magento