Допустим, вы управляете интернет-магазином на 1С-Битрикс с тысячью товаров. Каждую неделю вы заказываете товар, ориентируясь на интуицию или простые средние. В какой-то момент топ-продукт заканчивается за два дня до поставки — вы теряете выручку и клиентов. Или наоборот: склад забит неходовым товаром, а деньги заморожены. Предиктивная аналитика продаж превращает хаос заказов, корзин и просмотров во временные ряды — и прогнозирует спрос с точностью до 90% для товаров с историей. Без машинного обучения, только на SQL и PHP.
Мы настраиваем этот конвейер под ваш магазин: от SQL-запросов к базе до дашборда в админке. Наш опыт — 15+ лет в Битрикс-разработке, сертифицированные решения для розницы и опта. Гарантируем точность прогноза в пределах 10% по MAPE при достаточной истории данных. По данным внедрений, сокращение неликвидов составляет 15–30%, а оборачиваемость запасов растёт на 20%. Снижение складских издержек приносит существенную экономию на каждые 1000 товаров.
Как построить прогноз продаж на 1С-Битрикс?
Из Битрикс доступны все необходимые временные ряды:
- Продажи по дням:
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; Почему предиктивная аналитика повышает рентабельность?
Снижаются издержки на хранение: вы перестаёте закупать товары, которые не пойдут. Увеличивается оборачиваемость: на полке лежит то, что купят завтра. Прогноз по скользящему среднему на 70% точнее, чем интуитивное планирование по опыту. Сезонное сглаживание даёт выигрыш ещё 20% точности для товаров с ярко выраженной сезонностью. Сравнение методов прогнозирования:
| Метод | Когда применять | Точность (MAPE) |
|---|---|---|
| Скользящее среднее | Стабильный спрос, сезонность слабая | 10–15% |
| Сезонное сглаживание | Ярко выраженная сезонность | 8–12% |
| Линейный тренд | Растущий или падающий тренд | 12–20% |
Основано на материалах скользящее среднее и сезонное сглаживание.
Что делать, если данных для прогноза недостаточно?
Если история продаж меньше года, прогноз всё равно возможен. Используем усечённые методы: адаптивное скользящее среднее с коротким окном (2-4 недели) и сезонные коэффициенты на основе средних по категории. Точность снижается до 70-80%, но это лучше, чем интуитивный заказ. Через 6 месяцев работы методика пересчитывается с накопленными данными.
Что входит в настройку
- SQL-запросы для построения временных рядов продаж из
b_sale_order_basket - Алгоритмы прогнозирования (скользящее среднее + сезонные коэффициенты) в PHP-классе
SalesForecastEngine - Агент еженедельного пересчёта прогнозов с записью в
bl_sales_forecast - Дашборд в административном разделе с графиком план/факт
- Интеграцию прогнозов с модулем управления запасами через
bl_reorder_suggestions
Простые методы прогнозирования без 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 недель для всех активных товаров.
Процесс работы
- Аудит данных — проверяем историю заказов, корзин, просмотров. Оцениваем глубину и качество.
- Проектирование конвейера — выбираем методы прогноза под ассортимент и частоту продаж.
- Реализация — пишем PHP-классы, SQL-запросы, агент, дашборд.
- Тестирование — сравниваем прогноз с реальными продажами за последние 2-3 недели.
- Деплой и интеграция — заливаем на боевой сервер, подключаем к закупкам.
- Поддержка — мониторим точность, корректируем методы при изменении рынка.
Результат
Через 2–3 недели после старта вы получаете работающий дашборд с прогнозом по каждому товару. Точность — от 80% для товаров со стабильным спросом. Для новых товаров используем усечённые методы.
Получите консультацию по настройке прогноза для вашего магазина — оценим данные за один день. Свяжитесь с нами, чтобы запустить прогноз уже через неделю.







