| 
       
	之前写过一个文章来调整产品的排序功能,,,从网上收集了一下。。发现这个方法,是最方便的! 
	  
	其实magento就是按产品的属性值来排序的! 
	最新 的方法:修改: 
	\app\code\core\Mage\Catalog\Block\Product\List\Toolbar.php 
	找到下面这个方法:把他之前的注释,然后改成自己需要的属性 
	public function setDefaultOrder($field) 
	{ 
	/* if (isset($this->_availableOrder[$field])) { 
	$this->_orderField = $field; 
	} */ 
	$this->_orderField = 'sortorder'; 
	return $this; 
	} 
	  
	  
	下面这个貌似还是有bug 
	magento根目录下的/app/code/core/Mage/Catalog/Model下的config.php中找到了magento产品列表页初始排序数组的方法,源代码如下: 
	public function getAttributeUsedForSortByArray() 
	{ 
	$options = array( 
	'position'  => Mage::helper('catalog')->__('Position') 
	); 
	foreach ($this->getAttributesUsedForSortBy() as $attribute) { 
	/* @var $attribute Mage_Eav_Model_Entity_Attribute_Abstract */ 
	$options[$attribute->getAttributeCode()] = $attribute->getStoreLabel(); 
	} 
	return $options; 
	} 
	只需要把你想要放在默认位置的排序方式写在'position'  前面就可以了,比如我把价格放在前面 
	public function getAttributeUsedForSortByArray() 
	{ 
	$options = array( 
	'price'  => Mage::helper('catalog')->__('Price'), 
	'position'  => Mage::helper('catalog')->__('Position') 
	); 
	foreach ($this->getAttributesUsedForSortBy() as $attribute) { 
	/* @var $attribute Mage_Eav_Model_Entity_Attribute_Abstract */ 
	$options[$attribute->getAttributeCode()] = $attribute->getStoreLabel(); 
	} 
	return $options; 
	} 
      
      (责任编辑:最模板) |