AI в e-commerce: рекомендации, чат-боты и динамическое ценообразование
Рекомендательные системы, AI-поддержка, прогнозирование спроса — AI в онлайн-торговле
Онлайн-торговля стала первой индустрией, где AI перестал быть экспериментом и стал основой бизнес-модели. Когда вы открываете приложение Ozon и видите «персональную подборку» — за этим стоит рекомендательная система, анализирующая миллионы взаимодействий. Когда цена на товар меняется три раза за день — это алгоритм динамического ценообразования. Когда чат-бот помогает подобрать размер кроссовок — это LLM, обученная на каталоге и отзывах. По данным Shopify, 84% e-commerce-компаний считают AI высшим приоритетом, а рынок AI в e-commerce вырастет с $8,65 млрд в 2025 до $22,6 млрд к 2032 году. Amazon генерирует до 35% выручки через персонализированные рекомендации. Это не будущее — это настоящее.
Представьте идеального продавца в магазине: он помнит, что вы покупали год назад, знает, что вам нравятся определённые бренды, видит, что вы задержались у витрины с кроссовками, и предлагает именно те модели, которые вам подойдут по размеру и бюджету. Теперь представьте, что этот продавец обслуживает миллионы покупателей одновременно, не устаёт и учится на каждом взаимодействии. Именно так работает AI в e-commerce — от рекомендаций и чат-ботов до прогнозирования спроса и автоматического ценообразования.
AI в e-commerce — это комплекс технологий, которые превращают онлайн-магазин из статичного каталога в адаптивную систему, подстраивающуюся под каждого покупателя в реальном времени.
Ключевые направления:
Направление
Что делает AI
Бизнес-эффект
Рекомендации
Персональные подборки на основе поведения и предпочтений
Конверсия в 4 раза выше у покупателей, взаимодействующих с ботом
Динамическое ценообразование
Автоматическая корректировка цен по спросу и конкурентам
+2-5% к выручке, +5-10% к марже
Прогнозирование спроса
Предсказание объёмов продаж для управления запасами
Снижение ошибок прогноза на 20-50%
Виртуальные примерочные
Визуализация товара на покупателе через AR/AI
Снижение возвратов на 25-40%
Визуальный поиск
Поиск товара по фото вместо текста
Рост вовлечённости на 30%+
Ключевые цифры:
84% e-commerce-компаний считают AI высшим приоритетом
35% выручки Amazon приходится на персонализированные рекомендации
80% клиентских взаимодействий будет обрабатывать AI к 2030 году
$22,6 млрд — прогнозируемый объём рынка AI в e-commerce к 2032 году
ПромптE-commerce менеджер → ChatGPT: анализ рекомендаций
Я управляю интернет-магазином одежды (средний чек $45, 50 000 SKU, 200 000 уникальных посетителей/мес). Конверсия 2.1%, что ниже среднего по рынку. Какие AI-инструменты для персонализации помогут увеличить конверсию и средний чек? Предложи 3 конкретных решения с ожидаемым ROI.
Ответ модели
Персонализированные рекомендации на страницах товаров и в корзине
Инструменты: Dynamic Yield, Algolia Recommend, или Nosto
Логика: collaborative filtering ("похожие покупатели также выбрали") + content-based (по атрибутам: цвет, стиль, сезон)
Ожидаемый эффект: +8-15% к среднему чеку, +3-5% к конверсии
ROI: окупаемость за 2-3 месяца при стоимости от $500/мес
AI-чатбот для подбора размера и стиля
Инструменты: Tidio, Gorgias + LLM-интеграция, или кастомный на базе OpenAI API
Логика: бот спрашивает рост, вес, предпочтения → рекомендует размер и похожие товары
Ожидаемый эффект: покупатели, взаимодействующие с ботом, конвертируются в 3-4x чаще
ROI: снижение нагрузки на поддержку на 30-40%, рост конверсии
Персонализированные email-рассылки с AI-сегментацией
Инструменты: Klaviyo, Mailchimp с AI-фичами
Логика: предиктивная модель определяет оптимальное время, частоту и содержание
Ожидаемый эффект: +15-25% к open rate, +10-20% к revenue per email
ROI: при базе 50 000 подписчиков — дополнительные $5-15K/мес
Рекомендательная система (recommendation engine) — это AI-модель, которая предсказывает, какие товары заинтересуют конкретного пользователя. Это самое прибыльное применение AI в онлайн-торговле: по данным McKinsey, до 35% выручки крупных маркетплейсов генерируется через персонализированные рекомендации.
Collaborative filtering (коллаборативная фильтрация) — «люди, похожие на вас, покупали это». Система находит пользователей с похожим поведением (просмотры, покупки, оценки) и рекомендует то, что купили они. Не нужно ничего знать о самом товаре — только паттерны покупок.
Content-based filtering (фильтрация по контенту) — «раз вам нравится X, вам понравится похожий Y». Система анализирует атрибуты товаров (категория, цвет, бренд, ценовой диапазон) и находит похожие. Работает, даже когда мало данных о поведении пользователя.
Hybrid (гибридный подход) — комбинация обоих методов. Именно так работают Amazon, Ozon и Wildberries. При первом визите — контентные рекомендации по атрибутам, по мере накопления данных — всё больше коллаборативных.
Без техники
Статичные рекомендации без AI:
• Главная страница: одинаковые «хиты продаж» для всех
• Страница товара: «С этим товаром покупают» — ручные подборки мерчандайзера
• Email: одинаковая рассылка для всей базы
• Конверсия: 1-2%, средний чек не растёт
• Обновление: ручное, раз в неделю
С техникой
AI-персонализация:
• Главная страница: уникальная для каждого пользователя — история, предпочтения, контекст
• Страница товара: real-time collaborative filtering — 'покупатели с похожим вкусом выбрали'
• Email: персональное время, содержание и частота на основе предиктивной модели
• Конверсия: 3-5%, средний чек +10-30%
• Обновление: автоматическое в реальном времени, модель учится на каждом клике
Amazon — эталон персонализации. Рекомендательная система покрывает все touchpoints: главная страница, страница товара («Frequently bought together»), корзина, email, push-уведомления. По разным оценкам, 35% выручки Amazon приходится на рекомендации. Система обрабатывает петабайты данных и использует deep learning для предсказания следующей покупки.
Ozon — крупнейший российский маркетплейс, активно развивающий AI-рекомендации. Персональные подборки на главной, «Вам может понравиться» на страницах товаров, умный поиск с учётом поведения. Ozon использует данные о поведении как ключевой актив для прогнозирования спроса и оптимизации ассортимента.
Wildberries — с 2025 года тестирует AI-ассистента для подбора товаров по естественным запросам. Например: «Подарок коллеге-гику до 3000 рублей с доставкой завтра». Алгоритмы машинного обучения управляют ранжированием в поиске, рекомендациями и персональными скидками.
Персонализация выходит далеко за рамки блока «Рекомендуем вам». Современные системы адаптируют весь каталог под конкретного покупателя.
Персональный поиск — два покупателя вводят одинаковый запрос «чёрное платье», но видят разные результаты: один — вечерние платья премиальных брендов, другой — повседневные платья масс-маркета. Система учитывает историю просмотров, покупок, возвратов, ценовые предпочтения.
Динамическая сортировка — порядок товаров в категории разный для каждого пользователя. Если вы обычно покупаете Nike и Adidas, спортивная обувь этих брендов окажется выше в каталоге.
Визуальный поиск — загрузите фото понравившейся вещи, AI найдёт похожие товары в каталоге. ASOS, Pinterest и AliExpress активно используют эту технологию. Computer vision (компьютерное зрение) анализирует форму, цвет, текстуру и находит визуально похожие товары.
AI-чатботы в e-commerce — это не просто FAQ-боты. Современные решения на основе LLM (больших языковых моделей) ведут полноценные консультации, подбирают товары, помогают с возвратами и даже «дожимают» брошенные корзины.
Статистика впечатляет: покупатели, взаимодействующие с AI-чатботом, совершают покупку в 12,3% случаев, тогда как без чатбота — только в 3,1%. Это почти четырёхкратный рост конверсии. Проактивные чаты возвращают до 35% брошенных корзин.
Я ищу тональный крем для комбинированной кожи. Мне 28 лет, светлый тон кожи, хочу среднее покрытие без тяжёлого эффекта. Бюджет до 3000 рублей. Какие варианты есть?
L'Oréal True Match (от 890 ₽) — лёгкая текстура, широкая палитра оттенков для светлой кожи (N1, N2). Хорошо для повседневного макияжа.
NYX Born To Glow (от 750 ₽) — сияющий финиш, среднее покрытие. Для комбинированной кожи рекомендую наносить с матирующей базой в Т-зоне.
Maybelline Fit Me Matte+Poreless (от 650 ₽) — контролирует жирный блеск, матовый финиш. Оттенки 102, 104 для светлого тона.
Рекомендация: начните с L'Oréal True Match — лучший баланс покрытия и лёгкости для комбинированной кожи. Хотите, подберу праймер и фиксирующий спрей к нему?
Три четверти покупателей предпочитают чатбота живому оператору для простых вопросов. Но критически важно реализовать плавную передачу человеку для сложных случаев: проблема с оплатой, нестандартный возврат, жалоба. Если бот «зацикливается» — покупатель уходит навсегда.
Виртуальная примерочная (virtual try-on) — технология, позволяющая покупателю «примерить» товар до покупки через камеру смартфона или загруженное фото. Это одно из самых перспективных направлений: 98% покупателей, попробовавших AR-примерку, говорят, что это помогло принять решение о покупке.
AI-модель принимает фото пользователя и изображение товара (одежда, очки, обувь, косметика) и генерирует реалистичную визуализацию. Используются две ключевые технологии:
Computer vision — распознавание тела, лица, позы для точного наложения товара
Generative AI — реалистичная генерация складок ткани, теней, текстур на конкретном человеке
Zalando — крупнейший европейский fashion-маркетплейс, запустил виртуальную примерочную для всех пользователей в 2026 году. Технология позволяет увидеть одежду на модели с телосложением, похожим на ваше.
IKEA Place — AR-приложение для визуализации мебели в вашей комнате. Вы наводите камеру на пространство, выбираете диван — и видите, как он будет выглядеть в масштабе вашей гостиной.
Sephora Virtual Artist — примерка макияжа через камеру: губная помада, тени, тональный крем. Снижение возвратов косметики на 27%.
Главная проблема онлайн-торговли одеждой — возвраты (до 30-40% заказов). Виртуальная примерочная снижает этот показатель на 25-40%, потому что покупатель видит, как товар выглядит именно на нём, а не на модели.
Динамическое ценообразование (dynamic pricing) — автоматическая корректировка цен на основе спроса, конкуренции, запасов и других факторов. AI анализирует десятки переменных и оптимизирует цену так, чтобы максимизировать выручку или маржу.
Amazon — меняет цены на товары миллионы раз в день. Алгоритм учитывает не только конкурентов, но и вероятность покупки конкретным пользователем, уровень запасов на ближайшем складе, стоимость доставки. Результат: Amazon почти всегда воспринимается как «самый дешёвый», хотя это не так — цены оптимизированы для максимальной маржи.
Uber/Яндекс Такси — surge pricing (повышенные тарифы) в часы пик. Классический пример динамического ценообразования: высокий спрос → рост цены → привлечение новых водителей → баланс спроса и предложения.
Авиакомпании — пионеры динамического ценообразования. Цена билета зависит от дня покупки, загрузки рейса, конкуренции на маршруте, даже от того, с какого устройства вы покупаете.
Динамическое ценообразование граничит с ценовой дискриминацией. Если два покупателя видят разные цены на один товар на основе их покупательной способности — это законно? В ЕС и России такие практики вызывают всё больше вопросов у регуляторов. Прозрачность алгоритмов ценообразования — одна из горячих тем 2026 года.
Demand forecasting (прогнозирование спроса) — предсказание объёмов продаж для каждого товара в каждой локации. Это основа управления запасами: закажете слишком много — заморозите деньги в складе; слишком мало — потеряете продажи.
Традиционные методы (скользящее среднее, экспоненциальное сглаживание) используют только историю продаж. AI-модели учитывают десятки дополнительных факторов:
Внешние данные: погода, праздники, экономические индикаторы, вирусные тренды в соцсетях
Каннибализация: запуск нового товара влияет на продажи похожих
Промо-эффект: как скидки и акции смещают спрос во времени
Событийный контекст: сезонность, начало учебного года, «чёрная пятница»
McKinsey отмечает: AI-прогнозирование снижает ошибки на 20-50% по сравнению с традиционными методами. IKEA сократила затраты на логистику на 30% благодаря AI-прогнозированию спроса.
Без техники
Управление запасами без AI:
• Прогноз на основе 'прошлый год + 10%'
• Одинаковая модель для всех товаров и регионов
• Ручная корректировка перед праздниками
• Overstock 15-20% → распродажи со скидками
• Stockout 8-12% → потерянные продажи
• Цикл планирования: раз в месяц
С техникой
AI-прогнозирование:
• Индивидуальная модель для каждого SKU × регион × день
• Учёт погоды, праздников, трендов, промо, конкурентов
• Автоматическая корректировка в реальном времени
• Overstock снижается до 5-10%
• Stockout до 2-5%
• Цикл: непрерывный, модель переобучается ежедневно
Минимальная реализация рекомендательной системы на основе user-based collaborative filtering:
import numpy as np
from dataclasses import dataclass
from collections import defaultdict
@dataclass
class Interaction:
"""Взаимодействие пользователя с товаром."""
user_id: str
item_id: str
event_type: str # view, add_to_cart, purchase
timestamp: float
rating: float | None = None
# Веса для разных типов событий
EVENT_WEIGHTS = {
"view": 1.0,
"add_to_cart": 3.0,
"purchase": 5.0,
"review_positive": 4.0,
"review_negative": -2.0,
}
def build_user_item_matrix(
interactions: list[Interaction],
decay_days: float = 30.0,
) -> tuple[np.ndarray, list[str], list[str]]:
"""
Построить матрицу user × item с implicit feedback.
Используем взвешенную сумму событий с temporal decay:
более свежие взаимодействия весят больше.
"""
users = sorted({i.user_id for i in interactions})
items = sorted({i.item_id for i in interactions})
user_idx = {u: i for i, u in enumerate(users)}
item_idx = {it: i for i, it in enumerate(items)}
matrix = np.zeros((len(users), len(items)))
now = max(i.timestamp for i in interactions)
for inter in interactions:
weight = EVENT_WEIGHTS.get(inter.event_type, 1.0)
# Temporal decay: экспоненциально уменьшаем вес старых событий
age_days = (now - inter.timestamp) / 86400
decay = np.exp(-age_days / decay_days)
matrix[user_idx[inter.user_id], item_idx[inter.item_id]] += weight * decay
return matrix, users, items
def cosine_similarity_matrix(matrix: np.ndarray) -> np.ndarray:
"""Матрица косинусного сходства между пользователями."""
norms = np.linalg.norm(matrix, axis=1, keepdims=True)
norms = np.where(norms == 0, 1, norms) # избегаем деления на ноль
normalized = matrix / norms
return normalized @ normalized.T
def recommend(
user_id: str,
matrix: np.ndarray,
users: list[str],
items: list[str],
top_k: int = 10,
min_similarity: float = 0.1,
) -> list[dict]:
"""
Рекомендации для пользователя через user-based CF.
Алгоритм:
1. Найти top-N похожих пользователей (по косинусному сходству)
2. Взять их товары, взвешенные по сходству
3. Исключить уже купленные товары
4. Вернуть top-K
"""
user_idx_map = {u: i for i, u in enumerate(users)}
if user_id not in user_idx_map:
return [] # cold start — fallback на популярные
uid = user_idx_map[user_id]
sim_matrix = cosine_similarity_matrix(matrix)
similarities = sim_matrix[uid]
# Исключаем самого себя
similarities[uid] = 0
# Товары, с которыми пользователь уже взаимодействовал
already_interacted = set(np.where(matrix[uid] > 0)[0])
# Взвешенная сумма оценок похожих пользователей
scores = defaultdict(float)
for other_uid in range(len(users)):
sim = similarities[other_uid]
if sim < min_similarity:
continue
for item_idx_val in range(len(items)):
if item_idx_val not in already_interacted and matrix[other_uid, item_idx_val] > 0:
scores[item_idx_val] += sim * matrix[other_uid, item_idx_val]
# Сортируем и возвращаем top-K
ranked = sorted(scores.items(), key=lambda x: x[1], reverse=True)[:top_k]
return [
{"item_id": items[idx], "score": round(score, 4)}
for idx, score in ranked
]
Пример архитектуры AI-чатбота, обученного на каталоге магазина с использованием RAG (Retrieval-Augmented Generation):
import anthropic
from typing import Optional
# Системный промпт для e-commerce чатбота
ECOMMERCE_BOT_PROMPT = """Ты AI-консультант интернет-магазина.
Правила:
- Помогай с выбором товаров, отвечай на вопросы о характеристиках
- Рекомендуй конкретные товары из каталога (используй контекст ниже)
- Всегда указывай цены и наличие из предоставленных данных
- Если товара нет в контексте — честно скажи, что нужно уточнить
- Предлагай дополнительные товары (cross-sell), но не навязчиво
- Если пользователь жалуется — выражай сочувствие и предлагай решение
- Отвечай кратко (2-4 предложения), если не просят подробнее
ВАЖНО: Не выдумывай товары. Рекомендуй только то, что есть в контексте.
"""
def search_catalog(
query: str,
catalog_embeddings: dict,
top_k: int = 5,
) -> list[dict]:
"""
Поиск релевантных товаров в каталоге через vector search.
В продакшене: Qdrant, Pinecone или pgvector.
"""
# Упрощённый пример — в реальности здесь embedding search
# catalog_embeddings = {item_id: {"embedding": [...], "metadata": {...}}}
results = []
query_lower = query.lower()
for item_id, data in catalog_embeddings.items():
meta = data["metadata"]
text = f"{meta['name']} {meta.get('description', '')} {meta.get('category', '')}".lower()
if any(word in text for word in query_lower.split()):
results.append(meta)
return results[:top_k]
def format_catalog_context(products: list[dict]) -> str:
"""Форматирует найденные товары для контекста LLM."""
if not products:
return "Товары по запросу не найдены в каталоге."
lines = ["Найденные товары:"]
for p in products:
line = f"- {p['name']} | Цена: {p.get('price', 'N/A')} ₽"
if p.get("in_stock"):
line += " | В наличии"
else:
line += " | Нет в наличии"
if p.get("rating"):
line += f" | Рейтинг: {p['rating']}/5"
if p.get("sizes"):
line += f" | Размеры: {', '.join(p['sizes'])}"
lines.append(line)
return "\n".join(lines)
def chat_with_customer(
message: str,
conversation_history: list[dict],
catalog_embeddings: dict,
user_profile: Optional[dict] = None,
) -> dict:
"""
Обработка сообщения покупателя с RAG по каталогу.
Args:
message: сообщение пользователя
conversation_history: история диалога
catalog_embeddings: индекс каталога для поиска
user_profile: профиль пользователя (история, предпочтения)
"""
# 1. Ищем релевантные товары в каталоге
products = search_catalog(message, catalog_embeddings)
catalog_context = format_catalog_context(products)
# 2. Формируем контекст с профилем пользователя
system = ECOMMERCE_BOT_PROMPT
if user_profile:
system += f"\n\nПрофиль покупателя:\n"
system += f"- Предпочитаемые бренды: {', '.join(user_profile.get('brands', []))}\n"
system += f"- Ценовой сегмент: {user_profile.get('price_segment', 'средний')}\n"
system += f"- Размер одежды: {user_profile.get('size', 'не указан')}\n"
system += f"\n\nКонтекст каталога:\n{catalog_context}"
# 3. Запрос к LLM
client = anthropic.Anthropic()
messages = conversation_history + [{"role": "user", "content": message}]
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=500,
system=system,
messages=messages,
)
assistant_message = response.content[0].text
return {
"response": assistant_message,
"products_shown": [p.get("id") for p in products],
"tokens_used": response.usage.input_tokens + response.usage.output_tokens,
}
Базовая реализация demand-based pricing с учётом конкурентов и эластичности:
from dataclasses import dataclass
from datetime import datetime
import numpy as np
@dataclass
class PricingContext:
"""Контекст для принятия решения о цене."""
item_id: str
base_cost: float # себестоимость
current_price: float # текущая цена
competitor_prices: list[float] # цены конкурентов
stock_level: int # запас на складе
stock_days_remaining: float # дней до полного стока при текущем темпе
daily_sales_avg: float # средние продажи в день (30 дней)
daily_sales_recent: float # средние продажи за 3 дня
demand_trend: float # тренд спроса: >1 растёт, <1 падает
category_elasticity: float # ценовая эластичность категории (обычно -1.5...-0.5)
is_seasonal: bool # сезонный товар
days_since_launch: int # дней с момента появления в каталоге
@dataclass
class PricingDecision:
"""Результат работы алгоритма ценообразования."""
recommended_price: float
min_price: float # нижняя граница (>= cost + min margin)
max_price: float # верхняя граница
confidence: float # уверенность в рекомендации (0-1)
reasoning: str # объяснение решения
def calculate_dynamic_price(ctx: PricingContext) -> PricingDecision:
"""
Алгоритм динамического ценообразования.
Стратегия:
- Если спрос высокий и запасы низкие → повышаем цену
- Если спрос низкий и запасы высокие → снижаем цену
- Учитываем цены конкурентов как ограничение
- Никогда не опускаемся ниже себестоимости + мин. маржа
"""
MIN_MARGIN = 0.10 # минимальная маржа 10%
MAX_MARKUP = 3.0 # максимальная наценка 3x от себестоимости
min_price = ctx.base_cost * (1 + MIN_MARGIN)
max_price = ctx.base_cost * MAX_MARKUP
# Конкурентное ограничение: не дороже медианы конкурентов + 15%
if ctx.competitor_prices:
competitor_median = np.median(ctx.competitor_prices)
max_price = min(max_price, competitor_median * 1.15)
# Не дешевле минимального конкурента - 5% (если это выше себестоимости)
competitive_floor = min(ctx.competitor_prices) * 0.95
if competitive_floor > min_price:
min_price = competitive_floor
reasons = []
price = ctx.current_price
# Фактор спроса
demand_factor = ctx.daily_sales_recent / (ctx.daily_sales_avg + 1e-9)
if demand_factor > 1.3:
# Спрос выше среднего — можно повысить цену
increase = min(0.10, (demand_factor - 1) * 0.15)
price *= (1 + increase)
reasons.append(f"Спрос выше среднего на {(demand_factor-1)*100:.0f}% → +{increase*100:.1f}%")
elif demand_factor < 0.7:
# Спрос ниже среднего — снижаем
decrease = min(0.15, (1 - demand_factor) * 0.20)
price *= (1 - decrease)
reasons.append(f"Спрос ниже среднего на {(1-demand_factor)*100:.0f}% → -{decrease*100:.1f}%")
# Фактор запасов
if ctx.stock_days_remaining < 7:
# Мало запасов — повышаем
price *= 1.05
reasons.append("Низкий запас (<7 дней) → +5%")
elif ctx.stock_days_remaining > 90:
# Overstock — снижаем для ликвидации
price *= 0.90
reasons.append("Overstock (>90 дней запаса) → -10%")
# Фактор сезонности
if ctx.is_seasonal and ctx.stock_days_remaining > 60:
price *= 0.85
reasons.append("Сезонный товар + высокий запас → -15% ликвидация")
# Ограничения
price = np.clip(price, min_price, max_price)
# Уверенность в решении
confidence = 0.7
if len(ctx.competitor_prices) > 3:
confidence += 0.1 # больше данных о рынке
if ctx.daily_sales_avg > 5:
confidence += 0.1 # стабильная статистика продаж
if abs(price - ctx.current_price) / ctx.current_price < 0.05:
confidence += 0.1 # малое изменение — выше уверенность
return PricingDecision(
recommended_price=round(price, 2),
min_price=round(min_price, 2),
max_price=round(max_price, 2),
confidence=min(confidence, 1.0),
reasoning="; ".join(reasons) if reasons else "Цена в оптимальном диапазоне, корректировка не требуется",
)
В продакшене рекомендательные системы e-commerce включают: 1) Offline pipeline — переобучение моделей на свежих данных (ежедневно/еженедельно); 2) Near-realtime layer — обновление фич пользователя после каждого взаимодействия (Kafka + feature store); 3) Online serving — inference за <50 мс (предрассчитанные кандидаты + real-time ранжирование). Для среднего магазина с <100K SKU достаточно ALS (Alternating Least Squares) в Apache Spark и Redis для кэша рекомендаций.