Ценообразование
Анализ и управление ценами на Ozon в одном окне: юнит-экономика каждого товара, подбор оптимальной цены под целевую маржу или ROI, отправка цен в Ozon массово или поштучно, управление акциями без ухода в кабинет.
Быстрый старт
1. Открыть
Меню Закупки и склад → Ценообразование.
2. Дождаться загрузки данных
Верхний-правый угол — кнопка «Обновить данные». Тариф, цены, логистика подгружаются из Ozon и кладутся в кэш. Первая загрузка по магазину с 1 000+ товаров занимает до 30 сек — потом перерасчёт идёт локально.
3. Выбрать период
Пресеты 7д / 14д / 30д или свой диапазон дат. По этому периоду считаются: заказы, выручка, возвраты, DRR, средние продажи в день, остатки.
4. Выбрать магазин
Выпадающий список справа от дат. Переключение — отдельный срез по каждому подключённому Ozon-магазину.
Таблица
Одна строка — один товар. Колонки слева направо:
Клик по заголовку — сортировка. Клик по строке — открыть drawer справа.
Фильтры
Над таблицей:
- Поиск — по
offer_idили названию. - Акции: все / в акциях / кандидаты / не в акциях. Применяется ко всей выборке, не только к текущей странице.
- Артикул: все / цифровые (
815-338,582-037\569-029,10/200) / с буквами (stelka1d).
Подобрать рекомендованные цены массово
Выделите товары чекбоксами → кнопка «Подобрать цены (N)» над таблицей → модалка:
- Выберите цель: Маржа % или ROI %.
- Значение — дефолт подтягивается из
pricing_settings.target_margin_pct; можно ввести своё. - Перезаписать ручные цены — чекбокс off по умолчанию. Если вы уже ввели что-то в «Новую цену» вручную — оно сохраняется.
- Preview-таблица: было → рекомендация → Δ% → маржа факт / ROI факт → статус.
- Клик по строке в preview — исключить из этого прогона.
- «Применить» — цены записываются в колонку «Новая цена» главной таблицы. На Ozon ничего не отправляется.
Статусы в preview:
- ✓ — подобрано
- 🔒 «ручное» — вы уже ввели цену, не трогаем (если «Перезаписать» off)
- ⚠ «ниже min_price» — попадает, но предупреждение
- ✗ «ниже себестоимости» — не применяется, нужно понизить target или исключить
- ✗ «нет себестоимости» — без закупа подбор невозможен
- ✗ «недостижимо» — target выше потолка физики (например 150% маржа)
💡 Округление: всегда до целого рубля. 💡 Bisection: поиск цены в диапазоне
[cost, cost × 768], 50 итераций, точность 1 п.п. Bystrее чем «перебрать все цены руками».
Отправить цены в Ozon массово
После того как «Новая цена» заполнена (хоть ручным вводом, хоть подбором) — кнопка «Установить цены (N)» над таблицей → bulk-модалка:
- Preflight-проверка — для каждого товара Ozon говорит, выбьет ли товар из акций, какой будет актуальный max_action_price, какие появятся кандидатуры.
- Агрегат сверху: «5 выбьются из акций · 2 ниже себестоимости · 3 новых кандидата · 1 rate-limited».
- Глобальный выбор
auto_action_enabled— не менять / включить авто-участие в акциях / выключить. - Отправить — прогресс-бар, poll каждые 1.5 сек, итог.
Ограничения Ozon:
- До 1000 цен за один bulk-push. Если выбрано больше — отправится первая тысяча по текущей сортировке.
- 10 обновлений цены в час на один
offer_id. Свои попытки считаются — превышение →status=rate_limited, на Ozon не уходит. В истории видно.
💡 Все запросы пишутся в таблицу истории
/supplies/pricing/history— кто, когда, что, результат.
Drawer — анализ одного товара
Клик по строке открывает боковую панель справа. Сверху вниз:
1. Калькулятор цены
Ввод «Новой цены» (синхронизирован с таблицей). Маржа / ROI / наценка пересчитываются на лету. Переключатель «до / после» показывает сравнение.
2. Структура затрат
Разбивка копейка-к-копейке: закуп, комиссия, эквайринг, логистика, last mile, налог, реклама, хранение. Все поля редактируются — подстройте DRR, комиссию, хранение под свои реалии, маржа пересчитается.
3. Механики Ozon
- Отложенная выплата (0–168 дн) — скидка до 5.4%.
- Super-product — процент дополнительной скидки.
- Не-местная наценка — 0 / 4 / 6 / 8 % по кластерам.
- Ozon Bank — множитель дефер-скидки × 1.25.
4. Обратный расчёт
По целевой марже / ROI / прибыли / максимальному COGS — возвращает нужную цену или потолок закупа. Альтернатива массовому подбору, когда нужно одно значение точное.
5. Воронка продаж
Сессии → переходы → заказы → выкупы. Конверсии на каждом шаге. Данные из аналитики Ozon за выбранный период.
6. Бустинг в поиске
Для товаров в boost-акциях:
- Акционный процент — максимум по participating акциям (Ozon применяет лучший, не сумму).
- 🟢🟡🔴 Индекс цен — после клика «Проверить акции».
- ⭐ Premium Plus / Pro — статус подписки.
⚠ В кабинете Ozon итоговый процент выше. Туда складываются бонусы за долю акционных продаж и Premium, которые API не отдаёт отдельно — не показываем, чтобы не угадывать.
7. Отправка в Ozon
Участвует в акциях
Список акций. Галочка = оставить. Снять галочку = товар будет отключён от акции при нажатии «Установить цену». Предупреждение «выбьется», если новая цена > max_action_price.
Цена по акции — вторая строка с inline-инпутом. Изменяет action_price внутри акции без отключения. Валидация: ≤ max, ≥ 0. Ozon-алерт alert_max_action_price_failed показывается с рекомендованной ценой.
Подходит в акции (кандидат)
Список акций, в которые товар может войти при текущей или новой цене. Кнопка «+ Добавить» на каждой — мгновенный activate. Для STOCK_DISCOUNT акций Ozon не задаёт цену — используем новую или текущую, обрезанную по max.
Установить цену на Ozon
- «Проверить акции» — live-preflight, показывает участвующие, кандидатуры, предупреждения.
- Авто-акции: не менять / включить / выключить.
- Доп. поля (опционально) —
old_price(зачёркнутая),min_price(минимум для авто-акций). - «Установить цену на Ozon» — отправка.
💡 Preflight делает live запрос к Ozon перед отправкой — если условия изменились (max_price, новый кандидат), вы увидите это до push'а.
История изменений
Ссылка «История цен →» в шапке страницы. Фильтры: магазин, offer_id, статус, период. Каждая строка:
- Дата / время.
offer_id+ магазин.- Цена до → цена после, Δ %.
- Статус: ✓ успех · ✗ ошибка · ⚠ rate limit · · в процессе.
- Авто-акции: вкл / выкл.
- Кто отправил, текст ошибки от Ozon (hover на ячейке).
Используйте для дебага: «почему эта цена не обновилась?» — видно либо rate-limit, либо конкретный Ozon-reject.
Настройки ценообразования
В drawer'е изменения применяются per-товар для текущей сессии. Дефолты на весь магазин — pricing_settings:
tax_rate— ставка НДС (обычно 0.07 для УСН 6% доход).default_ad_percent— дефолтный DRR, если по товару нет данных из рекламы.target_margin_pct— используется как дефолт «Маржи» в модалке подбора цен.deferred_days— 0–168.non_local_surcharge— 0 / 0.04 / 0.06 / 0.08.super_product_discount— 0+.ozon_bank_account— множитель дефер × 1.25.
Изменяются через API (PATCH /pricing/settings) или в drawer'е вручную.
Типовые вопросы
Почему маржа в таблице не совпадает с кабинетом Ozon?
Несколько возможных причин:
- У нас в формулу входит DRR из реальных расходов на рекламу, а Ozon «Финансы» не всегда их прибавляет к юнит-экономике.
- Хранение считается через UE (unit economics), а не просто «фикс на SKU».
- Кабинет Ozon обычно считает «валовую маржу» без налога; у нас по умолчанию с налогом 7%.
Почему «Новая цена» не стала текущей после push'а?
- Проверьте статус в истории цен. Возможно
errorилиrate_limited. - Если статус
success— обновите страницу через 10–30 сек. Локальный кэш тарифов обновляется сразу, но HTTP-кэш или TanStack могут держать старое значение. - Сам Ozon применяет цену в каталоге за 5–15 минут, это не наша задержка.
Что делать, если цена выбьет товар из акции?
Три варианта:
- Понизьте цену до max_action_price акции (показан в drawer'е).
- Оставьте цену — в предупреждении preflight'а сними галочку с акции, тогда отключится вместе с установкой цены.
- Установите цену, потом в кабинете Ozon измените условия акции.
Почему Бустинг показывает 0%, когда в кабинете Ozon — 77.5%?
Мы показываем только акционную часть бустинга — то что Ozon API отдаёт точно. Остальные компоненты (индекс цен → X%, доля акций → Y%, Premium → Z%) не экспонируются API, Ozon суммирует их внутри кабинета. Показывать угаданные цифры — врать; пишем честно.
Часто ли обновляются акции?
Участие и кандидаты — раз в час (Celery beat). Кнопка «Обновить акции» в шапке страницы запускает ручной refresh. Перед отправкой цены preflight делает дополнительный live-запрос, так что push всегда идёт на актуальных условиях.
Связанные инструменты
- API ключи Ozon — Админ → Магазины Ozon. Должны быть включены методы Promos + Actions.
- Аналитика продаж — меню «Аналитика» → «Продажи». Даёт тот же период, что Ценообразование.
- Реорды и поставки FBO — «Закупки и склад» → «Поставки FBO».