Порядок сортировки сопутствующих товаров не работает в Magento 1.6 - PullRequest
3 голосов
/ 04 ноября 2011

Я хочу, чтобы Magento сортировал мои связанные продукты по значению позиции, которое я им предоставляю в бэк-энде.Когда я пытаюсь это сделать, ничего не происходит;связанные продукты по-прежнему сортируются по идентификатору, а не по позиции.

Я проверил конфигурацию Каталог & rarr;Сортировка статей по & rarr;Положение и, кажется, все в порядке.

Ответы [ 3 ]

3 голосов
/ 26 июня 2012

В версии 1.7.1 Magento эта ошибка была исправлена ​​

$this->_itemCollection = $product->getRelatedProductCollection()
        ->addAttributeToSelect('required_options')
        ->setPositionOrder()
        ->addStoreFilter()
    ;
2 голосов
/ 28 февраля 2012

в 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()
    ;

похоже на ошибку

0 голосов
/ 11 июня 2015

Я получил эту ошибку в области редактирования бэкэнд-продукта Magento в CE 1.5.1.0, вкладка «Перекрестные продажи».Чтобы это исправить, мне пришлось использовать код 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));
         }
...