【问题标题】:Magento - set default product sort on single category onlyMagento - 仅在单个类别上设置默认产品排序
【发布时间】:2014-09-19 15:39:20
【问题描述】:

我正在尝试将 Magento 中单个类别的默认(不可编辑)排序设置为 SKU DESC,并仅隐藏该类别的排序选项

基本上我希望它只对 SKU、DESC 进行排序......无论在点击此页面之前在其他页面上选择了哪些选项

到目前为止,我可以隐藏排序功能,没问题,但是设置排序给我带来了一些麻烦

我已添加:/app/design/frontend/default/idp/template/catalog/category/view.phtml

if($_SERVER['REMOTE_ADDR'] == {MY IP}) :
  if($_category->getId() == 4) :
    $_category->_data['default_sort_by'] = "sku_sort";
   endif;
endif;

这可以很好地设置此页面上的默认排序顺序,但我找不到如何强制它使用 DESC 而不是 ASC .. 任何帮助将不胜感激

作为临时解决方案,直到我弄清楚这一点,我正在使用找到的解决方案 here,页面上的第一条评论有一个专门的解决方案(将 created_at 更改为 sku) 此解决方案的唯一问题是它会影响所有基于 sku 的排序页面和结果,而不仅仅是单个页面

【问题讨论】:

    标签: php magento sorting


    【解决方案1】:

    您可以从 catalog/product/list.phtm 修改工具栏对象,删除可用的排序属性并设置您需要的默认排序:

    $_category = Mage::registry('current_category');
    if ($_category && $_category->getId() == 4 && $this->getListBlock()){
       $availableOrders = $_category->getAvailableSortByOptions();
       unset($availableOrders['position']); // Delete the sort attributes you don't need
    
       $this->getListBlock()
        ->setAvailableOrders($availableOrders)
        ->setDefaultDirection('desc')
        ->setSortBy('sku_sort');
    }
    

    希望有帮助

    【讨论】:

    • /app/design/frontend/default/idp/template/catalog/product/list.phhtml 上,这段代码没有达到预期的效果......当检查$this->getListBlock() 时它总是失败......所以没有设置块(放置在页面顶部)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2018-03-23
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    相关资源
    最近更新 更多