.reveal{opacity:1!important;transform:none!important}

Сравнивать цены, а не собирать их вручную

Мониторинг цен для розничной сети: сравнение товаров, проверка совпадений и история изменений в одном месте.

Для решения о цене нужно знать, сколько тот же товар стоит у конкурентов. Но названия отличаются, а цена зависит от магазина и региона.

Система собирает предложения и подбирает похожие товары. Человек проверяет пары, затем использует сравнение, историю цен и выгрузку в Excel.

  • Подготовлен сбор цен четырёх конкурирующих сетей по единому сценарию

  • В отчёты попадают только подтверждённые пары товаров

  • Собственные цены и остатки загружаются из каталога

Обезличенная сводная панель рыночной позиции на синтетических данныхОткрыть полный экран ↗
Сводная панель: агрегированная рыночная позиция (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Ещё экраны продукта
Экран аналитики по категориям и конкурентам на синтетических данныхОткрыть полный экран ↗
Аналитика: срез по категории, конкуренту и региону (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Экран ручной проверки сопоставления товаров на синтетических данныхОткрыть полный экран ↗
Сопоставление: ручная проверка предложенных связок товаров (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Карточка товара с историей цены на синтетических данныхОткрыть полный экран ↗
Карточка товара: цена, история и рыночный минимум (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
  1. Собрать цены

    Система получает цены, наличие и акции конкурентов с учётом магазина и региона.

  2. Найти похожие товары

    По названию и характеристикам подбирает товары, которые могут совпадать с вашим ассортиментом.

  3. Проверить совпадения

    Человек подтверждает или отклоняет каждую пару. Только проверенные пары попадают в сравнение.

  4. Принять решение

    Можно сравнить цены, посмотреть историю и выгрузить отчёт в Excel.

Это один и тот же товар?

Проверьте предложенные пары. Это демонстрация на вымышленных данных: решения не сохраняются и никуда не отправляются.

В очереди: 4 · Подтверждено: 0 · Отклонено: 0

  • Молоко цельное, 1 лМолоко цельное, 1000 мл
    Схожесть96 / 100
  • Кофе в зёрнах, 250 гКофе молотый, 250 г
    Схожесть88 / 100
  • Чай чёрный, 25 пакетиковЧай чёрный, 50 пакетиков
    Схожесть74 / 100
  • Вода без газа, 0,5 лВода негазированная, 500 мл
    Схожесть69 / 100

Для технической команды: как устроено решение

Веб-приложение, фоновый обработчик задач и планировщик работают как отдельные процессы вокруг общей базы данных; адаптеры конкурентов подключаются по единому контракту, а собственный ассортимент поступает через отдельный защищённый импорт.

  • Веб-приложение и серверный интерфейс
  • Фоновый обработчик задач и планировщик
  • Адаптеры сбора данных конкурентов
  • Импорт собственного ассортимента
Общая база данных: текущие цены и история

Надёжность

  • Отдельные процессы веб-приложения, фонового обработчика и планировщика с восстановлением незавершённых заданий после перезапуска.
  • Роли пользователей, журнал действий и защита входа от подбора пароля.
  • Регламентированные операции резервного копирования и обновления перед изменением схемы данных.
  • Заголовки безопасности и политика ограничения контента применяются на уровне приложения, а не оставлены на настройку веб-сервера.

Решения и ограничения

Только вручную подтверждённая связка используется в рабочих отчётах.

Автоматическое сопоставление товаров может ошибаться и искажать бизнес-аналитику.

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

Текущее состояние и история цены хранятся раздельно.

Нужно быстро показывать текущие цены и при этом хранить историю их изменений.

Аналитика остаётся быстрой, а история изменений не теряется.

Импорт собственных цен идемпотентен по идентификатору батча.

Клиент может повторно отправить тот же батч цен при сетевой ошибке.

Повторный запрос не создаёт дублирующих или противоречивых данных.

Параллельность сбора контролируется отдельно для каждого источника.

Несколько источников конкурентов нельзя собирать одинаково без риска перегрузки или блокировки.

Сбор данных не создаёт лишнюю нагрузку на источники конкурентов.

Автоматическое подтверждение отключено полностью: любой кандидат на совпадение, вне зависимости от оценки, ждёт решения оператора.

Даже высокая оценка схожести от алгоритма не гарантирует, что это действительно один и тот же товар.

Ни один автоматический результат сопоставления не попадает в отчёты без участия человека.

Подтверждённая связка товаров применяется на уровне конкурента целиком, а не на уровне отдельного магазина.

Проверять совпадение вручную для каждого магазина и региона конкурента отдельно сделало бы ручную работу неподъёмной при росте сети.

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

Технологии

  • Python
  • Flask
  • PostgreSQL
  • SQLAlchemy / Alembic
  • RapidFuzz
  • Chart.js
  • Gunicorn / Nginx / systemd

Похожая задача у вас?

Что мешает работать?

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

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

Написать Андрею напрямую

Отправляя форму, вы принимаете условия обработки данных.