Magento Forum

   
Как сделать чтобы товары со скидкой были первыми? 
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Как можно сделать в шаблоне, чтобы при выводе товаров первые были те которые со скидкой?

 
Magento Community Magento Community
Magento Community
Magento Community
 
ogonkov
Guru
 
Total Posts:  582
Joined:  2009-03-25
Moscow, Russia
 

Если не очень морочиться (возможно есть какие-то стандартные функции для подобной сортировки), то можно сначала выводить массив товаров только со скидкой, а после товары только без скидки.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Вроде бы они в одном массиве. Или я ошибаюсь?

 
Magento Community Magento Community
Magento Community
Magento Community
 
ogonkov
Guru
 
Total Posts:  582
Joined:  2009-03-25
Moscow, Russia
 

Оу, фиг знает вообще grin
Если у них установлены какие-то специальные цены, значит даже если они в одном массиве, то их можно по каким-то признакам отфильтровать.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Не получиться. Из шаблона это вообще исключено . Потому что на каждой страницы навигации у нас не все товары а количество заданное из админки..
Если попытаться сделать с коллекцией в том файле в котором она непосредственно формируеться и имеет все товары заданной категории, то происходит несколько глюков.
1) если её перемешать как массив то магенто выдаст ошибку потому что это не массив а объект.
2) Если просто попробывать отобрать все товары со скидкой обрадотав этот объект, то почему-то, выводяться все товары сразу и навигация не работает.
3) на форуме писали способ сортировки по наличию в магазине . Собственно вот он
$this->_productCollection = $layer->getProductCollection();
$this->_productCollection->joinField(
‘inventory_in_stock’,
‘cataloginventory/stock_item’,
‘is_in_stock’,
‘product_id=entity_id’
);

$this->_productCollection->getSelect()->order(’is_in_stock desc’);
Но как проделать тоже самое для цены со скидкой, не понятно :(

 
Magento Community Magento Community
Magento Community
Magento Community
 
ogonkov
Guru
 
Total Posts:  582
Joined:  2009-03-25
Moscow, Russia
 

Боюсь тут я не смогу уже помочь, так как далёк от настройки такого уровня :(

 
Magento Community Magento Community
Magento Community
Magento Community
 
bytestorm
Magento Team
 
Total Posts:  91
Joined:  2008-04-02
 

юзайте

public function addAttributeToSort($attribute$dir='asc')

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Спасибо smile мне похожий код давал 1 человек из комьюнити, только у меня почему то ен заработало :( можете написать как оно должно выглядеть для специальной цены? его нужно применять к product collection?

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Напишите пожалуйста как это сделать правильно, а то чего то совсем не получается :(

 
Magento Community Magento Community
Magento Community
Magento Community
 
bytestorm
Magento Team
 
Total Posts:  91
Joined:  2008-04-02
 

ну раз проблеме уже неделя и все никак не решается… заодно пополню свой хламосклад очередным куском полезного кода…

задача:
1. вывести сначала список всех продуктов со специальной ценой, остальные - после
2. отсортировать продукты со специальной ценой в порядке возрастания этой самой цены

вставляем в место подготовки коллекции следующий код: [предполагается, что коллекцию продуктов получаем с помощью $this->getProductCollection()]

$this->getProductCollection()
        ->
addExpressionAttributeToSelect('_special_price_is_present''({{special_price}} > 0)''special_price')
        ->
addAttributeToSort('_special_price_is_present''desc')
        ->
addAttributeToSort('special_price''asc');

главное, чтобы этот код был до установки каких либо других сортировок

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Отлично спасибо!!! будем проверять!!!
Приятно знать что товарищи из комьюнити помогают простым пользователям smile
А можете сказать что дальше планируеться в версии магенто? или это пока что тайна smile меня ужасно интересует будет ли такая штука как - пользователи смотревшие этот товар затем купили?

 
Magento Community Magento Community
Magento Community
Magento Community
 
bytestorm
Magento Team
 
Total Posts:  91
Joined:  2008-04-02
 

там еще можно убрать

addAttributeToSort('special_price''asc')
чтобы не сортировать продукты по спец. цене, а сразу применять сортировку выбранную в гриде (по названию или позиции, например), но мой вариант подразумевал немного другое использование =)
по поводу того что дальше планируется - увы, ничего сказать не могу

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Здравствуйте, многоуважаемый bytestorm. Подскажите пожалуйста как можно применить такую сортировку если у меня включены flat продукты?

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top