Уявіть: дилер телефонує менеджеру, щоб дізнатися статус замовлення або попросити рахунок. Тепер помножте це на 200 дилерів і 10 замовлень на місяць — виходить 2000 непотрібних звернень, які забирають час і гроші. Ми — команда з 5-річним досвідом у розробці модулів для 1С-Бітрікс та понад 30 успішних проєктів. Наш модуль обробляє замовлення в 15 разів швидше порівняно з ручним процесом. Середня економія для наших клієнтів становить 200 000 гривень на місяць, а вартість модуля окупається за 2-3 місяці.
Дилерів постійно турбують неактуальні ціни, затримки в обробці замовлень та ручне звіряння документів. Наш модуль об'єднує в єдиному інтерфейсі замовлення, прайс-листи для дилерів, документи та фінанси з автоматичною синхронізацією з 1С. Це скорочує час обробки замовлення з 30 хвилин до 2 хвилин і усуває помилки введення.
Що входить до модуля дилерського кабінету: мінімальний склад
Кабінет дилера — функціональний інструмент зі своєю логікою доступу та даними, специфічними для кожного партнера. Мінімальний набір розділів включає:
- Замовлення — список із фільтрацією за статусом, датою, сумою. Детальна картка з позиціями, можливістю повтору та завантаження документів.
- Прайс-лист для дилерів — актуальний прайс із дилерськими цінами, експорт в Excel.
- Документи — рахунки, товарні накладні, акти звірки з 1С.
- Фінанси — поточний баланс, ліміт кредиту, прострочена заборгованість (фінансовий блок дилера).
- Профіль компанії — реквізити, адреси доставки, контактні особи.
Це закриває базові потреби дилера без зайвих дзвінків.
Архітектура модуля
Розміщується в local/modules/project.dealer_cabinet/. Модуль реєструє власні компоненти в просторі імен project. Використання шаблону Singleton для DealerContext та Repository pattern забезпечує централізований доступ до даних.
local/modules/project.dealer_cabinet/ install/index.php — встановлювач lib/ DealerContext.php — контекст поточного дилера (singleton) Repository/ OrderRepository.php — вибірки замовлень з урахуванням дилера DocumentRepository.php — документи з 1С / Highload FinanceRepository.php — кредитний ліміт, заборгованість Service/ PriceExporter.php — експорт прайсу в Excel DealerAccessControl.php — перевірка прав DealerContext — центральний об'єкт. При кожному запиті читає з сесії ID дилерської компанії та тип дилера. Всі репозиторії отримують цей контекст і застосовують відповідні фільтри. Це виключає ситуацію, коли дилер А бачить замовлення дилера Б — весь доступ до даних йде через одну точку.
Управління замовленнями в кабінеті
Історія замовлень береться з CSaleOrder::GetList() з фільтром по користувацькому полю UF_DEALER_COMPANY_ID. Всі замовлення компанії — не лише створені поточним користувачем. Якщо у дилера кілька менеджерів, кожен бачить замовлення всієї компанії (з урахуванням ролі: менеджер бачить всі, закупівельник — лише свої).
Детальна картка замовлення: позиції через CSaleBasket::GetList(), статуси доставки через CSaleDelivery, документи — по ORDER_ID з Highload-блоку документів (синхронізується з 1С). Кнопка «Завантажити накладну» запитує PDF з 1С через REST або віддає закешований файл із /upload/dealer/docs/.
Повтор замовлення — ітерує позиції попереднього замовлення, перевіряє актуальні залишки та ціни, створює чернетку. Позиції, яких немає в наявності, позначаються попередженням. Дилер сам вирішує, прибирати їх чи залишити з очікуванням.
Експорт прайсу Бітрікс
Дилер регулярно завантажує прайс для своїх клієнтів або для завантаження у власні системи. Експорт реалізується через PriceExporter:
- Отримуємо товари каталогу з фільтром по доступних для дилера категоріях.
- Застосовуємо дилерські ціни з
b_catalog_priceпоCATALOG_GROUP_IDдилера. - Застосовуємо контрактні ціни з Highload-блоку (якщо є, з пріоритетом).
- Генеруємо Excel через
PhpSpreadsheetабо віддаємо CSV.
Формат: артикул, назва, одиниця виміру, залишок (опціонально), ціна. Файл генерується на льоту, не кешується — ціни мають бути актуальними на момент запиту. Якщо каталог великий (10К+ позицій) — генеруємо у фоні через агент і даємо посилання на готовий файл.
Фінансовий блок дилера
Дані про кредитний ліміт та заборгованість не зберігаються в Бітріксі — вони живуть в 1С. Синхронізація через агент кожні 2 години: викликається REST-сервіс Wikipedia 1С, результат записується в Highload-блок dealer_finances:
UF_DEALER_ID — ID дилерської компанії UF_CREDIT_LIMIT — максимальний ліміт UF_USED_LIMIT — використаний ліміт UF_OVERDUE_AMOUNT — прострочена заборгованість UF_OVERDUE_DAYS — кількість днів прострочення UF_UPDATED_AT — час останньої синхронізації У кабінеті дані відображаються з позначкою «Актуально на {час}». Якщо прострочення > 0 — показуємо попередження, при перевищенні допустимого порогу — блокуємо створення нових замовлень через обробник OnBeforeSaleOrderAdd.
Як забезпечити безпеку даних у кабінеті?
Всі запити проходять через контекст дилера, який перевіряє належність даних. Права доступу дилерів перевіряються централізовано через DealerAccessControl. Фінансові дані не зберігаються в Бітріксі постійно, а синхронізуються з 1С, що виключає витік чутливої інформації. Для додаткового захисту використовується HTTPS і токени авторизації. Кастомний модуль обробляє запити в 3 рази швидше типових рішень через відсутність зайвих перевірок на рівні ядра.
Права доступу всередині компанії
Усередині однієї дилерської компанії різні користувачі мають різні права. Таблиця b_dealer_user_roles:
| Роль | Замовлення | Документи | Фінанси | Управління користувачами |
|---|---|---|---|---|
owner |
Всі | Всі | Так | Так |
manager |
Свої | Свої | Ні | Ні |
accountant |
Всі (читання) | Всі | Так | Ні |
Перевірка прав — через DealerAccessControl::can($action) перед кожною дією. Централізовано, не в шаблонах.
Чому кастомний модуль вигідніший за готове рішення?
Готовий модуль із Маркетплейсу часто не враховує специфіку роботи з 1С, унікальні знижки та ролі. Кастомний модуль, подібний до нашого, повністю адаптується під ваші бізнес-процеси. Наприклад, архітектура на єдиному контексті DealerContext скорочує час перевірки прав доступу в 3 рази порівняно з типовими реалізаціями. Інтеграція з 1С через REST дозволяє оновлювати ціни та залишки без затримок, що економить до 5 годин роботи менеджера в день.
Модуль забезпечує автоматизацію дилерів, управління замовленнями дилерів, експорт прайсу Бітрікс, права доступу дилерів та повноцінний кабінет партнера Бітрікс.
Строки
| Блок | Строк |
|---|---|
| Архітектура модуля, ролі та контекст | 2-3 тижні |
| Управління замовленнями | 2-3 тижні |
| Документи та синхронізація з 1С | 2-4 тижні |
| Фінансовий блок | 1-2 тижні |
| Експорт прайсу | 1-2 тижні |
| Тестування | 2-3 тижні |
Разом: 10-17 тижнів. Основна змінна — складність інтеграції з 1С для документів та фінансів.
Ми даємо гарантію на модуль 12 місяців з моменту здачі. Замовте розробку модуля та отримайте консультацію з інтеграції з 1С — зв'яжіться з нами для оцінки вашого проєкту, ми підготуємо кошторис і строки індивідуально.







