Magento:按属性位置对产品进行排序

时间:2014-04-24 08:53:21

标签: magento attributes position product

在我的网站中,我已经设置了一个过滤器,用于按属性排序我的产品,但顺序是按字母顺序排列的,我希望订单是按后端设置的位置属性。

示例属性颜色:

Valuename |位置

绿色| 1

蓝色| 2

红色| 3

前端的实际结果是产品蓝色然后是绿色然后是红色,我希望结果是绿色然后是蓝色然后是红色

我可以修改哪些类来解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:4)

我在考虑为产品创建自定义选项,然后设置值的short_order。如果这是正确的,那么使用此代码。

转到App / code / core / Mage / Catalog / Model / Product / Option.php

有一个函数getProductOptionCollection行号: - 373。只需注释掉 - > setOrder('title','asc')的代码;并在 - > setOrder('sort_order','asc')之后添加“;”

public function getProductOptionCollection(Mage_Catalog_Model_Product $product)
{
    $collection = $this->getCollection()
        ->addFieldToFilter('product_id', $product->getId())
        ->addTitleToResult($product->getStoreId())
        ->addPriceToResult($product->getStoreId())
        ->setOrder('sort_order', 'asc');
        //->setOrder('title', 'asc');

    if ($this->getAddRequiredFilter()) {
        $collection->addRequiredFilter($this->getAddRequiredFilterValue());
    }

    $collection->addValuesToResult($product->getStoreId());
    return $collection;
}