Все проекты

03 / Веб-сервис

База цен

Сводит прайсы поставщиков в один каталог и показывает, где закупка выгоднее.

ТипВеб-сервис
СтатусРаботает и развивается
Роль студииПроектирование, разработка, интеграции, поддержка
ДоступЗакрыт паролем: сервис работает с рабочими данными
Панель сервиса «База цен» со сводкой по позициям и качеству данных

01 О проекте

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

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

02 Задача

Свести разные прайсы к одному каталогу

Главная сложность не в том, чтобы загрузить файлы, а в том, чтобы понять, что две строки из разных прайсов — это один и тот же товар, и при этом не потерять связь с исходной строкой поставщика.

  • 01
    Одинаковые позиции должны находиться. Даже когда названия не совпадают дословно.
  • 02
    Исходник должен сохраняться. Из каталога всегда видно, из какого прайса взята цена.
  • 03
    Сомнительные данные не должны влиять на расчёт. Лучше отложить строку, чем посчитать по ней.

Один товар — десять названий

03 Подход

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

Отдельный слой — качество данных: сервис сам отмечает позиции без размера или материала, подозрительные цены и вероятные дубли.

04 Как устроен продукт

Из чего состоит сервис

  • 01
    Загрузка прайсов. Файлы поставщиков принимаются в привычных форматах и разбираются в единую структуру.
  • 02
    Сопоставление позиций. Строки разных поставщиков связываются в одну позицию каталога.
  • 03
    Качество данных. Позиции без размера, материала или с подозрительной ценой помечаются отдельно.
  • 04
    Каталог и поставщики. Товар, компании и цены видны в одном месте, с переходом к исходной строке.
  • 05
    Подбор цены. По позиции видно, у кого закупка выгоднее с учётом коэффициентов.

Сначала честные данные. Потом расчёты.

05 Продуктовое решение

Соблазн любой такой системы — считать по всему, что загрузили: так цифры выглядят полнее. Но одна строка с ошибкой в единицах измерения способна испортить весь расчёт и подорвать доверие к сервису целиком.

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

06 Разработка и эксплуатация

Что автоматизировано, а что решает человек

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

Решения о спорных совпадениях и о допуске проблемных строк к расчётам остаются за закупщиком: правила сопоставления уточняются по мере появления новых поставщиков.

Сервис работает в контейнерах на нашем сервере. Панель закрыта паролем — она показывает рабочие данные, поэтому в открытом доступе её быть не должно.

Технологии: Python, MySQL, Docker, nginx, Traefik

07 Результат

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

Публичных показателей эффективности мы не приводим — это рабочий инструмент, а не витрина.

Закупка начинается с честного каталога.