我希望Magento按照我在后端给出的位置值对我的相关产品进行排序。当我试图这样做时,没有任何反应;相关产品仍然按ID排序,而不是按位置排序。
我检查了配置目录& RARR;文章排序& RARR;位置似乎很好。
答案 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));
}