按Magento产品列表中的价格排序

时间:2011-03-25 06:15:46

标签: php magento

我无法按产品清单页面的价格对产品进行分类。

按名称排序可以正常工作。

任何想法的人?

我用谷歌搜索并尝试了一些解决方案,但他们没有解决我的问题。

我尝试过:系统 - >缓存管理 - >分层导航索引 - >立即刷新

还尝试了此链接:http://www.miromedia.co.uk/blog/300/fixing-the-magento-price-sort-issue.htm

Magento版本:1.3.2.4

2 个答案:

答案 0 :(得分:3)

此版本的Magento似乎存在某种错误,产品目录索引价格未在产品保存上更新。所以你能做的就是通过如下所述的价格条件。

更新addAttributeToSort类的Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection功能。

注释以下代码: -

//        if ($attribute == 'price' && $storeId != 0) {
//            $websiteId = Mage::app()->getStore()->getWebsiteId();
//            $customerGroup = Mage::getSingleton('customer/session')->getCustomerGroupId();
//
//            if ($this->isEnabledFlat()) {
//                $priceColumn = 'e.display_price_group_' . $customerGroup;
//                $this->getSelect()->order("{$priceColumn} {$dir}");
//            }
//            else {
//                $priceAttributeId = $this->getAttribute('price')->getId();
//
//                $entityCondition = '_price_order_table.entity_id = e.entity_id';
//                $storeCondition = $this->getConnection()->quoteInto(
//                    '_price_order_table.website_id = ?',
//                    $websiteId
//                );
//                $groupCondition = $this->getConnection()->quoteInto(
//                    '_price_order_table.customer_group_id = ?',
//                    $customerGroup
//                );
//                $attributeCondition = $this->getConnection()->quoteInto(
//                    '_price_order_table.attribute_id = ?',
//                    $priceAttributeId
//                );
//
//                $this->getSelect()->joinLeft(
//                    array('_price_order_table'=>$this->getTable('catalogindex/price')),
//                    "{$entityCondition} AND {$storeCondition} AND {$groupCondition} AND {$attributeCondition}",
//                    array()
//                );
//                $this->getSelect()->order('_price_order_table.value ' . $dir);
//
//                /**
//                 * Distinct we are using for remove duplicates of products which have
//                 * several rows in price index (like grouped products)
//                 */
//                $this->getSelect()->distinct(true);
//            }
//
//            return $this;
//        }

您可以使用Magento标准方式执行此操作,而不是注释掉核心代码。希望这会有所帮助。

答案 1 :(得分:1)

您需要在Magento admin。

中正确配置price属性

转到属性管理,找到价格属性并确保勾选“在前端排序”框

应该为你解决这个问题。