Описание проблемы

На сайте цены для товаров и услуг хранятся в неструктурированном виде - в одном поле записана строка, содержащая и число, и единицы измерения, и дополнительный текст. Из-за этого стандартная сортировка в каталоге не работает: числовое сравнение заменяется текстовым, и сортировка происходит по алфавиту (пример в приложенном изображении). Цены могут быть указаны как «500 руб.», «от 1000 ₽», «1500» и т.п.

Что требуется сделать

  1. Вынести товары и услуги в отдельную таблицу (база данных/админка) с разбивкой по полям - по отдельному полю для числа цены, валюте, типу (почасовая, за единицу, от/до).
  2. Заполнить справочник цен на основе данных из Excel по предоставленному шаблону - в одном столбце число, в другом - валюта, в третьем - признак.(требуется корректировка Excel-файла вручную)
  3. Настроить сортировку на стороне фронтенда - при выборе сортировки по цене числа должны сравниваться правильно (сначала проверяем возможность числового сравнения, иначе - лексикографическое). Привести работу к корректной последовательности: от дешевых к дорогим и наоборот.

Дополнительные требования

  • Сортировка должна учитывать все товары/услуги одновременно, включая не только число, но и признак «от/до», если он есть (например, «от 10 000 ₽» считается как 10000 и приравнивается к началу диапазона).
  • Не использовать сложные сторонние плагины - решение должно работать на чистом Python/JS или на уровне БД.
  • Документировать все изменения и предоставить краткую инструкцию по управлению справочником.

Результат

  • Новый справочник цен в файле Excel, расположенный отдельно от основного контента.
  • Рабочая сортировка в каталоге товаров/услуг - фильтр «Цена по возрастанию / убыванию» показывает правильную последовательность.