【问题标题】:Magento: sort products by attribute positionMagento:按属性位置对产品进行排序
【发布时间】:2014-06-09 11:02:31
【问题描述】:

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

示例属性颜色:

值名 |位置

绿色 | 1

蓝色 | 2

红色 | 3

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

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

提前致谢

【问题讨论】:

  • 请不要在不同的 Stack Exchange 站点上交叉发布。如果你这样做了,至少有礼貌不要在 magento.SE 上复制 0 票的问题
  • 对不起,我不知道他们是两个相连的网站

标签: magento attributes position product


【解决方案1】:

我认为您为产品创建自定义选项,然后设置值的 short_order。如果这是正确的,请使用此代码。

进入App/code/core/Mage/Catalog/Model/Product/Option.php

有一个函数 getProductOptionCollection Line no:- 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;
}

【讨论】:

  • 抱歉,您的解决方案不起作用。按字母属性剩余的排序
  • 能不能加一下前端的截图,这样对我来说会好很多。谢谢
  • 抱歉,目前比较困难。
  • 你有任何链接,以便我可以查看产品视图页面。
  • 例如,在“TEXT”类别的前端中,我有四个产品:“产品 A”,属性颜色为绿色; “产品 B”,属性颜色为红色;具有属性颜色 grenn 的“产品 C”;属性颜色为蓝色的“产品 D”............实际订单显示(当排序过滤器设置为颜色时)是 D、A、C、B,但我想要 A、C、D、B
猜你喜欢
  • 2015-12-31
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多