Разработка кастомных отчетов для интернет-магазина 1С-Битрикс

Кастомные отчеты для интернет-магазина на 1С-Битрикс Штатные отчеты модуля `sale` дают фиксированный набор метрик: выручка, количество заказов, конверсия. Когда требуется сегментация клиентов по менеджерам с учетом возвратов или разбивка маржинальности по категориям, приходится вручную выгружать
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка кастомных отчетов для интернет-магазина 1С-Битрикс
Средний
~1-2 недели

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1439
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1013
  • 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 Appointment Booking Widget for a Medical Center
    751
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    872
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1153

Кастомные отчеты для интернет-магазина на 1С-Битрикс

Штатные отчеты модуля sale дают фиксированный набор метрик: выручка, количество заказов, конверсия. Когда требуется сегментация клиентов по менеджерам с учетом возвратов или разбивка маржинальности по категориям, приходится вручную выгружать данные в Excel. На каждом втором проекте клиент сначала тратит недели на ручную аналитику, а затем просит автоматизировать.

Мы разрабатываем кастомные отчеты на D7 ORM, которые дают полный контроль над данными: произвольная группировка, кросс-таблицы, автоматический экспорт. После внедрения такого отчета один из клиентов сократил время на подготовку ежемесячного отчета с двух дней до одного часа — и перестал ошибаться в цифрах.

Какие задачи решают кастомные отчеты?

Штатные отчеты модуля sale не поддерживают кросс-таблицы. Для магазинов с оборотом от нескольких тысяч заказов в месяц их недостаточно. Кастомные отчеты на D7 ORM дают гибкость, недоступную в стандартном функционале.

Штатные отчеты: что есть и чего не хватает

Модуль sale предоставляет несколько встроенных отчетов через компонент bitrix:sale.report.construct. Их ограничения:

  • Фиксированный набор группировок — нельзя добавить произвольное поле
  • Нет кросс-таблиц (pivot) — невозможно построить матрицу «товар × регион»
  • Отсутствует когортный анализ и RFM-анализ
  • Экспорт только в CSV с ограниченным форматированием
  • Нет составных метрик (LTV, средний чек с учетом возвратов)

ORM-запросы через OrderTable и смежные сущности

Основа кастомных отчетов — D7 ORM Битрикса. Ключевые таблицы:

Класс ORM Назначение Ключевые поля
\\Bitrix\\Sale\\Internals\\OrderTable Заказы ID, DATE_INSERT, USER_ID, PRICE, STATUS_ID, RESPONSIBLE_ID
\\Bitrix\\Sale\\Internals\\BasketTable Корзина ORDER_ID, PRODUCT_ID, QUANTITY, PRICE, DISCOUNT_PRICE
\\Bitrix\\Sale\\Internals\\ShipmentTable Отгрузки ORDER_ID, DELIVERY_ID, STATUS_ID, DATE_DEDUCTED
\\Bitrix\\Sale\\Internals\\PaymentTable Оплаты ORDER_ID, PAY_SYSTEM_ID, SUM, PAID, DATE_PAID
\\Bitrix\\Sale\\Internals\\OrderPropsValueTable Свойства заказа ORDER_ID, ORDER_PROPS_ID, VALUE

ORM позволяет строить запросы с JOIN-ами, группировкой и агрегатными функциями без сырого SQL. Кастомный отчет на D7 ORM обрабатывает сводку по 100 000 заказов в 3 раза быстрее, чем аналогичный отчет на агентах.

Пример ORM-запроса с группировкой
$result = OrderTable::getList([ 'select' => [ 'MONTH' => new ExpressionField('MONTH', "DATE_TRUNC('month', %s)", ['DATE_INSERT']), 'RESPONSIBLE_ID', 'TOTAL' => new ExpressionField('TOTAL', 'SUM(%s)', ['PRICE']), 'CNT' => new ExpressionField('CNT', 'COUNT(%s)', ['ID']), ], 'filter' => [ '>=DATE_INSERT' => DateTime::createFromPhp(new \DateTime('last year')), '!STATUS_ID' => 'F', ], 'group' => ['MONTH', 'RESPONSIBLE_ID'], 'order' => ['MONTH' => 'ASC'], ]); 

Почему ORM эффективнее штатных отчетов?

ORM-запросы дают произвольную группировку: по периодам, товарам, менеджерам, регионам. Для сложных запросов с подзапросами используем $DB->Query() напрямую.

Визуализация и экспорт

Типичный набор визуализаций: line chart для динамики, bar chart для сравнения, doughnut для долей, heatmap для активности. Экспорт в Excel через PhpSpreadsheet:

cd /home/bitrix/www/local composer require phpoffice/phpspreadsheet 

PhpSpreadsheet формирует файлы с форматированием, формулами и несколькими листами — бухгалтерия использует их без доработок.

Deep-dive: отчет RFM-анализа клиентов

RFM-анализ сегментирует клиентов по трем параметрам: Recency, Frequency, Monetary. Каждый параметр оценивается от 1 до 5 (квинтили). 125 сегментов группируются в категории: «лояльные», «засыпающие», «потерянные», «новые перспективные».

Алгоритм:

  1. Выборка клиентов с завершенными заказами за 12 месяцев.
  2. Для каждого рассчитываем дату последнего заказа, количество заказов, общую сумму.
  3. Распределяем по квинтилям через NTILE(5) OVER (ORDER BY ...).
  4. Присваиваем сегмент по комбинации R-F-M.

SQL-запрос для метрик:

SELECT o.USER_ID, MAX(o.DATE_INSERT) AS last_order_date, EXTRACT(DAY FROM NOW() - MAX(o.DATE_INSERT)) AS recency_days, COUNT(o.ID) AS frequency, SUM(o.PRICE) AS monetary FROM b_sale_order o WHERE o.STATUS_ID NOT IN ('F', 'CA') AND o.DATE_INSERT >= NOW() - INTERVAL '12 months' AND o.PAYED = 'Y' GROUP BY o.USER_ID 

Маппинг сегментов:

Сегмент R F M Действие
Чемпионы 5 5 5 Программа лояльности
Лояльные 3-5 3-5 3-5 Upsell, рефералы
Перспективные новички 5 1 1-3 Онбординг
Засыпающие 2-3 2-3 2-3 Реактивация
Под угрозой 1-2 3-5 3-5 Срочная реактивация
Потерянные 1 1-2 1-2 Win-back

RFM-отчет выводится в виде таблицы с фильтрацией и treemap-визуализацией. Данные кэшируются — пересчет на 50 000 клиентов занимает 10-15 секунд.

Что входит в работу

После согласования макета и метрик мы:

  1. Проектируем запросы и оптимизируем индексы.
  2. Реализуем дашборд с фильтрами и визуализацией.
  3. Настраиваем экспорт в Excel/CSV.
  4. Готовим документацию по структуре данных и алгоритмам.
  5. Проводим обучение сотрудников работе с отчетами.
  6. Предоставляем 30 дней бесплатной поддержки после запуска.

Этапы разработки

Этап Содержание Срок
Аналитика Определение метрик, разрезов, макет дашборда 2-3 дня
Проектирование запросов ORM-запросы, оптимизация индексов 3-5 дней
Визуализация Верстка дашборда, графики Chart.js, фильтры 3-4 дня
Экспорт PhpSpreadsheet, форматирование 1-2 дня
Тестирование Проверка на больших объемах, нагрузка 2-3 дня

Сроки и стоимость

Сроки — от 5 рабочих дней для одного простого отчета, от 15 дней для комплексного дашборда с RFM и когортами. Стоимость рассчитывается индивидуально после анализа вашей базы и требований. Экономия времени на подготовку отчетности окупает разработку уже за пару месяцев. Свяжитесь с нами — мы спроектируем отчет под вашу задачу.