Как в битриксе сделать уникальную сортировку товаров для каждого раздела каталога?
Сайт на битриксе.
Есть каталог примерно 2000 товаров и около 400 разделов многие из которых однотипные и созданы для СЕО.
Надо сделать уникальную сортировку товаров в каждом разделе при том, что по составу разделы могут быть идентичными.
Проблема - 2000*400 дает 800к вариантов сортировки. Даже если учесть, что не все товары будут во всех разделах то все равно получается примерно 100к уникальных вариантов сортировки товаров.
Как лучше это реализовать и хранить и при этом, чтобы удобно было редактировать это в админке.
Пока приходят в голову только варианта типа - у товара делаем множественное поле "привязка к разделу" и для каждого привязанного в поле "комментарий" пишем значение сортировки.
Но это выглядит как-то костыльно.
Может есть какой-то более оптимальный вариант, типа, задать каждому разделу некий коэффициент который влияет на сортировку внутри раздела?
Если Вы хотите, чтобы у каждого раздела была своя сортировка, и она была постоянной для данного раздела, попробуйте добавить свойство раздела, в котором будете хранить значение для сортировки. А при подключении выборки элементов раздела использовать это свойство
Имеется ввиду сделать множественное свойство раздела и хранить в нем значения сортировки для каждого привязанного товара? Но это же получится костыль как я и писал, только храниться будет в разделе, а не в товаре или я не правильно вас понял?
Илья Воропаев, Не для каждого товара. Для каждого раздела. Вы же в вопросе про разделы пишете. Определяете тип сортировки по умолчанию. и если у раздела проставлена свойство сортировки, используете его, если нет, используете по умолчанию
Илья Воропаев, это немного сложнее, могу обрисовать, как бы сделал я:
я для всего и иблоков использую орм,
заводим таблицу сортировок, поля ELEMENT_ID, SECTION_ID, SORT
в которую пишем для всех элементов значения
при запросе рантаймом добавлял бы поле сорт из этой таблицы, связываясь по элементу и разделу, и сортировал бы по этому полю
Я примерно так и думал делать, но смущает что могут возникнуть тормоза из-за большого количества элементов. Получается надо примерно 800к записей со всеми вариантами сортировок товаров для всех разделов и из них надо выбрать допустим 300 для вывода товаров в раздел.
Но видимо по другому это решить не получится.
Илья Воропаев, ну и что. сделаешь PRIMARY индекс по двум полям ELEMENT_ID и SECTION_ID.
тебе же не надо делать 300 дополнительных запросов. это будет просто left_join