shipmint.

Кейс

·

B2B, FMCG, Дистрибуция

·

5 минут вместо 3 часов

Граф-база данных для дистрибьютора: с 3 часов до 5 минут на обработку прайса

Дистрибьютор алкогольной продукции тратил 3 часа в день на ручное сопоставление прайс-листов трёх поставщиков. Один называл товар «Johnnie Walker Red 0.7», другой — «Дж.Уокер Рэд Лейбл 700мл». Мы заменили ручной труд системой, которая всё делает сама.

5 мин

Время обработки прайса

3 часа

Ранее занимало

95%+

Точность сопоставления

3+

Поставщиков поддержано

Задача

Дистрибьютор получал прайс-листы от трёх поставщиков в произвольных форматах Excel и CSV. Каждый называл одни и те же товары по-разному: разные транслитерации брендов, разные единицы объёма, разная структура таблицы. Ручное сопоставление занимало 3 часа ежедневно и давало ошибки в итоговой матрице цен.

Решение

Построили систему, которая принимает прайс прямо из Telegram-чата поставщика, автоматически разбирает любой Excel или CSV, приводит все названия к единому виду и выгружает готовую матрицу цен в Google Sheets. Система сама понимает, что «Johnnie Walker Red», «JW Red» и «Дж.Уокер Рэд» — это один товар, и объединяет их в одну строку. Добавление нового поставщика не требует перенастройки — система гибко адаптируется к новому формату.

Стек

PythonNeo4jTelegram Bot APIpandasGoogle Sheets APIDocker

Как мы это сделали

  1. 1

    Интервью и картирование процесса

    Провели сессии с командой, зафиксировали все форматы прайсов, типичные ошибки сопоставления и требования к итоговой матрице цен.

  2. 2

    База данных связей

    Спроектировали базу, в которой каждый товар, бренд и поставщик связаны между собой. Добавление нового поставщика — это просто новое соединение в базе, без переписывания логики.

  3. 3

    Умный разбор файлов

    Система автоматически разбирает любой Excel или CSV: сама находит нужные колонки с названием товара, ценой и объёмом. Без шаблонов и ручной настройки под каждый формат.

  4. 4

    Унификация названий

    Система обучена понимать, что «Johnnie Walker Red», «JW Red» и «Дж.Уокер Рэд» — это один товар. Каждая позиция получает единое каноническое название независимо от того, как её назвал поставщик.

  5. 5

    Telegram-бот + Google Sheets

    Поставщик кидает файл в группу, как обычно → система обрабатывает → матрица цен обновляется в Google Sheets автоматически. Никаких новых привычек для команды.

Результаты

  • Время обработки прайса: с 3 часов до 5 минут (автоматически)
  • Точность сопоставления позиций: 95%+ — система сама разбирается в разных названиях
  • Поддержка 3+ поставщиков с произвольными форматами Excel и CSV
  • Telegram-бот принимает прайсы напрямую из чата — никакого ручного скачивания

Частые вопросы

Почему не обычная таблица или Excel-макрос?

Excel-макрос ломается при малейшем изменении формата файла. Наша система понимает смысл данных, а не просто считывает фиксированные колонки. Когда поставщик меняет структуру таблицы — система адаптируется сама, без ручного вмешательства.

Как система справляется с разными форматами Excel?

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

Как система понимает, что разные названия — это один товар?

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

Можно ли добавить нового поставщика?

Да, система спроектирована именно для этого. Новый поставщик добавляется в базу, его прайс обрабатывается тем же образом. Если появляются новые варианты написания брендов — они добавляются в словарь соответствий. Изменения в коде не нужны.

Зачем Telegram-бот, а не загрузка файлов через сайт?

Потому что поставщики уже работают в Telegram и отправляют файлы туда. Бот встраивается в существующий рабочий процесс: поставщик кидает прайс в группу, как обычно — система автоматически его обрабатывает. Никакого переобучения команды не нужно.

Хотите похожий результат?

Расскажите о вашем проекте — обсудим первый шаг.

Обсудить проект