对Magento 1.6中不起作用的相关产品的排序

时间:2011-11-04 10:45:06

标签: sorting magento product

我希望Magento按照我在后端给出的位置值对我的相关产品进行排序。当我试图这样做时,没有任何反应;相关产品仍然按ID排序,而不是按位置排序。

我检查了配置目录& RARR;文章排序& RARR;位置似乎很好。

3 个答案:

答案 0 :(得分:3)

在Magento 1.7.1版中,此错误已得到修复

$this->_itemCollection = $product->getRelatedProductCollection()
        ->addAttributeToSelect('required_options')
        ->setPositionOrder()
        ->addStoreFilter()
    ;

答案 1 :(得分:2)

在Mage_Catalog_Block_Product_List_Related

function _prepareData

改变
    $this->_itemCollection = $product->getRelatedProductCollection()
        ->addAttributeToSelect('required_options')
        ->addAttributeToSort('position', Varien_Db_Select::SQL_ASC)
        ->addStoreFilter()
    ;

    $this->_itemCollection = $product->getRelatedProductCollection()
        ->addAttributeToSelect('required_options')
        ->setOrder('position', Varien_Db_Select::SQL_ASC)
        ->addStoreFilter()
    ;

似乎是个错误

答案 2 :(得分:0)

我在CE 1.5.1.0的“Magento后端产品编辑”区域中出现此错误,“交叉销售”标签。要解决这个问题,我必须使用Magento 1.8的代码

diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Crosssell.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Crosssell.php                                                                           
index 2dd1611..813209e 100755                                                                                                                                                                                                                
--- a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Crosssell.php                                                                                                                                                              
+++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Crosssell.php                                                                                                                                                              
@@ -95,20 +95,20 @@ class Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Crosssell extends Mage_Admin
      */
     protected function _prepareCollection()
     {
+        /* @var $collection Mage_Catalog_Model_Resource_Product_Link_Product_Collection */
         $collection = Mage::getModel('catalog/product_link')->useCrossSellLinks()
             ->getProductCollection()
             ->setProduct($this->_getProduct())
-            ->setPositionOrder()
             ->addAttributeToSelect('*');
+
         if ($this->isReadonly()) {
             $productIds = $this->_getSelectedProducts();
             if (empty($productIds)) {
                 $productIds = array(0);
             }
-            $collection->addFieldToFilter('entity_id', array('in'=>$productIds));
+            $collection->addFieldToFilter('entity_id', array('in' => $productIds));
         }