Налаштування предиктивної аналітики продаж на 1С-Бітрікс
Предиктивна аналітика продаж — це прогноз майбутніх продаж на основі історичних даних. Для інтернет-магазину це відповідає на питання: скільки одиниць товару X продасться наступного місяця, коли очікувати пік продаж, які товари закупити заздалегідь. У Бітрікс історичні дані існують — потрібно побудувати конвейєр їх обробки.
Дані для прогнозу
З Бітрікс доступні всі необхідні часові ряди:
- Продажі за днями:
b_sale_order_basketJOINb_sale_orderз групуванням поDATE_INSERT::date - Переглядиї товарів:
b_catalog_viewed_productпоDATE_VISIT::date - Додавання в корзину:
b_sale_basketпоDATE_INSERT::date - Конверсія: відношення замовлень до переглядів за періодами
Базовий запит для часового ряду продаж за товаром:
SELECT
DATE(o.DATE_INSERT) AS sale_date,
SUM(ob.QUANTITY) AS qty_sold,
SUM(ob.PRICE * ob.QUANTITY) AS revenue
FROM b_sale_order_basket ob
JOIN b_sale_order o ON o.ID = ob.ORDER_ID AND o.CANCELED = 'N'
WHERE ob.PRODUCT_ID = :product_id
AND o.DATE_INSERT >= NOW() - INTERVAL '365 days'
GROUP BY DATE(o.DATE_INSERT)
ORDER BY sale_date;
Прості методи прогнозування без ML
Скользящое середнє — прогноз на наступний період = середнє продаж за останні N тижнів аналогічного періоду. Реалізується чистим SQL.
Сезонне згладжування — помножуємо базовий прогноз на сезонний коефіцієнт. Коефіцієнт вважається як відношення продаж конкретного місяця до середньомісячних за рік за історичними даними.
Лінійний тренд — якщо продажі ростуть на 5% щомісяця, екстраполюємо тренд. Коефіцієнт тренду: регресія методом найменших квадратів по історичній вибірці.
Ці алгоритми реалізуються в PHP без зовнішніх бібліотек — достатньо масивів даних з БД.
Збереження прогнозів
Створіть таблицю bl_sales_forecast:
| Поле | Тип | Описання |
|---|---|---|
product_id |
INT | ID товара |
forecast_date |
DATE | Дата прогнозу |
predicted_qty |
FLOAT | Прогнозоване кількість |
predicted_revenue |
FLOAT | Прогнозована виручка |
confidence_low |
FLOAT | Нижня межа довірчого інтервалу |
confidence_high |
FLOAT | Верхня межа |
method |
VARCHAR | Метод прогнозування |
created_at |
TIMESTAMP | Дата розрахунку |
Агент раз в тиждень перераховує прогнози на наступні 4–8 тижнів для всіх активних товарів.
Дашборд прогнозів у адміністративному розділі
У розділі «Магазин → Аналітика» додайте сторінку прогнозів. Компонент читає bl_sales_forecast та відображає:
- Графік план/факт для вибраного товару за останні 3 місяці
- Топ-20 товарів з найбільшим прогнозованим попитом на наступний тиждень
- Товари, у яких прогнозований попит перевищує поточний остаток — сигнал до закупки
Графік будується через Chart.js або ApexCharts, дані підгружаються AJAX з контролера AdminForecastController.
Інтеграція з управлінням запасами
Коли прогноз показує, що через 2 тижні потребуватиметься 50 одиниць товару, а на складі тільки 10 — створюється рекомендація до закупки. Агент порівнює bl_sales_forecast.predicted_qty з b_catalog_store_product.AMOUNT та записує рекомендації у bl_reorder_suggestions — та ж таблиця використовується в сервісі автоматичного замовлення у поставщиків.
Що налаштовуємо
- SQL-запити для побудови часових рядів продаж з
b_sale_order_basket - Алгоритми прогнозування (скользящое середнє + сезонні коефіцієнти) у PHP-класі
SalesForecastEngine - Агент щотижневого перерахунку прогнозів зі записом у
bl_sales_forecast - Дашборд у адміністративному розділі з графіком план/факт
- Інтеграцію прогнозів з модулем управління запасами через
bl_reorder_suggestions







