Розробка модуля дилерського кабінету 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка модуля дилерського кабінету 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розроблення модуля дилерського кабінету в 1С-Бітрікс

Дилер, який телефонує менеджеру щоб дізнатися статус свого замовлення або попросити вислати рахунок — це дзвінок, який коштує грошей. Помножене на 200 дилерів та 10 замовлень на місяць кожний, отримуємо 2000 ненужних звернень на місяць. Кабінет дилера закриває цей наватаж на менеджерів автоматично.

Що входить в кабінет: мінімальний склад

Кабінет дилера — не вітрина та не CMS-сторінка. Це функціональний інструмент зі своєю логікою доступу та даними, специфічними для кожного партнера. Мінімальний набір розділів:

  • Замовлення — список з фільтрацією за статусом, датою, сумою. Детальна карточка з позиціями, можливістю повтору та скачуванням документів
  • Прайс-лист — актуальний прайс з дилерськими цінами, експорт в Excel
  • Документи — рахунки, товарні накладні, акти звірки з 1С
  • Фінанси — поточний баланс, лімід кредиту, просрочена заборгованість
  • Профіль компанії — реквізити, адреси доставки, контактні особи

Архітектура модуля

Розміщується в local/modules/project.dealer_cabinet/. Модуль реєструє власні компоненти в просторі імен project:

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:

  1. Отримуємо товари каталогу з фільтром за доступними для дилера категоріями
  2. Застосовуємо дилерські ціни з b_catalog_price за CATALOG_GROUP_ID дилера
  3. Застосовуємо контрактні ціни з Highload-блока (якщо є, з пріоритетом)
  4. Генеруємо Excel через PhpSpreadsheet або видаємо CSV

Формат: артикул, назва, одиниця вимірювання, остаток (опціонально), ціна. Файл генеруються на льоту, не кешується — ціни мають бути актуальними на момент запиту. Якщо каталог великий (10К+ позицій) — генеруємо в фоні через агент та даємо посилання на готовий файл.

Фінансовий блок

Дані про кредитний лімід та заборгованість не зберігаються в Бітрікс — вони живуть в 1С. Синхронізація через агент кожні 2 години: викликається REST-сервіс 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.

Права доступу всередині компанії

Всередину однієї дилерської компанії різні користувачі мають різні права. Таблиця b_dealer_user_roles:

Роль Замовлення Документи Фінанси Управління користувачами
owner Всі Всі Так Так
manager Свої Свої Ні Ні
accountant Всі (читання) Всі Так Ні

Перевірка прав — через DealerAccessControl::can($action) перед кожною дією. Централізовано, не в шаблонах.

Часові рамки

Блок Час
Архітектура модуля, ролі та контекст 2-3 тижні
Управління замовленнями 2-3 тижні
Документи та синхронізація з 1С 2-4 тижні
Фінансовий блок 1-2 тижні
Експорт прайса 1-2 тижні
Тестування 2-3 тижні

Разом: 10-17 тижнів. Основна змінна — складність інтеграції з 1С для документів та фінансів.