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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка особистого кабінету на Vue.js для 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

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

Особистий кабінет — розділ, де SEO не важливий, але важливі швидкість і зручність. Це ідеальний кандидат для переведення на Vue SPA: навігація без перезавантажень, миттєвий зворотний зв'язок на дії, можливість push-сповіщень.

Структура особистого кабінету

Типові розділи ОК в інтернет-магазині на Бітрікс:

  • Історія замовлень — список з b_sale_order + деталізація по b_sale_order_props, b_sale_basket
  • Профіль — дані з b_user, додаткові поля з b_uts_user або властивостей користувача
  • Адресна книга — місцезнаходження з b_sale_location, кастомні адреси
  • Обране — кастомна таблиця або b_iblock_element_property з типом «користувач»
  • Бонусна програма — дані з модуля loyalty або кастомних таблиць

Ініціалізація: передача даних користувача

Бітрікс сервер передає дані авторизованого користувача при завантаженні сторінки ОК:

// У шаблоні розділу /personal/
if (!$USER->IsAuthorized()) {
    LocalRedirect('/auth/?backurl=/personal/');
}

$currentUser = [
    'id' => $USER->GetID(),
    'name' => $USER->GetFullName(),
    'email' => $USER->GetEmail(),
    'groups' => $USER->GetUserGroupArray(),
];

echo '<div id="lk-app" data-user="' . htmlspecialchars(json_encode($currentUser)) . '"></div>';

Vue зчитує з dataset.user, ініціалізує auth store без додаткового запиту.

API для розділів ОК

Кожен розділ — окремий контролер:

// Контролер замовлень
class OrderController extends \Bitrix\Main\Engine\Controller
{
    public function listAction(int $page = 1): array
    {
        $userId = $this->getCurrentUser()->getId();
        // Вибірка з b_sale_order WHERE USER_ID = $userId
        // LIMIT 10 OFFSET ($page-1)*10
    }

    public function detailAction(int $orderId): array
    {
        // Перевірка належності замовлення поточному користувачу — обов'язково
        $order = \Bitrix\Sale\Order::load($orderId);
        if ($order->getUserId() !== $this->getCurrentUser()->getId()) {
            throw new \Bitrix\Main\AccessDeniedException();
        }
    }
}

Перевірка належності — критично важлива, без неї існує IDOR-вразливість.

Навігація через Vue Router

const routes = [
    { path: '/personal/', component: Dashboard },
    { path: '/personal/orders/', component: OrderList },
    { path: '/personal/orders/:id/', component: OrderDetail },
    { path: '/personal/profile/', component: ProfileEdit },
    { path: '/personal/wishlist/', component: Wishlist },
];

Бітрікс налаштовується на віддачу одного шаблону для всіх URL /personal/*.

Приклад із практики

Дистриб'ютор промислового обладнання: ОК з 6 розділами, включно з керуванням дочірніми акаунтами (менеджер бачить замовлення своїх клієнтів) і документообігом (завантаження рахунків, актів у PDF). Стандартний Бітрікс-ОК на серверних компонентах: кожен перехід — нове завантаження сторінки за 1,5–3 сек. Vue SPA: переходи між розділами миттєві, дані кешуються в Pinia на 5 хвилин, PDF-генерація через background job зі сповіщенням через polling.

Терміни виконання

Масштаб Термін
Базовий ОК (замовлення, профіль, адреси) від 8 до 12 робочих днів
З бонусною програмою та обраним від 12 до 18 робочих днів
B2B ОК з дочірніми акаунтами і документообігом від 25 до 40 робочих днів