Разработка модуля аналитики для администратора 1С-Битрикс
Стандартная административная панель Битрикс показывает статистику заказов в модуле sale и посещаемость через statistic, но это разрозненные данные без сводного взгляда. Директор магазина хочет видеть одним взглядом: выручку за сегодня vs вчера, топ товаров за неделю, конверсию корзины, причины отмены заказов и динамику среднего чека. Собрать это из стандартных отчётов вручную — 30 минут каждое утро. Модуль аналитики превращает это в 30 секунд.
Источники данных и агрегация
Данные для аналитики разбросаны по нескольким таблицам:
| Метрика | Таблица |
|---|---|
| Заказы, выручка | b_sale_order |
| Состав заказов | b_sale_basket |
| Статусы оплаты | b_sale_pay_system_action, b_sale_order_payment |
| Причины отмены | b_sale_order_change |
| Остатки | b_catalog_store_product |
| Просмотры товаров | кастомный лог или Яндекс.Метрика API |
Прямые запросы к этим таблицам в реальном времени для дашборда — плохая идея: b_sale_order на активном магазине содержит миллионы записей. Решение — агрегационные таблицы, которые пересчитываются ночью и при необходимости инкрементально.
-- Дневные агрегаты
CREATE TABLE myvendor_analytics_daily (
date DATE NOT NULL,
orders INT DEFAULT 0,
revenue DECIMAL(14,2) DEFAULT 0,
avg_check DECIMAL(14,2) DEFAULT 0,
new_users INT DEFAULT 0,
canceled INT DEFAULT 0,
PRIMARY KEY (date)
);
Агент в 02:00 пересчитывает предыдущий день и обновляет строку. Данные текущего дня обновляются каждые 15 минут инкрементально — от последней обработанной записи по b_sale_order.DATE_STATUS.
Структура дашборда
Верхняя панель — ключевые показатели сегодня:
- Выручка (и % изменения vs вчера / прошлую неделю)
- Количество заказов
- Средний чек
- Конверсия: посетители → заказы (если подключена Метрика)
Блок «Топ товаров» за выбранный период: по количеству продаж, по выручке, по количеству возвратов. Данные из агрегационной таблицы myvendor_analytics_product_daily.
Воронка заказов. Показывает потери на каждом этапе:
- Добавили в корзину (из
b_sale_fuser+b_sale_basket) - Перешли к оформлению
- Оплатили
- Получили (статус доставки)
Это самый ценный отчёт — он показывает, где именно теряются деньги.
Детально: отчёт по когортам
Когортный анализ — насколько хорошо магазин удерживает покупателей. Когорта — группа пользователей, сделавших первый заказ в один период (неделя или месяц).
-- Первый заказ каждого пользователя
WITH first_orders AS (
SELECT user_id, MIN(DATE_TRUNC('month', date_insert)) AS cohort_month
FROM b_sale_order
WHERE canceled = 'N' AND user_id > 0
GROUP BY user_id
),
-- Все последующие заказы
repeat_orders AS (
SELECT o.user_id, fo.cohort_month,
DATE_TRUNC('month', o.date_insert) AS order_month
FROM b_sale_order o
JOIN first_orders fo ON o.user_id = fo.user_id
WHERE o.canceled = 'N'
)
SELECT
cohort_month,
order_month,
COUNT(DISTINCT user_id) AS users
FROM repeat_orders
GROUP BY cohort_month, order_month
ORDER BY cohort_month, order_month;
Результат отображается тепловой картой: строки — когорты, столбцы — месяцы после первой покупки, значение — процент удержания.
Экспорт и расписание отчётов
Каждый отчёт экспортируется в Excel (через PhpSpreadsheet или внутренние средства) и CSV. Модуль поддерживает расписание: раз в неделю отправлять выбранный отчёт на email руководителя. Расписание реализовано через агенты Битрикс с хранением настроек в myvendor_analytics_schedule.
Права доступа
Разные роли получают доступ к разным разделам аналитики. Права проверяются через стандартную систему групп пользователей Битрикс (CGroup). Менеджер видит только свои заказы, директор — всю картину.
Сроки разработки
| Масштаб | Состав | Срок |
|---|---|---|
| Базовый | Ключевые метрики + топ товаров + агрегация | 3–4 недели |
| Средний | + воронка + когорты + экспорт | 6–8 недель |
| Расширенный | + интеграция с Метрикой + прогнозы + расписание | 9–13 недель |
Первым делом надо определить список KPI, которые нужны бизнесу — это влияет на схему агрегаций и объём разработки сильнее, чем технический стек.







