← Все работы LUMIX 01 / 05

Прайс
из переписки

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

ПрайсСегодняПоставщикиНа проверкеНаценкиКонкуренты admin
Поиск: iPhone 17 Категория: Все ☑ Только актуальные Позиций 2 930Курс $ 81,4 ₽
Пост.НазваниеРегионSIMПамятьЦветКол-воЦена $С наценкойСтатус
S-03iPhone 17 Pro MaxJapaneSIM256GBCosmic Orange241 2851 32511:34
S-03iPhone 17 ProUSAeSIM256GBDeep Blue91 1051 14511:34
S-07iPhone 17 AirUAEeSIM512GBSky Blue411 1901 24011:02
S-01iPhone 16 ProChinaDual128GBBlack Titanium684588510:48
S-04MacBook Pro 14 M4EU16GB/512GBSpace Black31 6901 76009:57
S-07iPad Pro 13 M4HKLTE1TBSilver51 5401 600вчера
S-02Galaxy S26 UltraUAEDual512GBTitanium Gray181 0601 11011:12
S-05AirPods Pro 2UAEWhite6016818210:31
S-06iPhone 17India1 SIM256GBLavender24915страннаяпроверить
Связь с WhatsApp: есть· Последний прайс разобран в 11:34· Ждут проверки: 7· Срез конкурентов: сегодня, 09:20

Так выглядит рабочий экран · цифры для примера, имена поставщиков скрыты

Каждое утро
начиналось
с копипасты

Менеджер открывал семнадцать чатов, выбирал среди болтовни и заказов свежие прайсы и переносил цены в таблицу. Потом — в посты для клиентов. И так каждый день, включая выходные.

Цена ошибки простая: пропустил сообщение — не купил вовремя. Ошибся в цифре — продал дешевле, чем купил сам. А просить два десятка поставщиков писать «правильно и по форме» бесполезно: каждый пишет как привык.

В чём сложность

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

01

Даже один поставщик пишет по-разному

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

02

Ошибаться нельзя

По этим цифрам покупают и продают. Всё подозрительное — цена вдвое ниже рынка, товар без модели, странная скидка — не попадает к клиентам, а откладывается в отдельный список на проверку человеком.

03

Думать — дорого

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

День системы

Она работает по расписанию рынка, а не по расписанию человека. Никто ничего не запускает руками.

с 7:00 Приходят прайсы Поставщики просыпаются в Дубае и начинают писать. Каждое сообщение проверяется, разбирается и попадает в общую таблицу через несколько секунд после отправки.
09:20 Срез по конкурентам Приходят прайсы двух конкурентов, разбираются и встают рядом с нашими ценами в одной таблице.
10:40 и 11:30 Утренние файлы Два раза за утро собирается тот самый документ, который раньше делали руками: список групп и дословные прайсы за сегодня. Второй файл — только то, что дослали после первого.
10:30–16:00 Публикация клиентам Посты в каналах обновляются по мере поступления цен — не пересылаются заново, а редактируются на месте. Вне рабочего окна система молчит, чтобы не будить людей уведомлениями.
17:00 Отсечка Всё, что пришло позже, прайсом на сегодня уже не считается: поздняя цена в утреннем прайсе опаснее, чем её отсутствие. Воскресенье система пропускает целиком.

Что вообще
считать
прайсом

В рабочих группах идёт обычная жизнь: заказы, вопросы, фото, «доброе утро», пересланные сообщения от посторонних. Прайс — меньшинство этого потока, и отличить его нужно до того, как система потратит время и деньги на разбор.

01 Только свои отправители В каждой группе система знает поимённо, кто из участников присылает цены. Сообщение от кого-то другого не разбирается — но и не пропадает: в утреннем файле видно строкой, что оно было.
02 Заказ — не прайс Отдельно распознаются заказы клиентов и обычная переписка: по ним цены не обновляются. Заказом занимается другой бот — он подставляет к строкам закупочные цены.
03 Повтор не считается Если поставщик прислал ровно тот же текст, что и вчера, система не разбирает его заново — просто отмечает, что цены подтверждены.
04 Сомневается — спрашивает Если сообщение похоже на прайс, но уверенности нет, система присылает его в Telegram с двумя кнопками: «разобрать» или «пропустить». Решение человека запоминается.

