Логика вывода промо-акций непонятна. Нужно сделать понятной

Какую задачу или проблему я пытаюсь решить:
Использую Unitheme. Создаю промо-акции. Логично предположить, что выводиться на экране они будут по порядку создания. Но нет. По алфавиту? Тоже нет! По promotion_id? Нет, нет, нет!

Возможности изменить порядок вывода на экран отсутствует. Перетаскивания промо-акций нет. В результате они попадают в поток в хрен знает каком порядке.

А мне нужно, чтоб они попадали в порядке, который определю я сам.

Смотрите пример. Созданы четыре акции. Такой порядок меня пока устраивает:

Добавляю пятую акцию, наивно рассчитывая, что она будет следующей. Но вижу вот что:

Почему она не первая? Не последняя? ХЗ. Если смотреть по promotion_id порядок мог бы быть такой:

  1. Доставка СДЭК
  2. Каждый выходной
  3. Скидка за регистрацию
  4. Скидка для Азии
  5. Почта.

Каким я представляю решение проблемы:

Добавить к промо-акциям порядок вывода на экран. Даже без перетаскивания.

Если я чего-то не вижу, подскажите, куда рыть.

3 лайка

Я так понимаю, вопрос возникает при использовании модуля “AB: Расширенные промо-акции”?
В модуле используется комплексная сортировка. Вначале разбиваем на текущие, ожидаемые и истёкшие. Далее каждую подгруппу сортируем по дате их окончания (те что заканчиваются раньше будут в списке выше, как “горящие предложения”). В ожидаемых выше идут те что начнутся раньше. В истёкших раньше идут те что завершились недавно. Далее уже идут в порядке создания (созданные позднее будут выше).

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

Совместить оба варианта одновременно не получится.

5 лайков

Да, при использовании этого модуля.

В общем, теперь логика понятна, почему так выводятся промо.
Сначала — заканчивающаяся, далее четыре в обратной сортировке по promotion_id. Вот только не очень удобно менять promotion_id, потому что вручную придется четыре таблицы править. А можно хотя бы галку добавить, чтоб вся логика осталась прежней, но сортировку по promotion_id можно было переключать на прямую и обратную? Было бы уже хоть что-то.

Как сейчас сортировать те что заканчиваются в один и тот же день?

Присоединяюсь к просьбе.
Пришел запрос от менеджеров.
:upside_down_face:
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Привет менеджеру. Пусть выведет на макете промо-акций блок с нужными ему промо-акциями над главным содержимым.

1 лайк

Это к сожалению мне делать придется…

Тогда же будут дубли на одной странице?

Возможно, кроме того, они будут выводиться на каждой странице пагинации. Но блок можно оформить как “Самые выгодные акции” и придать этому осмысленный вид.
Как видите, за 4 месяца Вы второй человек, который про это спрашивает. Эта доработка себя не оправдывает

1 лайк

На самом деле нас пятеро в этом закоулке форума)
Рассмотрите вариант сортировать по дате старта акции, а не окончания.
Самые свежие в начало списка.
Скорее всего это будет менее трудозатратная для вас доработка и всем так будет проще и понятнее.

В любом случае будут проблемы. Так как есть акции действующие, ожидаемые и закончившиеся. Каждая из этих промо-акций имеет или не имеет дату начала. То же самое с датой окончания.
Поэтому просто сортировки “по дате начала” быть не может. Нужно всё-равно продумать и разделение групп акций и поведение между акциями срочными и бессрочными внутри каждой группы…

Собственно, даже при наличии позиции легче не становится, так как изначально все акции будут иметь равную позицию и их опять же нужно каким-то образом упорядочивать. Пять лайков это очень малое количество. Для такого количества мы можем сделать доработку на платной основе, чтобы покрыть хотя бы часть затрат на невостребованный функционал.

Тоже мучаюсь с сортировкой акций.

Было бы логично в сортировке учитывать и дату начала. Т.е. сначала выводить те, у которых дата окончания ближе, а, например, если даты окончания нет, выводить сначала те, у которых дата начала новее.

1 лайк

Кто-то знает, как сейчас работает сортировка / порядок отображения промоакций на странице промоакции? Добавляю активные промоакции, у которых есть только дата начала, дата окончания не заполнена. Они выводятся в каком-то рандомном порядке, последняя добавленная акция может оказаться в конце списка.

было по дате окончания вроде

Так в блоке вроде есть Сортировка по…

Вопрос не про блок, а про список всех акций на странице промоакций. Обычно у нее адрес /promotions

По дате окончания работает. Но если даты окончания нет?

То хз ))))))