Magento - 按ID排序产品

时间:2012-01-13 17:56:34

标签: sorting magento product

我正在尝试设置我的Magento商店,按产品添加到目录(按产品ID)的顺序对产品进行排序。但是,我还没有找到一个如何设置它的好例子。默认情况下,我的大多数产品类别似乎都这样做,但不是全部。

我认为前端的“位置”选项排序可以做到这一点,但它似乎并不适用于我的所有类别。我正在使用社区版1.6.1。

提前致谢!

3 个答案:

答案 0 :(得分:3)

复制:
  app/code/core/Mage/Catalog/Block/Product/List.php

到(创建适当的文件夹):
  app/code/local/Mage/Catalog/Block/Product/List.php

在List.php中找到以下行:

$this->_productCollection = $layer->getProductCollection();

在下面添加以下行:

$this->_productCollection->joinField('category_product', 'catalog/category_product', 'product_id', 'product_id=entity_id', array('store_id'=> Mage::app()->getStore()->getId()), 'left');

// Here is the explain
/*
* @param string $alias 'category_product'
* @param string $table 'catalog/category_product'
* @param string $field 'name'
* @param string $bind 'PK(product_id)=FK(entity_id)'
* @param string|array $cond
* @param string $joinType 'left'
*
* default definition
* joinField($alias, $table, $field, $bind, $cond=null, $joinType='inner') 
*
*/

复制
  app/code/core/Mage/Catalog/Model/Config.php


  app/code/local/Mage/Catalog/Model/Config.php

在Config.php中找到以下行:

'position'  => Mage::helper('catalog')->__('Position')

替换为:

$options = array(
   'position'  => Mage::helper('catalog')->__('Position'),
   'product_id' => Mage::helper('catalog')->__('Product ID')
); 
PS:我在家里写这篇文章,我没有在我的机器上安装Magento,所以我没有测试,但结构还可以。如果你面对任何toruble,请确保字段和表名。

答案 1 :(得分:1)

以防有人需要: 改变这个:

'product_id' => Mage::helper('catalog')->__('Product ID')

到此:

'entity_id' => Mage::helper('catalog')->__('Product ID')

答案 2 :(得分:1)

复制

app/code/core/Mage/Catalog/Model/Config.php

app/code/local/Mage/Catalog/Model/Config.php

Config.php中找到以下行:

$options = array(
    'position'  => Mage::helper('catalog')->__('Position')
);

替换为:

    $options = array(
//        'position'  => Mage::helper('catalog')->__('Position')
        'entity_id' => Mage::helper('catalog')->__('Last')
    );

然后将默认排序方向更改为降序: 打开app/design/frontend/your theme/your layout/layout/catalog.xml 添加行

<action method="setDefaultDirection"><dir>desc</dir></action>
块中的

<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
   <block type="page/html_pager" name="product_list_toolbar_pager"/>
      <!-- The following code shows how to set your own pager increments -->
here

   </block>
</block>