改变magento中一般信息中类别属性的位置

时间:2014-05-23 07:46:22

标签: php magento magento-1.4

How to change attribute position in category up or down as per requirement? 如何根据需要更改或更改类别中的属性位置?

4 个答案:

答案 0 :(得分:4)

这是一种丑陋的做法,但我没有别的。

属性组中的属性位置保存在eav_entity_attribute表中 首先,您需要确定属性short_description的ID。

以下是对此的查询。

SELECT 
    attribute_id, attribute_code
FROM 
    eav_attribute 
WHERE
    attribute_code = 'short_description' AND
    entity_type_id = (SELECT 
                          entity_type_id
                      FROM
                          eav_entity_type
                      WHERE 
                          entity_type_code = 'catalog_category'
                     ) 

我们说你得到的属性ID是100

然后,您需要获取属性的属性id,该属性应位于属性上方及其下方。

使用上述相同的查询,但将属性代码从short_description更改为is_anchordescription

我们假设您获得is_anchor的值10和description的值15。

然后在属性集中查看它们的位置。

SELECT * FROM `eav_entity_attribute` where `attribute_id` in (10, 15, 100);

查看sort_order字段 让我们说你有这样的事情:

attribute_id|sort_order
10          | 40            //is_anchor attribute
15          | 50            //description attribute
100         | 120           //shot_description attribute

现在您只需要将short_description属性的sort_order更新为is_anchor和description之间的值。
在上面的示例中,您需要45

UPDATE `eav_entity_attribute` set `sort_order` = 45 where `attribute_id` = 100

答案 1 :(得分:1)

后端类别页面由以下文件呈现:

app/design/adminhtml/default/default/template/catalog/category    
app/code/core/Mage/Adminhtml/Block/Catalog/Category

但它很复杂,那里也有很多javascript。

答案 2 :(得分:1)

您可以通过更新脚本实现此目的

$installer->run("
    update {$installer->getTable('eav_entity_attribute')} set `sort_order`=1 where `attribute_id`=(select `attribute_id` from {$installer->getTable('eav_attribute')} where `attribute_code`='short_description');
");

如果排序顺序不正确,请尝试将sort_order值设置为0或作为最后的手段,同时更改其他属性的sort_order值。

答案 3 :(得分:-4)

有些事情可以在不进入代码的情况下解决:)

只需: 1.进入您的目录/属性/管理属性集/您的属性集。 2.将属性拖放到所需的位置 3.保存属性集

enter image description here