Завдання
Оптові клієнти виробника надсилали замовлення різними шляхами: через сайт і через месенджери. Далі кожне замовлення проходило довгий ланцюжок: перевірка, комплектування, звірка, документи і контроль оплат.
Найскладніше місце в цьому процесі - вага. М'ясна продукція комплектується з фактичною вагою, яка відрізняється від замовленої, тому сума рахунку змінюється вже після збору замовлення. Це треба врахувати в документах і у взаєморозрахунках з клієнтом.
Окремо стояла задача зі структурою клієнтів. Один оптовий покупець може мати кілька точок доставки, кілька логінів для своїх працівників і кілька юридичних осіб, на які виставляються рахунки. Звичайна схема «один клієнт - один акаунт» тут не працює.
Клієнтам також потрібен був власний кабінет: переглянути каталог, оформити замовлення, побачити рахунок, фінанси й поточний борг без дзвінків менеджеру. При цьому кабінет працює з фінансовими даними, тому вимоги до безпеки входу й зберігання даних були високими.
Що ми зробили
«Гуртом» ми побудували на основі CRM для маркетплейсів, яку раніше зробили для цього ж виробника. Той самий стек (Next.js 16, React 19, Tailwind CSS v4, Supabase, Vercel), готові сповіщення, ролі й логіка етапів дали змогу не починати з нуля. Тому першу робочу версію з усіма модулями, мобільною версією і кабінетом клієнта ми зібрали за одну нічну робочу сесію, приблизно за 3 години.
CRM для команди (19 екранів)
- замовлення з рахунком і етапами обробки;
- клієнти з точками доставки, кількома логінами та кількома юрособами;
- товари, ціни й акції;
- аналітика, інтеграції, користувачі;
- ролі адміністратора, менеджера й оператора.
Кабінет оптового клієнта (9 екранів)
Каталог, кошик, замовлення, рахунок, фінанси й борг, профіль. Кабінет не має власної бази даних і працює лише через API CRM, тож дані завжди одні й ті самі.
Безпека
- токен входу прив'язаний до версії пароля: після скидання пароля всі сесії одразу завершуються;
- ліміти на підбір пароля за логіном і за IP-адресою;
- дані лежать у закритій схемі, недоступній через публічне API, доступ лише через серверні функції;
- щоденний бекап о 01:30, зберігаються 30 останніх знімків.
Результат
У жовтні 2026 виробник отримав дві пов'язані системи: CRM на 19 екранів для команди і кабінет на 9 екранів для оптових клієнтів. Замовлення з сайту більше не губляться між месенджерами, а рахунок, фактична вага, документи й борг видно в одній картці.
Що це дає бізнесу:
- клієнт сам бачить свої замовлення, рахунки й заборгованість;
- менеджер працює з усією структурою клієнта: точками, логінами, юрособами;
- ціни й акції налаштовуються в одному місці;
- дані захищені на рівні архітектури, а не лише паролем.
Наступний етап, який ми плануємо, - синхронізація з 1С (BAF), щоб документи й взаєморозрахунки не дублювались в обліковій системі.
Чим проєкт особливий
Головна особливість - швидкість без втрати якості. Перша версія з'явилась приблизно за 3 години не тому, що ми спростили задачу, а тому, що повторно використали перевірені частини попередньої CRM: ролі, сповіщення, етапи. Для бізнесу це означає, що кожен наступний продукт на спільній основі обходиться швидше.
Друга особливість - кабінет клієнта без власної бази. Усі дані проходять через API CRM, тож немає ризику, що в кабінеті й у менеджера різні цифри. А закрита схема даних і прив'язка сесій до версії пароля закривають типові слабкі місця клієнтських порталів.
Опубліковано: · Оновлено: