Перейти к содержанию
Официальный форум поддержки Simpla

Баг в сортировке товара по цене


Рекомендуемые сообщения


Spoiler
case 'price':
$order = 'pv.price IS NULL, pv.price=0, pv.price';
break;



Сейчас сортировка идет по значению из первого варианта в товаре. А если их несколько и цены разные, то например данные из второго и третьего варианта не учитываются.

А это неправильно, т.к. вводит посетителей в заблуждение.
Ссылка на сообщение
Поделиться на другие сайты

А как можно сделать по-другому? В сортировке можно учитывать только ОДНУ цену, никак не три))

Ссылка на сообщение
Поделиться на другие сайты

Так ставте ПЕРВОЙ ту, которая нужна, потому что одному нужна большая, другому меньшая, третьему - еще какая-то...

Ссылка на сообщение
Поделиться на другие сайты

По логике вещей обычно сортировкой пользуются, чтобы найти более дешевые товары.

Таким образом что-то нужно дописать, чтобы перебиралимь все значения из вариантов и выбиралось, соответствующее нашему условию? А дальше уже каждый может решать что должно учитываться большая цена или меньшая исходя из специфики покупателей.

Ссылка на сообщение
Поделиться на другие сайты

другого варианта нет, выход - перезабить товары, или написать маленький код, который расклеит варианты и сделает отдельными товарами

Ссылка на сообщение
Поделиться на другие сайты

Что это за система, когда другого варианта нет?
У меня тоже проблема: я товары импортировал, у них в БД id не по порядку, все разные, цены понятные, но вот сортировку по цене делает через одно место. По имени сортирует, а если по цене, то идёт сначала товар за 112 рублей, следом товар за 4539 рублей, следом - за 459 рублей.

Ссылка на сообщение
Поделиться на другие сайты

А может для sql можно какой скрипт сообразить который в каждом товара пересортирует варианты от меньшего по цене к большему?

Ссылка на сообщение
Поделиться на другие сайты

для вариантов вместо ORDER BY position поставьте ORDER BY price, правда в админке не будет актуальна функция позиционирования варианта, но она вам и не нежна по всей видимости, и все будет работать так как вы хотите.

Ссылка на сообщение
Поделиться на другие сайты

Попробуй так:

case 'price':				$order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';				break;
Ссылка на сообщение
Поделиться на другие сайты

Нет, у меня идёт сортировка "по цене" вообще никак. Через одно место. Алгоритм, по которому сортируется, мне ещё непонятен.
И в каком файле искать это case 'price':

Ссылка на сообщение
Поделиться на другие сайты

Нет, у меня идёт сортировка "по цене" вообще никак. Через одно место. Алгоритм, по которому сортируется, мне ещё непонятен.
И в каком файле искать это case 'price':

Ссылка на сообщение
Поделиться на другие сайты

У меня вот так.
Что изменить?

case 'price':				//$order = 'pv.price IS NULL, pv.price=0, pv.price';				$order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';				break;
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...