Розробка B2B-портала
B2B-портал — закрита веб-платформа для роботи з корпоративними клієнтами: оптові замовлення, управління договорами, спільна робота з документами, особисті кабінети юридичних осіб. Ключова відмінність від B2C — багаторівневе ціноутворення, складна ієрархія користувачів всередині однієї компанії та інтеграція з обліковими системами (1С, SAP).
Аутентифікація та ієрархія користувачів
У B2B акаунт належить компанії (організації), а не фізичній особі. Всередині компанії — кілька користувачів з різними ролями:
Organization: ООО "Технопром"
├── Director (owner) — повний доступ
├── Buyer — замовлення, перегляд цін
├── Accountant — рахунки, акти, фінанси
└── Viewer — тільки перегляд каталогу
Запрошення співробітника: директор вводить email → співробітник отримує invite-посилання → встановлює пароль → призначається роль.
Реалізація: RBAC (Role-Based Access Control) на рівні маршрутів та об'єктів. Spatie Laravel Permission або Casbin для Node.js.
Договірне ціноутворення
Індивідуальні прайс-листи — ключова функція B2B-портала. У кожного клієнта може бути своя ціна на кожну позицію або групу позицій. Структура даних:
-- Прайс-лист привязан до організації
CREATE TABLE price_lists (id, organization_id, name, valid_from, valid_to);
-- Правила: для конкретного товару або категорії
CREATE TABLE price_list_rules (
price_list_id, product_id, category_id,
price_type ENUM('fixed', 'discount_percent', 'multiplier'),
value DECIMAL
);
Розрахунок ціни: спочатку ищется правило для конкретного товару, потім для категорії, потім застосовується базова ціна.
Оптові замовлення та мінімальні суми
B2B-замовлення, як правило, більші та складніші за роздрібні:
- Мінімальна сума замовлення (MOQ)
- Замовлення по каталожним одиницям з вагомими / упаковочними коефіцієнтами
- Відкладені замовлення (pre-order з датою поставки)
- Швидке додавання по SKU (bulk add form)
- Шаблони замовлень — зберегти список товарів для повторного замовлення
Документообіг
Після оформлення замовлення автоматично генеруються документи:
- Рахунок на оплату (PDF) — реквізити платформи + рядки замовлення
- УПД/накладна — після відправки
- Акт звірки — за період
Генерація PDF: wkhtmltopdf, puppeteer, dompdf (PHP), @react-pdf/renderer (Node.js). Шаблони документів зберігаються у БД, заповнюються даними замовлення.
Інтеграція з 1С
Більшість B2B-клієнтів ведуть облік у 1С. Інтеграція через:
- 1С REST API (HTTP-сервіси на платформі 1С 8.3+)
- Двостороння синхронізація: остатки та ціни з 1С → портал; замовлення з портала → 1С
Періодичність оновлення остатків: від realtime (через 1С-сповіщення) до раз на годину (cron). Для критичних остатків — резервування при створенні замовлення через чергу.
Особистий кабінет організації
Розділи ЛК:
- Дашборд — оборот за період, статуси замовлень, баланс
- Замовлення — історія, статуси, відслідкування
- Документи — рахунки, УПД, акти (завантажити PDF, запросити оригінал)
- Справочники — адреси доставки, контактні особи
- Користувачі — управління співробітниками та ролями
- Кредитний ліміт — поточний борг, ліміт, історія транзакцій
Технічний стек
| Слой | Технології |
|---|---|
| Backend | Laravel / Django / Spring Boot |
| Frontend | React + Next.js / Vue + Nuxt |
| API | REST + WebSocket для повідомлень |
| БД | PostgreSQL з row-level security |
| Інтеграції | 1С REST API, ERP WebServices |
| Документи | Puppeteer / dompdf |
Терміни
MVP B2B-портала (каталог з індивідуальними цінами, оформлення замовлень, особистий кабінет компанії, генерація рахунків): 3–4 місяці. З інтеграцією 1С, документообігом та розширеною аналітикою: 5–8 місяців.







