Інтеграція 1С-Бітрікс з Google Looker Studio

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

Google Looker Studio (раніше Google Data Studio) — це інструмент візуалізації даних, який будує дашборди з різних джерел. Дані з Бітрикса можна передати у Looker Studio трьома способами: через Google Sheets як проміжний шар, через BigQuery або через користувацький коннектор. Вибір залежить від обсягу даних та частоти оновлення.

Архітектура передачі даних

Схема 1 — через Google Sheets (для невеликих обсягів):

Бітрікс → PHP-агент → Google Sheets API → Looker Studio

Підходить для 5 000–50 000 рядків, оновлення раз на кілька годин. Найшвидший шлях до дашборду без складної інфраструктури.

Схема 2 — через BigQuery (для великих обсягів):

Бітрікс → PHP-агент → BigQuery API → Looker Studio

BigQuery оптимальний при мільйонах рядків (історія замовлень протягом кількох років, события аналітики поведінки). Looker Studio має вбудований коннектор до BigQuery.

Схема 3 — користувацький коннектор Looker Studio:

Looker Studio → REST API Бітрикса → Looker Studio

Looker Studio запитує дані напряму з API за розписанням. Не потребує проміжних сховищ, але навантажує сервер Бітрикса при частих запитах.

Реалізація через Google Sheets

Найбільш практичний варіант для e-commerce проектів. Google Sheets API приймає дані через OAuth 2.0 сервісний аккаунт.

Крок 1. Створюємо сервісний аккаунт в Google Cloud Console, завантажуємо JSON з ключами, надаємо доступ до потрібної таблиці.

Крок 2. Встановлюємо бібліотеку через Composer або підключаємо вручну:

composer require google/apiclient

Крок 3. Агент Бітрикса збирає дані й відправляє в Sheets:

function syncOrdersToSheetsAgent(): string
{
    $ordersData = collectOrdersData(); // масив даних з b_sale_order
    updateGoogleSheet(SHEETS_SPREADSHEET_ID, 'Замовлення!A1', $ordersData);
    return __FUNCTION__ . '();';
}

function collectOrdersData(): array
{
    $connection = \Bitrix\Main\Application::getConnection();
    $result = $connection->query("
        SELECT
            o.ID,
            o.DATE_INSERT,
            o.PRICE,
            o.CURRENCY,
            o.STATUS_ID,
            o.USER_ID,
            u.LOGIN,
            u.EMAIL
        FROM b_sale_order o
        LEFT JOIN b_user u ON u.ID = o.USER_ID
        WHERE o.DATE_INSERT >= DATE_SUB(NOW(), INTERVAL 90 DAY)
        ORDER BY o.DATE_INSERT DESC
        LIMIT 10000
    ");

    $rows = [['ID', 'Дата', 'Сума', 'Валюта', 'Статус', 'ID клієнта', 'Логін', 'Email']];
    while ($row = $result->fetch()) {
        $rows[] = array_values($row);
    }
    return $rows;
}

function updateGoogleSheet(string $spreadsheetId, string $range, array $data): void
{
    $client = new \Google\Client();
    $client->setAuthConfig(APPLICATION_ROOT . '/local/config/google-service-account.json');
    $client->addScope(\Google\Service\Sheets::SPREADSHEETS);

    $service   = new \Google\Service\Sheets($client);
    $body      = new \Google\Service\Sheets\ValueRange(['values' => $data]);
    $params    = ['valueInputOption' => 'USER_ENTERED'];

    $service->spreadsheets_values->update($spreadsheetId, $range, $body, $params);
}

Структура даних для типових дашбордів

Для e-commerce дашборду в Looker Studio зазвичай потрібні такі листи в Google Sheets:

Лист Джерело в Бітриксі Таблиці
Замовлення Список замовлень з сумами b_sale_order
Товари в замовленнях Склад замовлень b_sale_basket
Клієнти Дані покупців b_user, b_sale_order
Джерела трафіку UTM-мітки b_sale_order (поле REASON_MARKED)
Скасування та повернення Статуси замовлень b_sale_order, b_sale_status

Для CRM-дашборду:

Лист Джерело Таблиці
Угоди CRM угоди b_crm_deal
Воронка Стадії угод b_crm_deal, b_crm_status
Активності Дзвінки, листи b_crm_activity

Налаштування Looker Studio

  1. Відкрийте lookerstudio.google.com → створіть джерело даних
  2. Виберіть коннектор Google Sheets
  3. Вкажіть таблицю й лист з даними Бітрикса
  4. Looker Studio визначить типи стовпців: числа, текст, дати
  5. Створіть звіт з потрібними діаграмами

Важливі налаштування в Looker Studio:

  • Поле дати (DATE_INSERT) повинно мати тип "Дата і час" — Looker Studio автоматично визначить, якщо формат YYYY-MM-DD HH:MM:SS
  • Поле суми (PRICE) — тип "Число", формат "Валюта"
  • Для агрегації за періодами додайте обчислюване поле DATE_TRUNC(DATE_INSERT, MONTH)

Автоматичне оновлення даних

Агент Бітрикса запускається за розписанням:

// Реєстрація агента в init.php або встановленні модуля
\CAgent::AddAgent(
    'syncOrdersToSheetsAgent();',
    'my_analytics',
    'N',
    3600,            // кожну годину
    '',
    'Y',
    \ConvertTimeStamp(time() + 3600, 'FULL')
);

При інкрементальному оновленні (тільки нові дані) додайте в запит WHERE o.DATE_INSERT >= ? з датою останньої синхронізації, збереженою в b_option.

Безпека

JSON-ключ сервісного аккаунта — конфіденційний файл. Зберігати в /local/config/ з заборогою на HTTP-доступ через .htaccess:

<Files "google-service-account.json">
    Deny from all
</Files>

В Google Cloud Console обмежте права сервісного аккаунта: тільки roles/sheets.editor на конкретну таблицю, не на весь проект.

Терміни реалізації

Варіант Склад Термін
Один лист (замовлення за 90 днів) Агент + Sheets API + базовий дашборд 1–2 дні
Повний e-commerce дашборд (5–7 листів) Кілька агентів + трансформація даних 3–5 днів
Історичні дані + BigQuery Первинне завантаження + інкрементальна синхронізація 1–2 тижні