在Magento的高级搜索页面中更改属性排序

Luc*_*een 3 php mysql magento

我在Magento的产品上有一些自定义属性,可以在Magento的搜索页面中搜索到它们; 问题是字段在搜索页面上以错误的顺序列出;

例如:

Title  _____
Author _____
SKU    _____
ISBN   _____

应该:

Author _____
Title  _____
ISBN   _____
SKU    _____

我看了一下模板文件,似乎是从它的内部排序中输出一个数组(或对象).我想知道如何更改此顺序:).

任何(相对直接的)想法?

Jon*_*Day 6

如果您打开您的模板匹配的块(catalogsearch\advanced\form.phtml- > Mage_CatalogSearch_Block_Advanced_Form),你会看到,它调用了getAttributes方法的Mage_CatalogSearch_Model_Advanced这又是执行:

$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
            ...
            ->setOrder('main_table.attribute_id', 'asc')
            ->load();
Run Code Online (Sandbox Code Playgroud)

所有这些都意味着它按表中的attribute_id字段排序eav_attribute,而不是特定的有用字段.

但是,实际查询在catalog_eav_attribute表上执行连接,additional_table这意味着您可以更改代码的排序部分,->setOrder('additional_table.position', 'asc')然后通过phpMyAdmin更改该表中"position"字段的值.

为了以面向未来的方式进行此更改,请在进行任何更改之前复制该Mage_CatalogSearch_Model_Advanced文件并将其复制app/code/local/Mage/CatalogSearch/Model.

要调试SQL查询,打开$_debug$_logAllQuerieslib/varien/Db/Adapter/Pdo/Mysql.php.不要忘记在生产中关闭它!!

希望这有帮助,JD