03 / Веб-сервис
База цен
Сводит прайсы поставщиков в один каталог и показывает, где закупка выгоднее.

01 О проекте
Поставщики присылают прайсы в том виде, в каком им удобно: разные форматы файлов, разные единицы, разные названия одного и того же товара. Один и тот же фитинг у трёх компаний называется по-разному, а иногда по-разному даже внутри одного файла.
Пока прайсов немного, закупщик держит это в голове и сводит таблицы руками. Когда поставщиков больше тысячи, ручное сравнение перестаёт работать.
02 Задача
Свести разные прайсы к одному каталогу
Главная сложность не в том, чтобы загрузить файлы, а в том, чтобы понять, что две строки из разных прайсов — это один и тот же товар, и при этом не потерять связь с исходной строкой поставщика.
- 01Одинаковые позиции должны находиться. Даже когда названия не совпадают дословно.
- 02Исходник должен сохраняться. Из каталога всегда видно, из какого прайса взята цена.
- 03Сомнительные данные не должны влиять на расчёт. Лучше отложить строку, чем посчитать по ней.
Один товар — десять названий
03 Подход
Прайсы принимаются как есть и приводятся к единой структуре: позиция, поставщик, цена, характеристики. Дальше сервис связывает позиции разных поставщиков между собой и показывает их одной строкой каталога.
Отдельный слой — качество данных: сервис сам отмечает позиции без размера или материала, подозрительные цены и вероятные дубли.
04 Как устроен продукт
Из чего состоит сервис
- 01Загрузка прайсов. Файлы поставщиков принимаются в привычных форматах и разбираются в единую структуру.
- 02Сопоставление позиций. Строки разных поставщиков связываются в одну позицию каталога.
- 03Качество данных. Позиции без размера, материала или с подозрительной ценой помечаются отдельно.
- 04Каталог и поставщики. Товар, компании и цены видны в одном месте, с переходом к исходной строке.
- 05Подбор цены. По позиции видно, у кого закупка выгоднее с учётом коэффициентов.
Сначала честные данные. Потом расчёты.
05 Продуктовое решение
Соблазн любой такой системы — считать по всему, что загрузили: так цифры выглядят полнее. Но одна строка с ошибкой в единицах измерения способна испортить весь расчёт и подорвать доверие к сервису целиком.
Поэтому позиции, требующие проверки, в подборе цены не участвуют, пока человек их не допустит. Сервис прямо говорит, сколько таких строк и почему они отложены.
06 Разработка и эксплуатация
Что автоматизировано, а что решает человек
Разбор прайсов, сопоставление позиций и проверки качества данных выполняются автоматически при загрузке. Сервис ведёт учёт поставщиков и отмечает, кто давно не присылал обновлений.
Решения о спорных совпадениях и о допуске проблемных строк к расчётам остаются за закупщиком: правила сопоставления уточняются по мере появления новых поставщиков.
Сервис работает в контейнерах на нашем сервере. Панель закрыта паролем — она показывает рабочие данные, поэтому в открытом доступе её быть не должно.
Технологии: Python, MySQL, Docker, nginx, Traefik
07 Результат
Сервис работает и развивается: ручное сведение таблиц заменено одним каталогом, где видно, у кого позиция дешевле, и какие данные требуют проверки.
Публичных показателей эффективности мы не приводим — это рабочий инструмент, а не витрина.
Закупка начинается с честного каталога.