TL; DR
- Реселлер техники Apple на маркетплейсах разбирал прайсы поставщиков из телеграм-каналов руками — и руками же обновлял каталог.
- Построил систему: она срабатывает в момент выхода прайса, парсит сразу 10 телеграм-чатов, сопоставляет позиции с каталогом, выбирает оптимальную цену по алгоритму и прописывает её в каталог.
- Цены обновляются сразу после выхода прайсов и без ошибок — аномальные значения отсекает встроенный контроль.
Контекст
Клиент — реселлер техники Apple, торгует на маркетплейсах. Закупочные цены живут в телеграм-каналах поставщиков: каждый публикует прайс в своём формате и в своё время. Чтобы каталог отражал актуальную закупку, прайсы приходилось разбирать вручную — заметить свежий, понять, каким позициям каталога соответствуют строки, и внести новые цены.
Проблема
Болей две, и вторая серьёзнее первой.
Первая — рутина. Прайсы выходят, когда выходят; человек должен их заметить, разобрать и перенести в каталог. Пока он этого не сделал, каталог живёт по старым ценам.
Вторая — цена ошибки. На маркетплейсе ошибка в цене — особенно на порядок, и неважно, ручная она или программная — это не опечатка, которую можно молча поправить: товар по этой цене могут заказать, и продавать придётся по ней. Поэтому «просто автоматизировать перенос» мало — автоматике нужен контроль строже человеческого.
Подход
- Мониторинг вместо дежурства. Система следит за телеграм-каналами поставщиков и срабатывает в момент, когда выходит новый прайс. Парсятся сразу 10 чатов — все источники в одном контуре.
- Сопоставление позиций с каталогом. У разных поставщиков одна и та же позиция написана по-разному. Система приводит строки прайсов к единому виду и для каждой находит соответствующий товар в каталоге клиента.
- Выбор оптимальной цены. Когда позиция есть у нескольких поставщиков, алгоритм выбирает оптимальную цену и прописывает её в каталог — между прайсом и витриной не остаётся ручного шага.
- Контроль ошибок. Встроенная защита от аномальных цен: подозрительное значение — в том числе ошибка на порядок — не уходит в каталог автоматически. Это страховка и от ошибок в прайсах поставщиков, и от ошибок самой системы.
- Итоговый калькулятор. Всё собранное — прайсы, сопоставления, выбранные цены — сводится в единый калькулятор, рабочий инструмент поверх всей системы.
Результат
- Цены в каталоге обновляются сразу после выхода прайсов — рук в процессе больше нет.
- Без ошибок: аномальные цены отлавливаются до того, как попадут в каталог. Риск «продать на порядок дешевле» закрыт системно, а не внимательностью человека.
- Десять телеграм-каналов поставщиков разбираются одной системой — с сопоставлением позиций, которые у каждого поставщика написаны по-своему.
Что бы сделал иначе
Сопоставление позиций — та часть, которую легче всего недооценить. Кажется, что главное — парсинг и алгоритм выбора цены, но именно соответствие «строка прайса → товар каталога» определяет, можно ли системе доверять. Сейчас бы начинал проект с этого слоя и сразу закладывал процесс пополнения соответствий: поставщики пишут позиции по-разному, и новые написания будут появляться вместе с новыми прайсами.