У каждого
товара
своя наценка

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

01 Ведётся в привычной таблице Наценки правятся в обычном Google-документе, а не в интерфейсе программы: так удобнее тому, кто с ними работает. Система заглядывает в таблицу каждые десять минут и подхватывает правки сама.
02 Наценка — это не прибыль Из надбавки нужно вычесть доставку — она считается по весу товара — и потерю на обмене валюты. Система считает это за вас и не даёт выставить цену, на которой вы фактически теряете деньги.
03 Меняется на ходу Изменили наценку в таблице — цены в каналах обновятся в ближайшее рабочее окно. Ничего не нужно пересчитывать и перевыкладывать вручную.

Два конкурента,
каждый день

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

ТоварКонкурент 1Конкурент 2Наша ценаРешение
iPhone 17 Pro Max 256GB109 900 ₽110 400 ₽109 800 ₽дешевле на 100 ₽
iPhone 17 Air 512GB101 200 ₽101 100 ₽дешевле на 100 ₽
AirPods Pro 215 400 ₽15 600 ₽15 900 ₽ниже — в убыток
Galaxy S26 Ultra 512GB92 700 ₽93 100 ₽92 600 ₽дешевле на 100 ₽

Так выглядит сравнение · цены для примера

01 Правило простое, но с границей Быть дешевле конкурента на сто рублей — пока на позиции остаётся хотя бы три доллара чистыми. Если не остаётся, система не опускает цену: такой заказ выгоднее отдать конкуренту, чем продать себе в убыток.
02 Новые наценки применяются одной кнопкой Система не меняет цены молча. Она показывает готовый расчёт: сколько строк разобрано, сколько нашлось у нас, где цена опустится и на сколько. Владелец смотрит и нажимает «применить» — или не нажимает.
03 Отдельный ежедневный отчёт Позиции, где мы заметно дешевле рынка, уходят отдельным сообщением в Telegram — как готовый аргумент для продажи.

Курс
меняется —
цены тоже

Часть поставщиков считает в долларах, часть — в дирхамах, клиенты платят рублями. Пока курс стоит, разницы не видно; стоит ему сдвинуться — и вчерашняя цена превращается в работу в минус.

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

01 Google-таблица Общий прайс выгружается в лист, с которым привыкли работать: его можно открыть с телефона, отправить, распечатать.
02 Телеграм-каналы и группы Пять отдельных потоков: опт, розница, сравнение цен, срез по конкурентам и рассылка выгодных позиций в личку.
03 Товарные коды учёта Позиции сопоставляются с кодами товаров из складской программы — чтобы прайс и учёт говорили об одном и том же товаре.
04 Два бота для людей Один отвечает на вопрос «сколько стоит» за секунду, второй берёт заказ клиента и подставляет к нему закупку.

Работает
без выходных

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

После этого надзор переписали: теперь система следит не за тем, что она запущена, а за тем, что она действительно работает.

01 Напоминает, пока не починишь Об обрыве связи приходит не одно уведомление, а повторяющееся — и отдельное сообщение о том, что всё восстановилось.
02 Замечает тишину Отдельная проверка следит не за связью, а за смыслом: если в рабочее время прайсы почему-то не приходят, об этом сообщают, даже когда формально всё «в порядке».
03 Догоняет пропущенное После любого простоя система сама вычитывает сообщения за весь рабочий день и разбирает то, что пропустила. Прайс не теряется из-за перезагрузки сервера.
04 Хранит копии База копируется по расписанию, сообщения поставщиков сохраняются в исходном виде — к любому дню можно вернуться и пересобрать прайс заново.

Что изменилось

Утро освободилось полностью. Прайс собирается сам, сравнивается с рынком сам и попадает к клиентам сам — а человек занимается закупкой, а не переписыванием цифр.

17 поставщиков читаются автоматически, без единой просьбы поменять формат
2 конкурента сравниваются ежедневно, а новые цены применяются одной кнопкой
1 326 позиций со своей наценкой, которая обновляется сама
5 каналов обновляются без участия человека

Чем сделано: Node.js, SQLite, Claude, Express, Google Sheets, Telegram.
27 240 строк кода · работает каждый день с апреля 2026 · моя роль: архитектура, разработка, поддержка.

← Все работы